1、环境说明

系统环境:

  • 系统环境:centos6.7
  • Hadoop版本:CDH5.5
  • JDK运行版本:1.7.0_67

集群各节点组件分配:

2、准备工作

安装 Hadoop 集群前先做好下面的准备工作,在修改配置文件的时候,建议在一个节点上修改,然后同步到其他节点。因为要同步配置文件和在多个节点启动服务,建议配置 ssh 无密码登陆。

2.1配置hosts

  • CDH 要求使用 IPv4,IPv6 不支持,禁用IPv6方法:
  1. # vim /etc/sysctl.conf
  2. #disable ipv6
  3. net.ipv6.conf.all.disable_ipv6=1
  4. net.ipv6.conf.default.disable_ipv6=1
  5. net.ipv6.conf.lo.disable_ipv6=1
  • 使其生效:
  1. # sysctl -p
  • 最后确认是否已禁用:
  1. # cat /proc/sys/net/ipv6/conf/all/disable_ipv6
  2. 1
  • 设置hostname,以bd-ops-test-74为例
  1. hostname bd-ops-test-74
  • 并使其永久生效
  1. # vim /etc/sysconfig/network
  2. 修改HOSTNAME=bd-ops-test-74
  • 修改hosts表
  1. 在每个节点上都应有一份hosts表,在之后的配置中,对应节点名称使用hostname
  2. # vim /etc/hosts
  3. 172.16.57.74 bd-ops-test-74
  4. 172.16.57.75 bd-ops-test-75
  5. 172.16.57.76 bd-ops-test-76
  6. 172.16.57.77 bd-ops-test-77

2.2关闭防火墙以及selinux

  1. # setenforce 0
  2. # vim /etc/sysconfig/selinux #修改SELINUX=disabled
  3.  
  4. #清空iptables
  5. # iptables -F

2.3时钟同步

搭建时钟同步服务器

这里选择 74 节点为时钟同步服务器,其他节点为客户端同步时间到该节点。安装ntp:

  1. # yum install ntp -y

修改 74 上的配置文件 /etc/ntp.conf

  1. driftfile /var/lib/ntp/drift
  2. restrict default nomodify notrap nopeer noquery
  3. restrict 127.0.0.1
  4. restrict ::1
  5. restrict 172.16.57.0 mask 255.255.255.0 nomodify notrap
  6. server 0.centos.pool.ntp.org iburst
  7. server 1.centos.pool.ntp.org iburst
  8. server 2.centos.ntp.org iburst
  9. server 3.centos.pool.ntp.org iburst
  10. includefile /etc/ntp/crypto/pw
  11. keys /etc/ntp/keys
  12. disable monitor

启动 ntp:

  1. #设置开机启动
  2. # chkconfig ntpd on
  3.  
  4. # service ntpd start

ntpq用来监视ntpd操作,使用标准的NTP模式6控制消息模式,并与NTP服务器通信。

ntpq -p 查询网络中的NTP服务器,同时显示客户端和每个服务器的关系。

  1. #ntpq -p
  2. remote refid st t when poll reach delay offset jitter
  3. ==============================================================================
  4. *dns1.synet.edu. 202.118.1.47 2 u 57 64 377 41.912 -3.877 4.628

客户端的配置

在76和77节点上执行下面操作:

  1. # ntpdate bd-ops-test-74

Ntpd启动的时候通常需要一段时间大概5分钟进行时间同步,所以在ntpd刚刚启动的时候还不能正常提供时钟服务,报错"no server suitable for synchronization found"。启动时候需要等待5分钟。

过一会儿我们就可以看到同步成功了:

  1. #ntpdate bd-ops-test-74
  2. 24 Aug 22:32:14 ntpdate[14024]: step time server 172.16.57.74 offset -77.582859 sec

2.4安装JDK

此过程不再赘述,本例中jdk安装目录为/opt/programs/jdk1.7.0_67

2.5设置本地yum源

从官方下载cdh5.5压缩仓库包,传送门:http://archive.cloudera.com/cdh5/repo-as-tarball/5.5.1/cdh5.5.1-centos5.tar.gz

解压后配置本地仓库使用。

3、安装Zookeeper

Zookeeper 至少需要3个节点,并且节点数要求是基数,这里在75、76、77上安装 Zookeeper。

