Hadoop HA集群搭建_简述hadoop集群配置搭建成功并启动流程

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
JournalNode
SecondaryNameNode

NameNode
JournalNode
DataNode

DataNode
JournalNode

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安装方式,仅供参考