当前位置:   article > 正文

Hadoop_HA配置过程记录_hadoop配置ha详细步骤

hadoop配置ha详细步骤

一、修改配置文件
vim hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.7.0_71
  • 1

②vim core-site.xml

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://cluster1</value>
</property>
【默认的HDFS路径。多个HDFS集群同时工作时,集群名称在这里指定!该值来自于hdfs-site.xml中的配置】

<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoop-2.7.2/tmp</value>
</property>
【这是NameNode、DataNode、JournalNode等存放数据的公共目录。也可以单独指定这三类节点的目录。】

<property>
    <name>ha.zookeeper.quorum</name>
    <value>node1:2181,node2:2181,node3:2181,node4:2181,node5:2181</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

③vim hdfs-site.xml

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

<property>
    <name>dfs.nameservices</name>
    <value>silence1101</value>
</property>
【HDFS集群别名,多个集群时相互不重复即可】

<property>
    <name>dfs.ha.namenodes.silence1101</name>
    <value>master1,master2</value>
</property>
【该集群namenode节点】

<property>
    <name>dfs.namenode.rpc-address.silence1101.master1</name>
    <value>master1:9000</value>
</property>

<property>
    <name>dfs.namenode.http-address.silence1101.master1</name>
    <value>master1:50070</value>
</property>

<property>
    <name>dfs.namenode.rpc-address.silence1101.master2</name>
    <value>master2:9000</value>
</property>

<property>
    <name>dfs.namenode.http-address.silence1101.master2</name>
    <value>master2:50070</value>
</property>

<property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://node1:8485;node2:8485;node3:8485/silence1101</value>
</property>
【指定两个NameNode共享edits文件目录时,使用的JournalNode集群信息】

<property>
    <name>dfs.ha.automatic-failover.enabled.silence1101</name>
    <value>true</value>
</property>
【启动自动故障恢复,当NameNode出故障时,自动切换到另一台NameNode】

<property>
    <name>dfs.client.failover.proxy.provider.silence1101</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    </value>
</property>
【指定该集群出故障时,哪个实现类负责执行故障切换】

<property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
</property>
【一旦需要NameNode切换,使用ssh方式进行操作】

<property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/home/hadoop/.ssh/id_rsa</value>
</property>
【如果使用ssh进行故障切换,使用ssh通信时用的密钥存储的位置】

<property>
    <name>dfs.ha.fencing.ssh.connect-timeout</name>
    <value>30000</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72

④vim mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
【指定运行mapreduce的环境是yarn】
  • 1
  • 2
  • 3
  • 4
  • 5

⑤vim yarn-site.xml

<property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
</property>
【启动HA高可用性】

<property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>yrc</value>
</property>
【指定resourcemanager的名字】

<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
</property>
【使用了2个resourcemanager,分别指定Resourcemanager的地址】

<property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value> master1</value>
</property>
【指定ResourceManager1的地址】

<property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value> master2</value>
</property>
【指定ResourceManager2的地址】

<property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>node1:2181,node2:2181,node3:2181,node4:2181,node5:2181</value>
</property>
【指定Zookeeper节点】

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
【默认】
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

⑥vim slaves

node1
node2
node3
node4
  • 1
  • 2
  • 3
  • 4

二、启动过程

  1. 启动zookeeper集群

    ./zkServer.sh start
    
    • 1
  2. 查看状态

    ./zkServer.sh status
    
    • 1
  3. 启动journalnode(分别在在主机node1、node2、node3启动)

    sbin/hadoop-daemon.sh start journalnode
    
    • 1

    验证

    jps
    
    • 1

    显示JouralNode + QuorumpeerMain

  4. 格式化namenode(master1)

    hdfs namenode -format
    
    • 1
  5. 格式化ZKFC(在master1上执行)

    hdfs zkfc -formatZK
    
    • 1
  6. NameNode从master1同步到master2

    ① 在master2执行

    hdfs namenode bootstrapstandby
    验证
    tmp下生成dfs
    
    • 1
    • 2
    • 3

    ② 如果①失败(在master1执行)

    ssh-keygen -f "~/.ssh/known_hosts" -R master1
    验证
    tmp下生成dfs
    
    • 1
    • 2
    • 3
  7. 启动NameNode和DataNode

    start-dfs.sh
    
    • 1
  8. 启动yarn(在master2执行)

    start-yarn.sh
    验证
    jps
    显示ResourceManager + NodeManager
    
    • 1
    • 2
    • 3
    • 4
  9. 启动ZookeeperFailoverController(master1和master2执行)

    hadoop-daemon.sh start zkfc
    验证
    jps
    显示DFSZKFailoverController
    
    • 1
    • 2
    • 3
    • 4

三、UI验证

打开浏览器查看master1(namenode显示active)
打开浏览器查看master2(namenode显示standby)
  • 1
  • 2

四、常见错误

hadoop HA启动时 两个namenode节点都是standby,解决办法:
①启动zookeeper选举制度
    sbin/hadoop-daemon.sh start zkfc
②执行bin/hdfs haadmin -transitionToActive master2
    如果是新配置的HAhadoop集群,可能是zkfc(DFSZKFailoverController)没有格式化导致namenode节点的自动切换机制没有开启
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/394444
推荐阅读
相关标签
  

闽ICP备14008679号