3.1安装

在需要安装的节点上执行:

  1. # yum install zookeeper* -y

3.2修改配置文件

设置 zookeeper 配置 /etc/zookeeper/conf/zoo.cfg

  1. maxClientCnxns=50
  2. tickTime=2000
  3. initLimit=10
  4. syncLimit=5
  5. dataDir=/opt/zookeeper/zkdata
  6. clientPort=2181
  7. dataLogDir=/opt/zookeeper/zkdatalog
  8. server.1=172.16.57.75:2888:3888
  9. server.2=172.16.57.76:2888:3888
  10. server.3=172.16.57.77:2888:3888

指定jdk路径/etc/zookeeper/conf/java.env

  1. export JAVA_HOME=/opt/programs/jdk1.7.0_67/

3.3同步配置文件

将配置文件同步到其他节点:

  1. # scp -r /etc/zookeeper/conf root@bd-ops-test-76:/etc/zookeeper/
  2. # scp -r /etc/zookeeper/conf root@bd-ops-test-77:/etc/zookeeper/

3.4初始化并启动服务

在每个节点上初始化并启动 zookeeper,注意 myid 的值需要和 zoo.cfg 中的编号一致。

在 75 节点运行:

  1. # service zookeeper-server init --myid=1
  2. # service zookeeper-server start

在 76 节点运行:

  1. # service zookeeper-server init --myid=2
  2. # service zookeeper-server start

在 77 节点运行:

  1. # service zookeeper-server init --myid=3
  2. # service zookeeper-server start

3.5测试

通过下面命令测试是否启动成功:

  1. # zookeeper-client -server bd-ops-test-74:2181

4、安装和配置HDFS(HA模式)

根据文章开头的节点规划,

在74,75上安装 hadoop-hdfs-namenode,

  1. # yum install hadoop-hdfs-namenode -y

在74,75,76,77上安装hadoop-hdfs-datanode

  1. # yum install hadoop-hdfs-datanode -y

4.1配置hadoop相关环境变量

创建 /etc/hadoop/conf/hadoop-env.sh,主要指定的是jdk、hadoop等相关安装目录

  1. # cat hadoop-env.sh
  2. export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
  3. export HADOOP_HOME=/usr/lib/hadoop
  4. export JAVA_HOME=/opt/programs/jdk1.7.0_67/
  5. export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC -XX:ParallelGCThreads=8"
  6. export HADOOP_HEAPSIZE=16384
  7. export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/lib/hadoop-lzo.jar

在/etc/hadoop/conf/slaves中指定集群的hostname

  1. # cat slaves
  2. bd-ops-test-74
  3. bd-ops-test-75
  4. bd-ops-test-76
  5. bd-ops-test-77

4.2修改hadoop配置文件

/etc/hadoop/conf/core-site.xml中设置fs.defaultFS属性值,该属性指定NameNode是哪一个节点以及使用的文件系统是file还是hdfs,格式:hdfs://<namenode host>:<namenode port>/,默认的文件系统是file:///

  1. <property>
  2. <name>fs.defaultFS</name>
  3. <value>hdfs://bd-ops-test:8020</value>
  4. </property>

/etc/hadoop/conf/hdfs-site.xml中设置dfs.permissions.superusergroup属性,该属性指定hdfs的超级用户,默认为hdfs,你可以修改为hadoop:

  1. <property>
  2. <name>dfs.permissions.superusergroup</name>
  3. <value>hadoop</value>
  4. </property>

更多的配置信息说明,请参考 Apache Cluster Setup

4.3指定本地文件目录

在hadoop中默认的文件路径以及权限要求如下:

  1. 目录 所有者 权限 默认路径
  2. hadoop.tmp.dir hdfs:hdfs drwx------ /var/hadoop
  3. dfs.namenode.name.dir hdfs:hdfs drwx------ file://${hadoop.tmp.dir}/dfs/name
  4. dfs.datanode.data.dir hdfs:hdfs drwx------ file://${hadoop.tmp.dir}/dfs/data
  5. dfs.namenode.checkpoint.dir hdfs:hdfs drwx------ file://${hadoop.tmp.dir}/dfs/namesecondary

