阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop 2.2.0 HA配置

133次阅读
没有评论

共计 11119 个字符,预计需要花费 28 分钟才能阅读完成。

在文章《Ubuntu 和 CentOS 中分布式配置 Hadoop-2.2.0》(见 http://www.linuxidc.com/Linux/2014-01/95799.htm)介绍了 hadoop 2.2.0 最基本的配置。hadoop 2.2.0 中提供了 HA 的功能,本文在前文的基础上介绍 hadoop 2.2.0HA 的配置。

说明:

下文中的两台 namenode 机器名分别是 namenode1 和 namenode2. 其中 namenode1 为 active node,namenode2 为 standby namenode。

journalnode 机器有三台(注意:至少为三台),分别是 journalnode1,journalnode2,journalnode3。(journalnode 的机器的数量可以是 3,5,7…)

另外,注意保持两台 namenode 的一致性,大部分在 namenode1 上进行的操作,也要在 namenode2 上进行一遍。

————————————– 分割线 ————————————–

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

————————————– 分割线 ————————————–

配置文件

core-site.xml 和 hdfs-site.xml 的相关配置如下:

1、core-site.xml

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://mycluster</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/tmp/hadoop2.2.0</value>
  9. </property>
  10. </configuration>

2、hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>/dfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>/dfs/data</value>
  13. </property>
  14. <property>
  15. <name>dfs.permissions</name>
  16. <value>false</value>
  17. </property>
  18. <property>
  19. <name>dfs.nameservices</name>
  20. <value>mycluster</value>
  21. </property>
  22. <property>
  23. <name>dfs.ha.namenodes.mycluster</name>
  24. <value>nn1,nn2</value>
  25. </property>
  26. <property>
  27. <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  28. <value>namenode1:8020</value>
  29. </property>
  30. <property>
  31. <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  32. <value>namenode2:8020</value>
  33. </property>
  34. <property>
  35. <name>dfs.namenode.http-address.mycluster.nn1</name>
  36. <value>namenode1:50070</value>
  37. </property>
  38. <property>
  39. <name>dfs.namenode.http-address.mycluster.nn2</name>
  40. <value>namenode2:50070</value>
  41. </property>
  42. <property>
  43. <name>dfs.namenode.shared.edits.dir</name>
  44. <value>qjournal://journalnode1:8485;journalnode2:8485;journalnode3:8485/mycluster</value>
  45. </property>
  46. <property>
  47. <name>dfs.journalnode.edits.dir</name>
  48. <value>/home/dfs/journal</value>
  49. </property>
  50. <property>
  51. <name>dfs.client.failover.proxy.provider.mycluster</name>
  52. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  53. </property>
  54. <property>
  55. <name>dfs.ha.fencing.methods</name>
  56. <value>sshfence</value>
  57. </property>
  58. <property>
  59. <name>dfs.ha.fencing.ssh.private-key-files</name>
  60. <value>/home/root/.ssh/id_rsa</value>
  61. </property>
  62. <property>
  63. <name>dfs.ha.fencing.ssh.connect-timeout</name>
  64. <value>6000</value>
  65. </property>
  66. <property>
  67. <name>dfs.ha.automatic-failover.enabled</name>
  68. <value>false</value>
  69. </property>
  70. </configuration>

重启使配置生效。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-08/105154p2.htm

启动过程:

1、在 journalnode 机器上启动 journalnode

  1. sbin/Hadoop-daemon.sh start journalnode

2、在 namenode 机器上启动 namenode(这里假定 namenode1 为 active,namenode2 为 standby)

 

a)如果是首次启动,在 namenode1 上运行 format 命令:

  1. bin/hadoop namenode -format

b)如果是非首次启动,则在 namenode1 上运行以下命令

  1. bin/hdfs namenode -initializeSharedEdits

c)在 namenode1 上启动 namenode:

  1. sbin/hadoop-daemon.sh start namenode

d)在 namenode2 上运行以下命令:

  1. sbin/hadoop-daemon.sh start namenode -bootstrapStandby

如果失败的话,直接把 namenode1 的 dfs.namenode.name.dir 目录的数据直接拷贝到 namenode2 的 dfs.namenode.name.dir 目录。

 

然后在 namenode2 上启动 namenode:

  1. sbin/hadoop-daemon.sh start namenode

现在,namenode1 和 namenode2 都启动了,都是“standby”状态。

 

