Hadoop 2.0.1 HA配置部署

今天折腾HA,那叫一个顺利啊,
我原本准备花一周时间来折腾的,结果今天一天基本搞定,没遇到什么大问题。
要写总结,我也不知道写啥了。
大致流程罗列一下吧。
主要分三步,

第一步,弄清楚HA原理架构,这个参考官方文档,说的很清楚。

第二步,部署好NFS,这个网上也有很多。我主要参考

第三步,配置Hadoop HA,基本上一路顺利,按照官方文档弄就行:

1,保证两个namenode硬件配置相同,或者都能胜任工作吧;
2,保证两个namenode都挂载了nfs同一块区域吧。
3,保证两个namenode可以互相免密码ssh,namenode运行的进程。
4,保证两个NameNode的dfs.namenode.name.dir路径下内容相同;
5,保证dfs.namenode.shared.edits.dir路径下有current/edit_*文件
6,可以启动啦,在namenode上执行start-dfs.sh,可以jps查进程、访问namenode的web、以及看日志确认namenode是否成功启动了。
7,启动datanode (因为我开了security模式,所以datanode要单独在root下启动)
8,启动之后,两个namenode都在standby模式,在namenode上执行hdfs dfs -haadmin failover nn2 nn1 就行啦。
9,没有了,一切静待运行几天。
10,补充下,hadoop 的client也做的ha重试机制,所以client知道去哪里找namenode。
11,附上我的配置文件

Core-site.xml代码

<configuration>               <!-- NameNode URI of the cluster -->            <property>                    <name>fs.defaultFS</name>                    <value>hdfs://hadoopii</value>            </property>               <property>                      <name>fs.trash.interval</name>                      <value>1440</value>              </property>         </configuration>  

Hdfs-site.xml代码

<configuration>                  <property>                    <name>dfs.federation.nameservices</name>                    <value>hadoopii</value>            </property>               <property>                     <name>dfs.permissions.superusergroup</name>                     <value>hadoop</value>            </property>               <!-- namenode dir -->            <property>                    <name>dfs.namenode.name.dir</name>                    <value>/data/NameNode</value>            </property>               <!-- datanode dir -->            <property>                    <name>dfs.datanode.data.dir</name>                    <value>/data/DataNode</value>            </property>                  <property>                    <name>dfs.replication</name>                    <value>2</value>            </property>               <property>                    <name>dfs.datanode.max.xcievers</name>                    <value>4096</value>            </property>                  <!-- datanode dir -->            <property>                    <name>dfs.checksum.type</name>                    <value>CRC32</value>            </property>                        <property>                    <name>dfs.ha.namenodes.hadoopii</name>                    <value>nn1,nn2</value>            </property>                     <property>                    <name>dfs.namenode.rpc-address.hadoopii.nn1</name>                    <value>myhost20:54310</value>            </property>                  <property>                    <name>dfs.namenode.rpc-address.hadoopii.nn2</name>                    <value>myhost-1:54310</value>            </property>                  <property>                    <name>dfs.namenode.servicerpc-address.hadoopii.nn1</name>                    <value>myhost20:53310</value>            </property>               <property>                    <name>dfs.namenode.servicerpc-address.hadoopii.nn2</name>                    <value>myhost-1:53310</value>            </property>                  <property>                    <name>dfs.namenode.http-address.hadoopii.nn1</name>                    <value>myhost20:50070</value>            </property>                  <property>                    <name>dfs.namenode.http-address.hadoopii.nn2</name>                    <value>myhost-1:50070</value>            </property>               <property>                    <name>dfs.client.failover.proxy.provider.hadoopii</name>                    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>            </property>                  <property>                    <name>dfs.namenode.shared.edits.dir</name>                    <value>file:///nfs_myhost0/hdfs/ha-name-dir-shared</value>            </property>               <property>                    <name>dfs.ha.fencing.methods</name>                    <value>sshfence</value>            </property>               <property>                    <name>dfs.ha.fencing.ssh.private-key-files</name>                    <value>/home/hdfs/.ssh/id_rsa</value>            </property>               <property>                    <name>dfs.ha.fencing.ssh.connect-timeout</name>                    <value>5000</value>            </property>             </configuration> 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/c5bb588609ce4e90bf0b62d2a13b2231.html