• 原创hadoop2.6.4 namenode HA+Federation集群高可用部署


    今天下午刚刚搭建了一个高可用hadoop集群,整理如下,希望大家能够喜欢。
     
    namenode HA:得有两个节点,构成一个namenode HA集群
    namenode Federation:可以有多个HA集群,分管不同的数据
    至少得有4个节点,才能满足要求
    节点 NN JournalNode DN ZK 归属组
    Hmaster Y Y     cluster1
    Hslave1 Y Y Y Y
    Hslave2 Y Y Y Y cluster2
    Hslave3 Y   Y Y
     
    一、配置hosts、ssh免密登录、ZK集群等通用
    二、有hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves 6个文件需要配置
    (1)hadoop-env.sh
    export JAVA_HOME=/usr/java/jdk1.8.0_91
    (2)core-site.xml
    fs.defaultFS hdfs://cluster1
    hadoop.tmp.dir /home/hadoop/hadoop/tmp
    ha.zookeeper.quorum Hslave1:2181,Hslave2:2181,Hslave3:2181
    (3)hdfs-site.xml
    dfs.nameservices cluster1,cluster2 备注
    dfs.ha.namenodes.cluster1 nn1,nn2  
    dfs.namenode.rpc-address.cluster1.nn1 Hmaster:9000  
    dfs.namenode.rpc-address.cluster1.nn2 Hslave1:9000  
    dfs.namenode.http-address.cluster1.nn1 Hmaster:9000  
    dfs.namenode.http-address.cluster1.nn2 Hslave1:50070  
    dfs.client.failover.proxy.provider.cluster1 org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider  
    dfs.ha.automatic-failover.enabled.cluster1 true  
    dfs.namenode.shared.edits.dir qjournal://Hmaster:8485;Hslave1:8485;Hslave2:8485/cluster1 只能出现在cluster1节点上
    dfs.ha.namenodes.cluster2 nn1,nn2  
    dfs.namenode.rpc-address.cluster2.nn1 Hslave2:9000  
    dfs.namenode.rpc-address.cluster2.nn2 Hslave3:9000  
    dfs.namenode.http-address.cluster2.nn1 Hslave2:9000  
    dfs.namenode.http-address.cluster2.nn2 Hslave3:50070  
    dfs.client.failover.proxy.provider.cluster2 org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider  
    dfs.ha.automatic-failover.enabled.cluster2 true  
    dfs.namenode.shared.edits.dir qjournal://Hmaster:8485;Hslave1:8485;Hslave2:8485/cluster2 只能出现在cluster2节点上
    dfs.journalnode.edits.dir /home/hadoop/hadoop/tmp/journal  
    dfs.ha.fencing.methods sshfence  
    dfs.ha.fencing.ssh.private-key-files /home/hadoop/.ssh/id_rsa  
    dfs.ha.fencing.ssh.connect-timeout 5000  
    dfs.datanode.data.dir file:///home/hadoop/dfs/data  
    dfs.replication 3  
    (4)mapred-site.xml
    mapreduce.framework.name yarn true
    (5)yarn-site.xml
    yarn.resourcemanager.hostname Hmaster RM目前是单节点,存在单点故障,以后配成RM HA
    yarn.nodemanager.aux-services mapreduce_shuffle  
    (6)slaves(DataNode节点)
    Hslave1
    Hslave2
    Hslave3
    分发到各节点,只有hdfs-site.xml中标红字段,根据cluster情况注释掉不必要的
    三、启动集群
    (1)启动、格式化ZK集群。
    在每个ZK上执行:启动 zkServer.sh start
    在每个cluster的其中一个节点执行: 建立HA节点:hdfs zkfc –formatZK
    (2)启动JournalNode集群
    每个节点上执行:hadoop-daemon.sh start journalnode
    (3)格式化、启动NameNode集群
    格式化并启动集群cluster1的namenode:
    先在集群中的一个节点执行:hdfs namenode -format -clusterId c1 hadoop-daemon.sh start namenode
    再在另一个节点执行(数据同步):hdfs namenode -bootstrapStandby hadoop-daemon.sh start namenode
    cluster2集群类似
    (4)启动DataNode
    hadoop-daemons.sh start datanode
    (5)启动YARN
    start-yarn.sh
    (6)启动ZooKeeperFailoverController
    在其中一个节点执行:hadoop-daemons.sh start zkfc
    四、测试
    http://Hmaster:50070 看namenode的情况
    http://Hmaster:8080/cluster 看集群的情况
    kill其中一个namenode后,发现集群仍可正常使用
  • 相关阅读:
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    asp.net session对象的持久化
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    小白也能看懂的约瑟夫环问题
  • 原文地址:https://www.cnblogs.com/codetouse/p/5903769.html
Copyright © 2020-2023  润新知