e)在 namenode1 上运行命令:

  1. bin/hdfs haadmin -transitionToActive nn1

这样,namenode1 的状态就变成了“active”。

 

3、在 datanode 机器上启动 datanode

  1. sbin/hadoop-daemon.sh start datanode

到此时,hadoop2.0 的 HDFS 就可以正常使用了,并且 HA 功能已经可用。

 

检查

可以通过以下页面查看 active namenode(namenode1) 和 standby namenode(namenode2) 的状态

http://namenode1:50070/dfshealth.jsp

http://namenode2:50070/dfshealth.jsp

另外,可以运行常用的 HDFS shell 命令测试 HDFS 是否正常。

HA 的 failover 测试

停掉 namenode1 的 namenode(模拟 namenode1 挂掉),这时会发现 hdfs 不能用了。

在 namenode2 上运行以下命令:

  1. bin/hdfs haadmin -transitionToActive nn2

运行命令成功后,namenode2 的状态就变成“active”,这时 HDFS 恢复正常。

 

在 namenode1 上运行一下命令做主从切换命令:

  1. bin/hdfs haadmin -failover nn1 nn2

此时 namenode2 的状态就变成“active”,而 namenode1 的状态变成“standby”。

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

在文章《Ubuntu 和 CentOS 中分布式配置 Hadoop-2.2.0》(见 http://www.linuxidc.com/Linux/2014-01/95799.htm)介绍了 hadoop 2.2.0 最基本的配置。hadoop 2.2.0 中提供了 HA 的功能,本文在前文的基础上介绍 hadoop 2.2.0HA 的配置。

说明:

下文中的两台 namenode 机器名分别是 namenode1 和 namenode2. 其中 namenode1 为 active node,namenode2 为 standby namenode。

journalnode 机器有三台(注意:至少为三台),分别是 journalnode1,journalnode2,journalnode3。(journalnode 的机器的数量可以是 3,5,7…)

另外,注意保持两台 namenode 的一致性,大部分在 namenode1 上进行的操作,也要在 namenode2 上进行一遍。

————————————– 分割线 ————————————–

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

————————————– 分割线 ————————————–

配置文件

core-site.xml 和 hdfs-site.xml 的相关配置如下:

1、core-site.xml

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://mycluster</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/tmp/hadoop2.2.0</value>
  9. </property>
  10. </configuration>

2、hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>/dfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>/dfs/data</value>
  13. </property>
  14. <property>
  15. <name>dfs.permissions</name>
  16. <value>false</value>
  17. </property>
  18. <property>
  19. <name>dfs.nameservices</name>
  20. <value>mycluster</value>
  21. </property>
  22. <property>
  23. <name>dfs.ha.namenodes.mycluster</name>
  24. <value>nn1,nn2</value>
  25. </property>
  26. <property>
  27. <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  28. <value>namenode1:8020</value>
  29. </property>
  30. <property>
  31. <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  32. <value>namenode2:8020</value>
  33. </property>
  34. <property>
  35. <name>dfs.namenode.http-address.mycluster.nn1</name>
  36. <value>namenode1:50070</value>
  37. </property>
  38. <property>
  39. <name>dfs.namenode.http-address.mycluster.nn2</name>
  40. <value>namenode2:50070</value>
  41. </property>
  42. <property>
  43. <name>dfs.namenode.shared.edits.dir</name>
  44. <value>qjournal://journalnode1:8485;journalnode2:8485;journalnode3:8485/mycluster</value>
  45. </property>
  46. <property>
  47. <name>dfs.journalnode.edits.dir</name>
  48. <value>/home/dfs/journal</value>
  49. </property>
  50. <property>
  51. <name>dfs.client.failover.proxy.provider.mycluster</name>
  52. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  53. </property>
  54. <property>
  55. <name>dfs.ha.fencing.methods</name>
  56. <value>sshfence</value>
  57. </property>
  58. <property>
  59. <name>dfs.ha.fencing.ssh.private-key-files</name>
  60. <value>/home/root/.ssh/id_rsa</value>
  61. </property>
  62. <property>
  63. <name>dfs.ha.fencing.ssh.connect-timeout</name>
  64. <value>6000</value>
  65. </property>
  66. <property>
  67. <name>dfs.ha.automatic-failover.enabled</name>
  68. <value>false</value>
  69. </property>
  70. </configuration>

重启使配置生效。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-08/105154p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计11119字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中