[关闭]
@duguyiren3476 2015-08-04T08:37:40.000000Z 字数 4665 阅读 271

Hadoop HA 高可用配置

未分类


hadoop的ha高可用是指hdfs的高可用机制,如果要配置ha,请在配置好的非高可用的配置基础上修改,环境
- namenode:
nn1:10.128.17.21;
nn2:10.128.17.39;
- datanode:
dn1:10.128.17.24
dn2:10.128.17.25
- journalnode:
10.128.17.39;
10.128.17.24;
10.128.17.25;
- zookeeper:
10.128.17.16
10.128.17.17
10.128.17.20
如下文件:

core-site.xml

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>/oneapm/data/hadoop</value>
  5. <description>Abase for other temporary directories.</description>
  6. </property>
  7. <property>
  8. <name>fs.defaultFS</name>
  9. <value>hdfs://onlinecluster</value>
  10. </property>
  11. <property>
  12. <name>fs.trash.interval</name>
  13. <value>2880</value>
  14. <description>trash save two days (m)</description>
  15. </property>
  16. <property>
  17. <name>hadoop.logfile.size</name>
  18. <value>104857600</value>
  19. <description>The max size of each log file 100M</description>
  20. </property>
  21. <property>
  22. <name>hadoop.logfile.count</name>
  23. <value>10</value>
  24. <description>The max number of log files</description>
  25. </property>
  26. <property>
  27. <name>hadoop.native.lib</name>
  28. <value>true</value>
  29. </property>
  30. <property>
  31. <name>io.compression.codecs</name>
  32. <value>
  33. org.apache.hadoop.io.compress.GzipCodec,
  34. org.apache.hadoop.io.compress.DefaultCodec,
  35. org.apache.hadoop.io.compress.BZip2Codec,
  36. org.apache.hadoop.io.compress.SnappyCodec
  37. </value>
  38. </property>
  39. <property>
  40. <name>ha.zookeeper.quorum</name>
  41. <value>10.128.17.16:2181,10.128.17.17:2181,10.128.17.20:2181</value>
  42. </property>
  43. <property>
  44. <name>ha.zookeeper.session-timeout.ms</name>
  45. <value>1000</value>
  46. <description>ms</description>
  47. </property>
  48. </configuration>

hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>2</value>
  5. </property>
  6. <property>
  7. <name>dfs.support.append</name>
  8. <value>true</value>
  9. </property>
  10. <property>
  11. <name>dfs.permissions</name>
  12. <value>false</value>
  13. </property>
  14. <property>
  15. <name>dfs.nameservices</name>
  16. <value>onlinecluster</value>
  17. </property>
  18. <property>
  19. <name>dfs.ha.namenodes.onlinecluster</name>
  20. <value>nn1,nn2</value>
  21. </property>
  22. <property>
  23. <name>dfs.namenode.rpc-address.onlinecluster.nn1</name>
  24. <value>10.128.17.21:8020</value>
  25. </property>
  26. <property>
  27. <name>dfs.namenode.rpc-address.onlinecluster.nn2</name>
  28. <value>10.128.17.39:8020</value>
  29. </property>
  30. <property>
  31. <name>dfs.namenode.servicerpc-address.onlinecluster.nn1</name>
  32. <value>10.128.17.21:53310</value>
  33. </property>
  34. <property>
  35. <name>dfs.namenode.servicerpc-address.onlinecluster.nn2</name>
  36. <value>10.128.17.39:53310</value>
  37. </property>
  38. <property>
  39. <name>dfs.namenode.http-address.onlinecluster.nn1</name>
  40. <value>10.128.17.21:50070</value>
  41. </property>
  42. <property>
  43. <name>dfs.namenode.http-address.onlinecluster.nn2</name>
  44. <value>10.128.17.39:50070</value>
  45. </property>
  46. <property>
  47. <name>dfs.namenode.shared.edits.dir</name>
  48. <value>qjournal://10.128.17.24:8485;10.128.17.25:8485;1 0.128.17.39:8485/onlinecluster</value>
  49. </property>
  50. <property>
  51. <name>dfs.client.failover.proxy.provider.onlinecluster</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/hadoop/.ssh/id_rsa_nn1</value>
  61. </property>
  62. <property>
  63. <name>dfs.ha.fencing.ssh.connect-timeout</name>
  64. <value>30000</value>
  65. </property>
  66. <property>
  67. <name>dfs.journalnode.edits.dir</name>
  68. <value>/oneapm/data/hadoop/journaldata</value>
  69. </property>
  70. <property>
  71. <name>dfs.ha.automatic-failover.enabled</name>
  72. <value>true</value>
  73. </property>
  74. <property>
  75. <name>ha.failover-controller.cli-check.rpc-timeout.ms</name>
  76. <value>60000</value>
  77. </property>
  78. <property>
  79. <name>ipc.client.connect.timeout</name>
  80. <value>60000</value>
  81. </property>
  82. <property>
  83. <name>dfs.image.transfer.bandwidthPerSec</name>
  84. <value>4194304</value>
  85. </property>
  86. </configuration>

--
dfs.ha.fencing.methods 的方式为ssh方式,也可以选择shell方式,后者相比更加的麻烦
dfs.ha.fencing.ssh.private-key-files :/home/hadoop/.ssh/id_rsa_nn1 采用sshfence方式的话,需要nn1和nn2之间相互copy对方的私钥id_rsa 并重命名为nn1和nn2; 配置文件同步完之后此值要相应修改为id_rsa_nn1和id_rsa_nn2
同时需要在nn1和nn2的主机上吧所有的dn哈nn的hosts文件配置完整:之后scp分发配置到各个节点

安装启动

  1. bin/hdfs namenode -bootstrapStandby
  1. sbin/stop-dfs.sh
  1. sbin/start-dfs.sh

浏览器粉笔访问nn1:50070和nn2:50070查看namenode状态,并分别kill掉active状态的namenode进程,观察是否standby状态的namenode改变为active,如此反复测试ha

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注