说明你可以在 hdfs-site.xm l中只配置hadoop.tmp.dir,也可以分别配置上面的路径。这里使用分别配置的方式,hdfs-site.xml中配置如下:

  1. <property>
  2. <name>dfs.namenode.name.dir</name>
  3. <value>file:///opt/hadoop/data/hdfs/nn</value>
  4. </property>
  5.  
  6. <property>
  7. <name>dfs.datanode.data.dir</name>
  8. <value>file:///opt/hadoop/data1/hdfs/dn,file:///opt/hadoop/data2/hdfs/dn,file:///opt/hadoop/data3/hdfs/dn</value>
  9. </property>

NameNode上手动创建 dfs.name.dirdfs.namenode.name.dir 的本地目录:

  1. mkdir -p /opt/hadoop/data/hdfs/nn

DataNode上手动创建 dfs.data.dirdfs.datanode.data.dir 的本地目录:

  1. mkdir -p /opt/hadoop/data{1,2,3}/hdfs/dn

修改上面目录所有者:

  1. chown -R hdfs:hdfs /opt/hadoop/*

hadoop的进程会自动设置 dfs.data.dirdfs.datanode.data.dir,但是 dfs.name.dirdfs.namenode.name.dir 的权限默认为755,需要手动设置为700:

  1. # chmod 700 /opt/hadoop/data/hdfs/nn

注意:DataNode的本地目录可以设置多个(我这里有三个),你可以设置 dfs.datanode.failed.volumes.tolerated 参数的值,表示能够容忍不超过该个数的目录失败。

4.4开启回收站功能

回收站功能默认是关闭的,建议打开。在 /etc/hadoop/conf/core-site.xml 中添加如下两个参数:

  • fs.trash.interval,该参数值为时间间隔,单位为分钟,默认为0,表示回收站功能关闭。该值表示回收站中文件保存多长时间,如果服务端配置了该参数,则忽略客户端的配置;如果服务端关闭了该参数,则检查客户端是否有配置该参数;
  • fs.trash.checkpoint.interval,该参数值为时间间隔,单位为分钟,默认为0。该值表示检查回收站时间间隔,该值要小于fs.trash.interval,该值在服务端配置。如果该值设置为0,则使用 fs.trash.interval 的值。

4.5开启WebHDFS

在NameNode节点上安装:

  1. # yum install hadoop-httpfs -y

然后修改 /etc/hadoop/conf/core-site.xml配置代理用户:

  1. <property>
  2. <name>hadoop.proxyuser.httpfs.hosts</name>
  3. <value>*</value>
  4. </property>
  5. <property>
  6. <name>hadoop.proxyuser.httpfs.groups</name>
  7. <value>*</value>
  8. </property>

4.6配置LZO

安装lzo:

  1. # yum install hadoop-lzo* impala-lzo -y

最后,在 /etc/hadoop/conf/core-site.xml 中添加如下配置:

  1. <property>
  2. <name>io.compression.codecs</name>
  3. <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,
  4. org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzoCodec,
  5. com.hadoop.compression.lzo.LzopCodec</value>
  6. </property>
  7. <property>
  8. <name>io.compression.codec.lzo.class</name>
  9. <value>com.hadoop.compression.lzo.LzoCodec</value>
  10. </property>

更多关于LZO信息,请参考:Using LZO Compression

4.7配置Snappy

cdh 的 rpm 源中默认已经包含了 snappy ,直接在每个节点安装Snappy:

  1. yum install snappy snappy-devel -y

然后,在 core-site.xml 中修改io.compression.codecs的值,添加 org.apache.hadoop.io.compress.SnappyCodec

使 snappy 对 hadoop 可用:

  1. ln -sf /usr/lib64/libsnappy.so /usr/lib/hadoop/lib/native/

4.8HA配置

安装服务

在 75、76、77 上安装 hadoop-hdfs-journalnode

  1. yum install hadoop-hdfs-journalnode -y

在 74、75(namenode) 上安装 hadoop-hdfs-zkfc:

  1. yum install hadoop-hdfs-zkfc -y

修改配置文件

修改/etc/hadoop/conf/core-site.xml,做如下修改:

  1. <property>
  2. <name>fs.defaultFS</name>
  3. <value>hdfs://bd-ops-test:8020</value>
  4. </property>
  5. <property>
  6. <name>ha.zookeeper.quorum</name>
  7. <value>bd-ops-test-75:2181,bd-ops-test-76:2181,bd-ops-test-77:2181</value>
  8. </property>

修改/etc/hadoop/conf/hdfs-site.xml

  1. <property>
  2. <name>dfs.nameservices</name>
  3. <value>bd-ops-test</value>
  4. </property>
  5.  
  6. <property>
  7. <name>dfs.ha.namenodes.bd-ops-test</name>
  8. <value>bd-ops-test-74,bd-ops-test-75</value>
  9. </property>
  10.  
  11. <property>
  12. <name>dfs.namenode.rpc-address.bd-ops-test.bd-ops-test-74</name>
  13. <value>bd-ops-test-74:8020</value>
  14. </property>
  15.  
  16. <property>
  17. <name>dfs.namenode.rpc-address.bd-ops-test.bd-ops-test-75</name>
  18. <value>bd-ops-test-75:8020</value>
  19. </property>
  20.  
  21. <property>
  22. <name>dfs.namenode.http-address.bd-ops-test.bd-ops-test-74</name>
  23. <value>bd-ops-test-74:50070</value>
  24. </property>
  25.  
  26. <property>
  27. <name>dfs.namenode.http-address.bd-ops-test.bd-ops-test-75</name>
  28. <value>bd-ops-test-75:50070</value>
  29. </property>
  30.  
  31. <property>
  32. <name>dfs.namenode.shared.edits.dir</name>
  33. <value>qjournal://bd-ops-test-75:8485;bd-ops-test-76:8485;bd-ops-test-77:8485/bd-ops-test</value>
  34. </property>
  35.  
  36. <property>
  37. <name>dfs.journalnode.edits.dir</name>
  38. <value>/opt/hadoop/data1/hdfs/jn</value>
  39. </property>
  40.  
  41. <property>
  42. <name>dfs.client.failover.proxy.provider.bd-ops-test</name>
  43. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  44. </property>
  45.  
  46. <property>
  47. <name>dfs.ha.fencing.methods</name>
  48. <value>sshfence</value>
  49. </property>
  50.  
  51. <property>
  52. <name>dfs.ha.fencing.ssh.private-key-files</name>
  53. <value>/var/lib/hadoop-hdfs/.ssh/id_rsa</value>
  54. </property>
  55.  
  56. <property>
  57. <name>dfs.ha.automatic-failover.enabled</name>
  58. <value>true</value>
  59. </property>

4.9启动HDFS

将74上的配置文件同步到每一个节点:

  1. scp -r /etc/hadoop/conf root@bd-ops-test-75:/etc/hadoop/
  2. scp -r /etc/hadoop/conf root@bd-ops-test-76:/etc/hadoop/
  3. scp -r /etc/hadoop/conf root@bd-ops-test-77:/etc/hadoop/

在74节点格式化NameNode:

  1. sudo -u hdfs hadoop namenode -format
  2.  

启动journalnode

启动75、76、77上的 hadoop-hdfs-journalnode 服务

  1. service hadoop-hdfs-journalnode start

初始化共享存储

在namenode上初始化共享存储,如果没有格式化,则先格式化:

  1. hdfs namenode -initializeSharedEdits

启动第一个namenode(74)

  1. service hadoop-hdfs-namenode start

同步 Standby NameNode

75作为 Standby NameNode,运行

  1. sudo -u hdfs hadoop namenode -bootstrapStandby

然后,启动 Standby NameNode:

  1. service hadoop-hdfs-namenode start

配置自动切换

在两个NameNode上,即74和75,安装hadoop-hdfs-zkfc

  1. yum install hadoop-hdfs-zkfc -y

在任意一个NameNode上下面命令,其会创建一个znode用于自动故障转移

  1. hdfs zkfc -formatZK

然后再两个 NameNode 节点上启动zkfc:

  1. service hadoop-hdfs-zkfc start

启动datanode

在datanode节点运行:

  1. service hadoop-hdfs-datanode start

如果安装了HttpFS,则启动 HttpFS 服务:

  1. service hadoop-httpfs start

4.10测试

使用 curl 运行下面命令,可以测试 webhdfs 并查看执行结果:

  1. # curl "http://localhost:14000/webhdfs/v1?op=gethomedirectory&user.name=hdfs"
  2. {"Path":"\/user\/hdfs"}

更多的 API,请参考 WebHDFS REST API

分别访问 http://bd-ops-test-74:50070/ 和 http://bd-ops-test-75:50070/ 查看谁是 active namenode,谁是 standyby namenode。

查看某Namenode的状态:

  1. #查看nn1状态
  2. $ sudo -u hdfs hdfs haadmin -getServiceState bd-ops-test-74
  3. active
  4.  
  5. #查看nn2状态
  6. $ sudo -u hdfs hdfs haadmin -getServiceState bd-ops-test-75
  7. standby

执行手动切换:

  1. sudo -u hdfs hdfs haadmin -failover bd-ops-test-74 bd-ops-test-75

再次访问 http://bd-ops-test-74:50070/ 和 http://bd-ops-test-75:50070/ 查看谁是 active namenode,谁是 standyby namenode。

5、安装和配置YARN(HA模式)

根据文章开头的节点规划,74、75 为resourcemanager节点,74,、75、76、77 为nodemanager节点,historyserver 装在 76 节点上。

5.1 安装服务

在74,75安装:

  1. yum install hadoop-yarn hadoop-yarn-resourcemanager -y

在74-77安装:

  1. yum install hadoop-yarn hadoop-yarn-nodemanager hadoop-mapreduce -y

在76安装:

  1. yum install hadoop-mapreduce-historyserver hadoop-yarn-proxyserver -y

5.2修改配置文件

要想使用YARN,需要在 /etc/hadoop/conf/mapred-site.xml 中做如下配置:

  1. <property>
  2. <name>mapreduce.framework.name</name>
  3. <value>yarn</value>
  4. </property>

修改/etc/hadoop/conf/yarn-site.xml,配置resourcemanager的节点名称、一些服务的端口号以及ha的配置:

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3.  
  4. <configuration>
  5. <!-- RM Manager Configd -->
  6. <property>
  7. <name>yarn.resourcemanager.connect.retry-interval.ms</name>
  8. <value>2000</value>
  9. </property>
  10.  
  11. <property>
  12. <name>yarn.resourcemanager.ha.enabled</name>
  13. <value>true</value>
  14. </property>
  15.  
  16. <property>
  17. <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
  18. <value>true</value>
  19. </property>
  20.  
  21. <property>
  22. <name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
  23. <value>true</value>
  24. </property>
  25.  
  26. <property>
  27. <name>yarn.resourcemanager.cluster-id</name>
  28. <value>yarn-rm-cluster</value>
  29. </property>
  30.  
  31. <property>
  32. <name>yarn.resourcemanager.ha.rm-ids</name>
  33. <value>bd-ops-test-74,bd-ops-test-75</value>
  34. </property>
  35.  
  36. <property>
  37. <name>yarn.resourcemanager.ha.id</name>
  38. <value>bd-ops-test-74</value>
  39. </property>
  40.  
  41. <!--
  42. <property>
  43. <name>yarn.resourcemanager.scheduler.class</name>
  44. <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  45. </property>
  46. -->
  47.  
  48. <!--scheduler capacity -->
  49. <property>
  50. <name>yarn.resourcemanager.scheduler.class</name>
  51. <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
  52. </property>
  53.  
  54. <property>
  55. <name>yarn.resourcemanager.recovery.enabled</name>
  56. <value>true</value>
  57. </property>
  58.  
  59. <property>
  60. <name>yarn.resourcemanager.store.class</name>
  61. <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
  62. </property>
  63.  
  64. <property>
  65. <name>yarn.resourcemanager.zk-address</name>
  66. <value>bd-ops-test-75:2181,bd-ops-test-76:2181,bd-ops-test-77:2181</value>
  67. </property>
  68.  
  69. <property>
  70. <name>yarn.resourcemanager.zk.state-store.address</name>
  71. <value>bd-ops-test-75:2181,bd-ops-test-76:2181,bd-ops-test-77:2181</value>
  72. </property>
  73.  
  74. <property>
  75. <name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
  76. <value>5000</value>
  77. </property>
  78.  
  79. <!-- RM1 Configs-->
  80. <property>
  81. <name>yarn.resourcemanager.address.bd-ops-test-74</name>
  82. <value>bd-ops-test-74:23140</value>
  83. </property>
  84.  
  85. <property>
  86. <name>yarn.resourcemanager.scheduler.address.bd-ops-test-74</name>
  87. <value>bd-ops-test-74:23130</value>
  88. </property>
  89.  
  90. <property>
  91. <name>yarn.resourcemanager.webapp.https.address.bd-ops-test-74</name>
  92. <value>bd-ops-test-74:23189</value>
  93. </property>
  94.  
  95. <property>
  96. <name>yarn.resourcemanager.webapp.address.bd-ops-test-74</name>
  97. <value>bd-ops-test-74:23188</value>
  98. </property>
  99.  
  100. <property>
  101. <name>yarn.resourcemanager.resource-tracker.address.bd-ops-test-74</name>
  102. <value>bd-ops-test-74:23125</value>
  103. </property>
  104.  
  105. <property>
  106. <name>yarn.resourcemanager.admin.address.bd-ops-test-74</name>
  107. <value>bd-ops-test-74:23141</value>
  108. </property>
  109.  
  110. <!-- RM2 Configs -->
  111. <property>
  112. <name>yarn.resourcemanager.address.bd-ops-test-75</name>
  113. <value>bd-ops-test-75:23140</value>
  114. </property>
  115.  
  116. <property>
  117. <name>yarn.resourcemanager.scheduler.address.bd-ops-test-75</name>
  118. <value>bd-ops-test-75:23130</value>
  119. </property>
  120.  
  121. <property>
  122. <name>yarn.resourcemanager.webapp.https.address.bd-ops-test-75</name>
  123. <value>bd-ops-test-75:23189</value>
  124. </property>
  125.  
  126. <property>
  127. <name>yarn.resourcemanager.webapp.address.bd-ops-test-75</name>
  128. <value>bd-ops-test-75:23188</value>
  129. </property>
  130.  
  131. <property>
  132. <name>yarn.resourcemanager.resource-tracker.address.bd-ops-test-75</name>
  133. <value>bd-ops-test-75:23125</value>
  134. </property>
  135.  
  136. <property>
  137. <name>yarn.resourcemanager.admin.address.bd-ops-test-75</name>
  138. <value>bd-ops-test-75:23141</value>
  139. </property>
  140.  
  141. <!-- Node Manager Configs -->
  142. <property>
  143. <name>yarn.nodemanager.resource.memory-mb</name>
  144. <value>61440</value>
  145. </property>
  146.  
  147. <property>
  148. <name>yarn.nodemanager.resource.cpu-vcores</name>
  149. <value>24</value>
  150. </property>
  151.  
  152. <property>
  153. <name>yarn.log-aggregation.retain-seconds</name>
  154. <value>86400</value>
  155. </property>
  156.  
  157. <property>
  158. <name>yarn.log-aggregation.retain-check-interval-seconds</name>
  159. <value>8640</value>
  160. </property>
  161.  
  162. <property>
  163. <name>yarn.nodemanager.localizer.address</name>
  164. <value>0.0.0.0:23344</value>
  165. </property>
  166.  
  167. <property>
  168. <name>yarn.nodemanager.webapp.address</name>
  169. <value>0.0.0.0:23999</value>
  170. </property>
  171.  
  172. <property>
  173. <name>yarn.web-proxy.address</name>
  174. <value>0.0.0.0:8080</value>
  175. </property>
  176.  
  177. <property>
  178. <name>mapreduce.shuffle.port</name>
  179. <value>23080</value>
  180. </property>
  181.  
  182. <property>
  183. <name>yarn.nodemanager.aux-services</name>
  184. <value>mapreduce_shuffle</value>
  185. </property>
  186.  
  187. <property>
  188. <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
  189. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  190. </property>
  191.  
  192. <property>
  193. <name>yarn.log-aggregation-enable</name>
  194. <value>true</value>
  195. </property>
  196.  
  197. <property>
  198. <name>yarn.nodemanager.local-dirs</name>
  199. <value>file:///opt/hadoop/data1/yarn/dn,file:///opt/hadoop/data2/yarn/dn,file:///opt/hadoop/data3/yarn/dn</value>
  200. </property>
  201.  
  202. <property>
  203. <name>yarn.nodemanager.log-dirs</name>
  204. <value>file:///opt/hadoop/data1/yarn/logs,file:///opt/hadoop/data2/yarn/logs,file:///opt/hadoop/data3/yarn/logs</value>
  205. </property>
  206.  
  207. <!--
  208. <property>
  209. <name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name>
  210. <value>0</value>
  211. </property>
  212.  
  213. <property>
  214. <name>yarn.nodemanager.disk-health-checker.enable</name>
  215. <value>false</value>
  216. </property>
  217. -->
  218.  
  219. <property>
  220. <name>yarn.nodemanager.remote-app-log-dir</name>
  221. <value>hdfs://bd-ops-test:8020/yarn/apps</value>
  222. </property>
  223.  
  224. <property>
  225. <name>yarn.application.classpath</name>
  226. <value>
  227. $HADOOP_CONF_DIR,
  228. $HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,
  229. $HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,
  230. $HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,
  231. $HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*
  232. </value>
  233. </property>
  234.  
  235. <property>
  236. <name>yarn.web-proxy.address</name>
  237. <value>172.16.57.76:41202</value>
  238. </property>
  239. <property>
  240. <name>yarn.log.server.url</name>
  241. <value>http://bd-ops-test-76:19888/jobhistory/logs</value>
  242. </property>
  243. </configuration>

/etc/hadoop/conf/mapred-site.xml 中配置 MapReduce History Server:

  1. <property>
  2. <name>mapreduce.jobhistory.address</name>
  3. <value>bd-ops-test-76:10020</value>
  4. </property>
  5.  
  6. <property>
  7. <name>mapreduce.jobhistory.webapp.address</name>
  8. <value>bd-ops-test-76:19888</value>
  9. </property>

此外,确保 mapred、yarn 用户能够使用代理,在 /etc/hadoop/conf/core-site.xml 中添加如下参数:

  1. <property>
  2. <name>hadoop.proxyuser.mapred.groups</name>
  3. <value>*</value>
  4. </property>
  5.  
  6. <property>
  7. <name>hadoop.proxyuser.mapred.hosts</name>
  8. <value>*</value>
  9. </property>
  10.  
  11. <property>
  12. <name>hadoop.proxyuser.yarn.groups</name>
  13. <value>*</value>
  14. </property>
  15.  
  16. <property>
  17. <name>hadoop.proxyuser.yarn.hosts</name>
  18. <value>*</value>
  19. </property>

配置 Staging 目录:

  1. <property>
  2. <name>yarn.app.mapreduce.am.staging-dir</name>
  3. <value>/user</value>
  4. </property>

并在 hdfs 上创建相应的目录:

  1. # sudo -u hdfs hadoop fs -mkdir -p /user
  2. # sudo -u hdfs hadoop fs -chmod 777 /user
  3. # sudo -u hdfs hadoop fs -mkdir -p /user/history
  4. # sudo -u hdfs hadoop fs -chmod -R 1777 /user/history
  5. # sudo -u hdfs hadoop fs -chown mapred:hadoop /user/history

5.3创建本地文件目录

创建 yarn.nodemanager.local-dirsyarn.nodemanager.log-dirs 参数对应的目录:

  1. # mkdir -p mkdir /opt/hadoop/data{1..3}/yarn/{dn,logs}
  2. # chown -R yarn:yarn /opt/hadoop/data{1..3}/yarn

5.4同步配置文件

同步配置文件到整个集群。

5.5启动服务

在每个节点启动 YARN :

  1. for x in `ls /etc/init.d/|grep hadoop-yarn` ; do service $x start ; done

在 76节点启动 mapred-historyserver :

  1. /etc/init.d/hadoop-mapreduce-historyserver start

在 hdfs 运行之后,创建 /tmp 临时目录,并设置权限为 1777

  1. sudo -u hdfs hadoop fs -mkdir /tmp
  2. sudo -u hdfs hadoop fs -chmod -R 1777 /tmp

5.6测试

通过http://bd-ops-test-74:23188/cluster/cluster, http:// bd-ops-test-75:23188/cluster/cluster , 可以查看谁是actice谁是standby,通过 http://cdh1:19888/ 可以访问 JobHistory 的管理页面。

查看ResourceManager状态:

  1. yarn rmadmin -getServiceState bd-ops-test-73

执行手动切换:

  1. yarn rmadmin -transitionToActive --forcemanual bd-ops-test-74

yum安装CDH5.5 Hadoop集群的更多相关文章

  1. 安装和配置hadoop集群步骤

    hadoop集群的安装步骤和配置 hadoop是由java语言编写的,首先我们肯定要在电脑中安装jdk,配置好jdk的环境,接下来就是安装hadoop集群的步骤了,在安装之前需要创建hadoop用户组 ...

  2. 安装CDH5.11.2集群

    master  192.168.1.30 saver1  192.168.1.40 saver2  192.168.1.50 首先,时间同步 然后,ssh互通 接下来开始: 1.安装MySQL5.6. ...

  3. 虚拟机群安装多个hadoop集群时遇到的问题

    背景,原来在我的虚拟机集群(nn1,nn2)中安装的是cdh23502,后来做升级实验,升到cdh26550,因为生产中使用的环境是cdh23502,所以再次切换回去. 切换的过程中,遇到一些问题,特 ...

  4. Hadoop之Hive 安装_(hadoop 集群)

    Hive mysql的metastore安装准备(***掌握***) 在nameNode1机子上实践: 把hive-0.12.0.tar.gz解压到/itcast/ # tar -zxvf hive- ...

  5. SPARK安装二:HADOOP集群部署

    一.hadoop下载 使用2.7.6版本,因为公司生产环境是这个版本 cd /opt wget http://mirrors.hust.edu.cn/apache/hadoop/common/hado ...

  6. Hadoop集群搭建-03编译安装hadoop

    Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...

  7. Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~)

    http://blog.csdn.net/licongcong_0224/article/details/12972889 历时一周多,终于搭建好最新版本hadoop2.2集群,期间遇到各种问题,作为 ...

  8. Hadoop集群搭建-05安装配置YARN

    Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hadoop集群搭建-01前期准备 先保证集群5台虚 ...

  9. Hadoop集群搭建-04安装配置HDFS

    Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...

随机推荐

  1. JavaScript 逗号表达式

    逗号表达式的一般形式是:表达式1,表达式2,表达式3……表达式n  逗号表达式的求解过程是:先计算表达式1的值,再计算表达式2的值,……一直计算到表达式n的值.最后整个逗号表达式的值是表达式n的值.  ...

  2. ZooKeeper 的安装和配置---单机和集群

    如题本文介绍的是ZooKeeper 的安装和配置过程,此过程非常简单,关键是如何应用(将放在下节及相关节中介绍). 单机安装.配置: 安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个 ...

  3. ICE第二篇--一个"hello world"的简单例子

    1 本文介绍一个hello world输出的例子. ice应用的步骤如下: 1. 编写 Slice 定义并编译它. 2. 编写服务器并编译它. 3. 编写客户并编译它. 基本框架图示: 本文代码图示: ...

  4. JS传递到后台中文 出现乱码问题

    js 异步传递中文字符,后台接收出现乱码问题 function showFirSelect(a){ var b = encodeURI(a); var secUrl = "<%=bas ...

  5. 用Quick Cocos2dx做一个连连看(二)

    今天完成了以下内容: 1 成对生成SpriteItem 2 重排接口制作完成 3 SpriteItem的选择逻辑 主要代码如下: function MainScene:onEnter() local ...

  6. cronolog 对 tomcat 7 进行日志切割

    一.安装 软件 cronolog-1.6.2.tar.gz tar zxvf cronolog-1.6.2.tar.gz cd cronolog-1.6.2 ./configure && ...

  7. jsoncpp第二篇------API

    更多API参考jsoncpp头文件 1  jsoncpp的api简要说明 1,解析(json字符串转为对象) std::string strDataJson; Json::Reader JReader ...

  8. android测试之——Instrumentation(一)

    以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址 感谢您支持我的博客,我的动力是您的支持和关注!如若转载和使用请注明转载地址 ...

  9. hadoop+海量数据面试题汇总(一)

    hadoop面试题 Q1. Name the most common InputFormats defined in Hadoop? Which one is default ? Following  ...

  10. html元素被隐藏在后面

    当有些html元素是由于某些控件生成的,然后它被隐藏在其他元素的后面,但是它一开始是隐藏的,你无法直接在html或js里修改它的属性:z-index,使其可以放在更前面,这时可以在css里重新定义控件 ...