1、架构准备:

     namenode 10.0.0.2

     secondnamenode 10.0.0.3
     datanode1 10.0.0.4
     datanode2 10.0.0.6
     datanode3 10.0.0.11
2、安装用户:cloud-user
3、[namenode]namenode到其他节点ssh无密码登录:
     ssh-keygen     (一路回车)
     ssh-copy-id cloud-user@10.0.0.3
     ssh-copy-id cloud-user@10.0.0.4
     ssh-copy-id cloud-user@10.0.0.6
     ssh-copy-id cloud-user@10.0.0.11
4、[ALL]cdh源的准备:
     sudo rpm --import RPM-GPG-KEY-cloudera
     sudo yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm
     sudo yum clean all && sudo yum makecache
5、[ALL]java的安装:这里用的是jdk-6u45-linux-x64-rpm.bin
      chmod +x  jdk-6u45-linux-x64-rpm.bin && sudo ./jdk-6u45-linux-x64-rpm.bin
6、 [ALL]添加java的环境变量:
    /etc/profile中添加:
 export JAVA_HOME=/usr/java/jdk1.6.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
   使之生效:source /etc/profile
7、安装cdh包:
     sudo yum install -y hadoop-yarn-resourcemanager hadoop-mapreduce-historyserver hadoop-yarn-proxyserver hadoop-hdfs-namenode //仅在namenode上安装
sudo yum install -y hadoop-hdfs-namenode //仅在secondnamenode上安装
sudoyum install -y hadoop-yarn-nodemanager hadoop-hdfs-datanode hadoop-mapreduce //在datanode1,datanode2,datanode3上安装
sudo yum install -y hadoop-lzo-cdh4 //在所有节点上安装
8、[ALL]配置hadoop:
     sudo service iptables stop && sudo service ip6tables stop
     sudo echo -e "namenode\nsecondnamenode" >> /etc/hadoop/conf/masters &&   sudo echo -e "datanode1\ndatanode2\ndatanode3" >> /etc/hadoop/conf/slaves
     sudo cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster &&  sudo alternatives --verbose --install /etc/hadoop/conf hadoop-conf /etc/hadoop/conf.my_cluster 50 &&   sudo alternatives --set hadoop-conf /etc/hadoop/conf.my_cluster
   core-site.xml:
<property>
<name>fs.defaultFS</name>
<value>hdfs://sdc</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>datanode1:2181,datanode2:2181,datanode3:2181</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>10080</value>
</property>
<property>
<name>hadoop.native.lib</name>
<value>true</value>
</property>
<property>
<name>hadoop.proxyuser.mapred.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.mapred.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.oozie.hosts</name>
<value>10.0.0.2</value>
</property>
<property>
<name>hadoop.proxyuser.oozie.groups</name>
<value>*</value>
</property>
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
  hdfs-site.xml:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>sdc</value>
</property>
<property>
<name>dfs.ha.namenodes.sdc</name>
<value>nn1,nn2</value>
</property>
<!--配置rpc通信地址:dfs.namenode.rpc-address.[nameservice ID].-->
<property>
<name>dfs.namenode.rpc-address.sdc.nn1</name>
<value>namenode:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.sdc.nn2</name>
<value>secondnamenode:8020</value>
</property>
<!--配置http通信地址:dfs.namenode.http-address.[nameservice ID] -->
<property>
<name>dfs.namenode.http-address.sdc.nn1</name>
<value>namenode:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.sdc.nn2</name>
<value>secondnamenode:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://datanode1:8485;datanode2:8485;datanode3:8485/sdc</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/data/1/dfs/jn</value>
</property>
<!--配置客户端failover,解决客户端故障转移-->
<property>
<name>dfs.client.failover.proxy.provider.sdc</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/1/dfs/nn,/nfsmount/dfs/nn</value>
</property>
<!--配置:Fencing,
这里dfs.ha.fencing.methods实现的方法有两种sshfence和shell,我下面实现的是sshfence,dfs.ha.fencing.ssh.private-key-files这个是ssh的key file ,于在Active 节点切换期间的安全机制,确保在任何时间都只有一个NameNode 处于活跃状态。在故障切换期间,haadmin 命令确保在将其它NameNode 转换为Active 状态之前Active 节点处在Standby 状态,或其进程已被终止。
至少应该配置一个,因为没有默认配置,因此如果配置则HA 机制将会失效。
如果要实现自定义的安全机制,参照org.apache.hadoop.ha.NodeFencer
-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/cloud-user/.ssh/id_rsa</value>
</property>
<!--启用失败自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--配置zk集群信息-->
<property>
<name>ha.zookeeper.quorum</name>
<value>datanode1:2181,datanode2:2181,datanode3:2181</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/1/dfs/dn,/data/2/dfs/dn,/data/3/dfs/dn</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>10000</value>
</property>

  mapred-site.xml:

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/user</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>namenode:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>namenode:19888</value>
</property>

  yarn-site.xml:

