1. Zookeeper安装
Zookeeper安装可以参考Zookeeper安装
2. hadoop配置
在配置HA之前,一共有四条服务器:
- node1 – 192.168.56.102
- node2 – 192.168.56.103
- node3 – 192.168.56.104
- node4 – 192.168.56.105
为了配置方便,将以上的映射放入到/etc/hosts文件中:
192.168.56.102 node1
192.168.56.103 node2
192.168.56.104 node3
192.168.56.105 node4
然后将hosts的配置文件复制到其他的节点:
scp /etc/hosts node2:/etc/hosts
scp /etc/hosts node3:/etc/hosts
scp /etc/hosts node4:/etc/hosts
node1 | node2 | node3 | node4 |
NameNode | NameNode | DataNode | DataNode |
Journal Node主要作用是同步NameNode的信息到standy的NameNode节点,这样就可以NameNode集群的数据一致性。
2.1 SSH免密登录
SSH免密登录,可以参考hadoop安装中的免密登录作为参考。
2.2 hadoop-env.sh
这个文件需要修改JAVA_HOME的配置,这是因为通过ssh登录的客户端,无法加载/etc/profile中的配置,因此这个文件的JAVA_HOME要替换成为JDK安装的绝对路径
2.3 hdfs-site.xml
dfs.replication
2
dfs.namenode.secondary.http-address
192.168.56.102:50090
dfs.namenode.rpc-address
0.0.0.0:9000
dfs.namenode.datanode.registration.ip-hostname-check
false
dfs.datanode.use.datanode.hostname
true
dfs.client.use.datanode.hostname
true
dfs.nameservices
mycluster
dfs.ha.namenodes.mycluster
nn1,nn2
dfs.namenode.rpc-address.mycluster.nn1
node1:8020
dfs.namenode.rpc-address.mycluster.nn2
node2:8020
dfs.client.failover.proxy.provider.mycluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.namenode.shared.edits.dir
qjournal://node1:8485;node2:8485;node3:8485/mycluster
dfs.journalnode.edits.dir
/opt/apps/hadoop/hadoop-2.6.5/ha/jnn
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa
dfs.ha.automatic-failover.enabled
true
- dfs.nameservices:该配置定义了一个解析参数,值为mycluster
- dfs.ha.namenodes.mycluster:指定了两台NameNode节点,分别名称叫做nn1, nn2
- dfs.namenode.rpc-address.mycluster.nn1, dfs.namenode.rpc-address.mycluster.nn2:分别配置了nn1节点和nn2节点的NameNode监听的地址和端口号
- dfs.journalnode.edits.dir:该配置主要配置JournalNode节点节点地址和端口号
- dfs.client.failover.proxy.provider.mycluster:是配置了集群的NameNode在发生宕机的时候,如何决定active节点。这里配置的org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider会由客户端进行决定
- dfs.ha.fencing.ssh.private-key-files:这里主要配置了在NameNode发生宕机的时候,登录远程服务器所需要的秘钥路径。如果已经配置了免密登录,则可以不用配置
2.4 core-site.xml
fs.defaultFS
hdfs://mycluster
hadoop.tmp.dir
/opt/apps/hadoop/hadoop-2.6.5/ha
ha.zookeeper.quorum
192.168.56.102:2181,192.168.56.103:2181,192.168.56.104:2181
2.5 slaves
192.168.56.103
192.168.56.104
192.168.56.105
以上配置就算完成,这是我们需要执行初始化操作
2.6 初始化
# 初始化zkfc
hdfs zkfc -formatZK
# 初始化namenode
hdfs namenode -format
# 在node2节点上同步namenode的配置
hdfs namenode -bootstrapStandBy
2.7 启动hadoop
在完成了以上步骤之后,就可以启动hadoop了
start-dfs.sh
以上就是Hadoop HA安装方式,仅供参考