Hadoop2.2 HA安装

来源:互联网 发布:python web入门 编辑:程序博客网 时间:2024/05/22 03:48

  • hdfs-site.xml 配置:

1. dfs.nameservices :配置nameservice的逻辑名称,与core-site.xml里fs.defaultFS配置的对应
<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>

2. dfs.ha.namenodes.[nameservice ID] :在nameservice中给每个NameNode 唯一标示符。
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>

3. dfs.namenode.rpc-address.[nameservice ID].[name node ID] :每个NameNode 的RPC地址
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>machine1.example.com:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>machine2.example.com:8020</value>
</property>

4.dfs.namenode.http-address.[nameservice ID].[name node ID]:每个NameNode 的HTTP地址
<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>machine1.example.com:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>machine2.example.com:50070</value>
</property>

5.dfs.namenode.shared.edits.dir :主备namenode的共享信息存放位置(有NFS和QJM两种,这里用QJM)JournalNode数目最好为奇数个,一般3个足够
<property>
  <name>dfs.namenode.shared.edits.dir</name>
   <value>qjournal://node1.example.com:8485;node2.example.com:8485;
     node3.example.com:8485/mycluster</value>
</property>
设置数据存放目录(注意,只能配置一个目录):
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/path/to/journal/node/local/data</value>
</property>

6.dfs.client.failover.proxy.provider.[nameservice ID] :客户端连Active NameNode类
<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

7.dfs.ha.fencing.methods :故障转移期间取Active NameNode脚本
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/home/exampleuser/.ssh/id_rsa</value>
</property>

  • core-site.xml配置 :
1. fs.defaultFS : nameservice ID 和hdfs-site.xml的dfs.nameservices对应
<property>
   <name>fs.defaultFS</name>
   <value>hdfs://mycluster</value>
</property>

  • 启动:
1. 启动配置的journalnode,执行hadoop-daemon.sh start journalnode 
2. 在一台NameNode,执行hdfs namenode -format
3. 启动这台namenode,执行hadoop-daemon.sh start namenode
4. 在没有 format机器,先copy已格式化的namenode 的metadata 目录。然后执行hdfs namenode –bootstrapStandby和hdfs namenode –initializeSharedEdits初始化journalnode
5. 最后启动集群就ok了。可以单独起或者start-dfs.sh

注:配置这些还不能支持自动切换,需要hdfs haadmin -transitionToActive 切换。支持namenode出现故障时自动切换,你需要配置zookeeper。


需要配置hdfs-site.xml和core-site.xml:

1. hdfs-site.xml:

<property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
</property

2. core-site.xml:配置zookeeper服务

<property>
  <name>ha.zookeeper.quorum</name>
   <value>zk1.example.com:2181,zk2.example.com:2181,zk3.example.com:2181</value>
</property>


  • 启动:
1. 停集群,配置参数如上。
2. 执行 hdfs zkfc –formatZK初始化。
3. 启动集群start-dfs.sh。此时会自动启动ZKFC 线程在NameNode上,ZKFC 将自动选择一个NameNode变成active。
 (如果手动启ZKFC 命令为:hadoop-daemon.sh start zkfc)


附:更详细内容可参加官方文档
Hadoop2.2的官方文档http://hadoop.apache.org/docs/r2.2.0/index.html。
安装配置为:Cluster Setup
HA采用Journal:High Availability With QJM
HA采用NFS:High Availability With NFS
0 0
原创粉丝点击