<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>namenode:8031</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>namenode:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>namenode:8030</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>namenode:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>namenode:8088</value>
</property>
<property>
<name>yarn.web-proxy.address</name>
<value>namenode:8100</value>
</property>
<property>
<description>Classpath for typical applications.</description>
<name>yarn.application.classpath</name>
<value>
$HADOOP_CONF_DIR,
$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,
$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,
$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,
$YARN_HOME/*,$YARN_HOME/lib/*
</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>file:///data/1/yarn/local,file:///data/2/yarn/local,file:///data/3/yarn/local</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>file:///data/1/yarn/logs,file:///data/2/yarn/logs,file:///data/3/yarn/logs</value>
</property>
<property>
<description>Where to aggregate logs</description>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>hdfs://var/log/hadoop-yarn/apps</value>
</property>
9、建立配置所需文件目录:
 sudo mkdir -p /data/1/yarn/local /data/2/yarn/local /data/3/yarn/local /data/4/yarn/local && sudo mkdir -p /data/1/yarn/logs /data/2/yarn/logs /data/3/yarn/logs /data/4/yarn/logs && sudo chown -R yarn:yarn /data/1/yarn/local /data/2/yarn/local /data/3/yarn/local /data/4/yarn/local && sudo chown -R yarn:yarn /data/1/yarn/logs /data/2/yarn/logs /data/3/yarn/logs /data/4/yarn/logs
datanode:
sudo mkdir -p /data/1/dfs/jn && sudo chown -R hdfs:hdfs /data/1/dfs/jn
Namenode:
sudo mkdir -p /data/1/dfs/nn /nfsmount/dfs/nn && sudo chown -R hdfs:hdfs /data/1/dfs/nn /nfsmount/dfs/nn &&sudo chmod 700 /data/1/dfs/nn /nfsmount/dfs/nn
Datanode:
sudo mkdir -p /data/1/dfs/dn /data/2/dfs/dn /data/3/dfs/dn /data/4/dfs/dn && sudo chown -R hdfs:hdfs /data/1/dfs/dn /data/2/dfs/dn /data/3/dfs/dn /data/4/dfs/dn
10、[datanode]在datanode上安装zookeeper:
  sudo yum install -y zookeeper
    配置/etc/zookeeper/conf/zoo.cfg:
tickTime=2000
dataDir=/var/lib/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=datanode1:2888:3888
server.2=datanode2:2888:3888
server.3=datanode3:2888:3888

   

  配置id:
  sudo echo 1 > /var/lib/zookeeper/myid //仅在namenode1上执行
  sudo echo 2 > /var/lib/zookeeper/myid //仅namenode2上执行
  sudo echo 3 > /var/lib/zookeeper/myid //namenode3上执行
  sudo chown -R zookeeper:zookeeper /var/lib/zookeeper //在所有datanode上

  启动zookeeper:
  sudo /usr/lib/zookeeper/bin/zkServer.sh start
  查看状态:
  sudo /usr/lib/zookeeper/bin/zkServer.sh status

 

11、namenode上格式化ZooKeeper集群:
     sudo -u hdfs hdfs zkfc -formatZK
12、[datanode]安装并启动JournalNode集群:

sudo yum install -y hadoop-hdfs-journalnode
     sudo service hadoop-hdfs-journalnode start

13、[namenode]namenode上格式化namenode并启动:

sudo -u hdfs hdfs namenode -format

     sudo service hadoop-hdfs-namenode start
14、[secondnamenode]同步数据到secondnamenode上并启动:
     sudo -u hdfs hdfs namenode -bootstrapStandby
     sudo service hadoop-hdfs-namenode start

15、[datanode]启动所有的datanode:

sudo service hadoop-hdfs-datanode start

16、[namenode]启动yarn服务:

sudo service hadoop-yarn-resourcemanager start
     sudo service hadoop-mapreduce-historyserver start
     sudo service hadoop-yarn-proxyserver start

17、[datanode]datanode上启动yarn:
     sudo service hadoop-yarn-nodemanager start

18、[namenode + secondnamenode]安装并启动ZooKeeperFailoverCotroller:

   sudo yum install -y hadoop-hdfs-zkfc
     sudo service hadoop-hdfs-zkfc start

19、[ALL]检测状态:
     sudo /usr/java/jdk1.6.0_45/bin/jps
20、建立hdfs文件目录(有些是以后用到的):
    sudo -u hdfs hadoop fs -chmod 777 /user
     sudo -u hdfs hadoop fs -mkdir /user/history

sudo -u hdfs hadoop fs -chmod -R 1777 /user/history
     sudo -u hdfs hadoop fs -chown mapred:hadoop /user/history
     sudo -u hdfs hadoop fs -mkdir /var/log/hadoop-yarn
     sudo -u hdfs hadoop fs -chown yarn:mapred /var/log/hadoop-yarn

sudo -u hdfs hadoop fs -mkdir /tmp
     sudo -u hdfs hadoop fs -chmod -R 1777 /tmp
     sudo -u hdfs hadoop fs -mkdir /user/hive
     sudo -u hdfs hadoop fs -mkdir /user/hive/warehouse
     sudo -u hdfs hadoop fs -chown -R hive /user/hive
     sudo -u hdfs hadoop fs -chmod -R 1777 /user/hive/warehouse

sudo -u hdfs hadoop fs -mkdir /tmp/hadoop-mapred
     sudo -u hdfs hadoop fs -mkdir /tmp/hive-hive

sudo -u hdfs hadoop fs -chmod -R 777 /tmp/hadoop-mapred
     sudo -u hdfs hadoop fs -chmod -R 777 /tmp/hive-hive

sudo -u hdfs hadoop fs -mkdir /user/cloud-user
     sudo -u hdfs hadoop fs -chown cloud-user:cloud-user /user/cloud-user
21、测试map-reduce: 

    cd /usr/lib/hadoop-mapreduce

     hadoop jar hadoop-mapreduce-examples-2.0.0-cdh4.6.0.jar pi 2 10

【原】centos6.5下hadoop cdh4.6 安装的更多相关文章

  1. [转] Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    from:  http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得 ...

  2. Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    原文:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...

  3. Linux下Hadoop的简单安装

    Hadoop 的安装极为简单,一共只有三步:   安装JDK 安装Hadoop 配置Hadoop     1,安装JDK       下载JDK,ftp传到linux或者linux中下载     切换 ...

  4. Ubuntu16.04下Hadoop的本地安装与配置

    一.系统环境 os : Ubuntu 16.04 LTS 64bit jdk : 1.8.0_161 hadoop : 2.6.4 部署时使用的用户名为hadoop,下文中需要使用用户名的地方请更改为 ...

  5. CentOS6.4下Mysql数据库的安装与配置

    原文连接:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 说到数据库,我们大多想到的是关系型数据库,比如 ...

  6. Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置(转)

    原文地址:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建 ...

  7. Linux学习之CentOS(一)--CentOS6.6下Mysql数据库的安装与配置

    在这里我是通过yum来进行mysql数据库的安装的,通过这种方式进行安装,可以将跟mysql相关的一些服务.jar包都给我们安装好,所以省去了很多不必要的麻烦!!! [root@larry ~]# c ...

  8. Centos6 系统下源码方式安装Mysql 记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配. #### ...

  9. Ubuntu 13.10下Hadoop 2.2 安装、配置、编译(伪分布式)

    1.安装JDK.在此不做解说,上篇博文里已介绍过.http://www.cnblogs.com/lifeinsmile/p/3578677.html 2.配置ssh. ssh服务,用于管理远程Hado ...

随机推荐

  1. T-SQL中的透视和逆透视

    透视 今天抽一点时间来看看透视和逆透视语句,简单的说就是行列转换.假设一个销售表中存放着产品号,产品折扣,产品价格三个列,每一种产品号可能有多种折扣,每一种折扣只对应一个产品价格.下面贴出建表语句和插 ...

  2. Android简单例子——AlertDialog

    最近学习了一段时间的Android,在网上找了些小的Demo,自己模拟这做了下,首先谢谢那些提供例子的朋友 今天主要学习的是简单的Dialog的使用(实现退出对话框)和自定义对话框 1.实现退出对话框 ...

  3. C# 虚方法 抽象方法 接口

    虚方法:virtu 注意的几点: 1,父类中如果有方法让子类重写,则可以将该方法标记为virtual 2.虚方法在父类中必须有实现,哪怕是空实现 3虚方法子类可以重写,也可以不重写 4.如果类是抽象类 ...

  4. oc 获取当前时间

    //获取当前日期 NSDate* date = [NSDate date]; NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init]; ...

  5. 如何在cmd中运行数据库

    在开始菜单中输入cmd 在控制板输入:net  start  MSSQLserver 启动数据库 在控制板输入:net  stop  MSSQLserver 关闭数据库 在控制板输入:net  pur ...

  6. 转:探讨android更新UI的几种方法

    本文转自:http://www.cnblogs.com/wenjiang/p/3180324.html 作为IT新手,总以为只要有时间,有精力,什么东西都能做出来.这种念头我也有过,但很快就熄灭了,因 ...

  7. Best Time to Buy and Sell Stock III 解题思路

    题目要求: 最多交易两次,并且只能买卖完之后再买. 总思路: 在数组中找一个适当的点i,使得i左右两边profit之和最大. 思路: 1.从左往右扫描,left[i]记录包括i元素以内的左部的maxp ...

  8. umask默认权限分配

    umask默认权限分配的命令 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情.umask设置了用户创建文件的默认 权限,它与chmod的效果刚好 ...

  9. Spring MVC 3.2 406 Not Acceptable

    Spring MVC 3.2 406 Not Acceptable 这个报错主要是因为SpringMVC配置文件配置问题. 修改步骤如下: 首先,修改spring-mvc.xsd为 spring-mv ...

  10. MVC中的文件上传-小结

    web开发中,文件的上传是非常基本功能之一. 在asp.net中,通常做法是利用webservice 来接收文件请求,这样做的好处就是全站有了一个统一的文件上传接口,并且根据网站的实际情况,可以将we ...