• hadoop高可用集群配置


    1、HDFS-HA集群配置 

    Apache Hadoop 3.3.4 – HDFS High Availability Using the Quorum Journal Manager

    1.1、环境准备

    1. 修改IP
    2. 修改主机名及主机名和IP地址的映射
    3. 关闭防火墙
    4. ssh免密登录
    5. 安装JDK,配置环境变量等

    1.2、集群规划

    linux121linux122linux123
    NameNodeNameNode
    JournalNodeJournalNodeJournalNode
    DataNodeDataNodeDataNode
    ZKZKZK
    ResourceManager
    NodeManagerNodeManagerNodeManager

    1.3、NodeManager

    启动zookeeper集群

    zk.sh start

    查看状态

    zk.sh status

    注意:这里的zk.sh是我写的群起脚本命令。

    1.4、配置HDFS-HA集群

    (1)停止原先HDFS集群

    stop-dfs.sh

    (2)在所有节点,/opt/lagou/servers目录下创建一个ha文件夹

    mkdir /opt/lagou/servers/ha

    (3)将/opt/lagou/servers/目录下的 hadoop-2.9.2拷贝到ha目录下

    cp -r hadoop-2.9.2 ha

    (4)删除原集群data目录

    rm -rf /opt/lagou/servers/ha/hadoop-2.9.2/data

    (5)配置hdfs-site.xml(后续配置都要清空原先的配置)

    1. <property>
    2. <name>dfs.nameservicesname>
    3. <value>lagouclustervalue>
    4. property>
    5. <property>
    6. <name>dfs.ha.namenodes.lagouclustername>
    7. <value>nn1,nn2value>
    8. property>
    9. <property>
    10. <name>dfs.namenode.rpc-address.lagoucluster.nn1name>
    11. <value>linux121:9000value>
    12. property>
    13. <property>
    14. <name>dfs.namenode.rpc-address.lagoucluster.nn2name>
    15. <value>linux122:9000value>
    16. property>
    17. <property>
    18. <name>dfs.namenode.http-address.lagoucluster.nn1name>
    19. <value>linux121:50070value>
    20. property>
    21. <property>
    22. <name>dfs.namenode.http-address.lagoucluster.nn2name>
    23. <value>linux122:50070value>
    24. property>
    25. <property>
    26. <name>dfs.namenode.shared.edits.dirname>
    27. <value>qjournal://linux121:8485;linux122:8485;linux123:8485/lagouvalue>
    28. property>
    29. <property>
    30. <name>dfs.client.failover.proxy.provider.lagouclustername>
    31. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvidervalue>
    32. property>
    33. <property>
    34. <name>dfs.ha.fencing.methodsname>
    35. <value>sshfencevalue>
    36. property>
    37. <property>
    38. <name>dfs.ha.fencing.ssh.private-key-filesname>
    39. <value>/root/.ssh/id_rsavalue>
    40. property>
    41. <property>
    42. <name>dfs.journalnode.edits.dirname>
    43. <value>/opt/journalnodevalue>
    44. property>
    45. <property>
    46. <name>dfs.ha.automatic-failover.enabledname>
    47. <value>truevalue>
    48. property>

    (6)配置core-site.xml

    1. <property>
    2. <name>fs.defaultFSname>
    3. <value>hdfs://lagouclustervalue>
    4. property>
    5. <property>
    6. <name>hadoop.tmp.dirname>
    7. <value>/opt/lagou/servers/ha/hadoop-2.9.2/data/tmpvalue>
    8. property>
    9. <property>
    10. <name>ha.zookeeper.quorumname>
    11. <value>linux121:2181,linux122:2181,linux123:2181value>
    12. property>

    (7)拷贝配置好的hadoop环境到其他节点

    1.5、启动HDFS-HA集群

    (1)在各个JournalNode节点上,输入以下命令启动journalnode服务(去往HA安装目录,不要使用环境变量中命令)

    /opt/lagou/servers/ha/hadoop-2.9.2/sbin/hadoop-daemon.sh start journalnode

    (2)在[nn1]上,对其进行格式化,并启动

    /opt/lagou/servers/ha/hadoop-2.9.2/bin/hdfs namenode -format

    /opt/lagou/servers/ha/hadoop-2.9.2/sbin/hadoop-daemon.sh start namenode

    (3)在[nn2]上,同步nn1的元数据信息

    /opt/lagou/servers/ha/hadoop-2.9.2/bin/hdfs namenode -bootstrapStandby

    (4)在[nn1]上初始化zkfc

    /opt/lagou/servers/ha/hadoop-2.9.2/bin/hdfs zkfc -formatZK

    (5)在[nn1]上,启动集群

    /opt/lagou/servers/ha/hadoop-2.9.2/sbin/start-dfs.sh

    (6)验证

    • 将Active NameNode进程kill
    • kill -9 namenode的进程id

    2、YARN-HA配置

    2.1、YARN-HA工作机制

    官方文档

    Apache Hadoop 3.3.4 – ResourceManager High Availability

    YARN-HA工作机制

    2.2、配置YARN-HA集群

    (1)配置YARN-HA集群

    • 修改IP
    • 修改主机名及主机名和IP地址的映射
    • 关闭防火墙
    • ssh免密登录
    • 安装JDK,配置环境变量等
    • 配置Zookeeper集群

    (2)具体配置

    (3)yarn-site.xml(清空原有内容)

    1. <configuration>
    2. <property>
    3. <name>yarn.nodemanager.aux-servicesname>
    4. <value>mapreduce_shufflevalue>
    5. property>
    6. <property>
    7. <name>yarn.resourcemanager.ha.enabledname>
    8. <value>truevalue>
    9. property>
    10. <property>
    11. <name>yarn.resourcemanager.cluster-idname>
    12. <value>cluster-yarnvalue>
    13. property>
    14. <property>
    15. <name>yarn.resourcemanager.ha.rm-idsname>
    16. <value>rm1,rm2value>
    17. property>
    18. <property>
    19. <name>yarn.resourcemanager.hostname.rm1name>
    20. <value>linux122value>
    21. property>
    22. <property>
    23. <name>yarn.resourcemanager.hostname.rm2name>
    24. <value>linux123value>
    25. property>
    26. <property>
    27. <name>yarn.resourcemanager.zk-addressname>
    28. <value>linux121:2181,linux122:2181,linux123:2181value>
    29. property>
    30. <property>
    31. <name>yarn.resourcemanager.recovery.enabledname>
    32. <value>truevalue>
    33. property>
    34. <property>
    35. <name>yarn.resourcemanager.store.classname>
    36. <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStorevalue>
    37. property>
    38. configuration>

    (4)同步更新其他节点的配置信息

    (5)启动hdfs

    sbin/start-yarn.sh

  • 相关阅读:
    Java String.valueOf()方法具有什么功能呢?
    redux原理分享
    FreeRTOS移植
    (附源码)mysql anjule客户信息管理系统 毕业设计 181936
    使用WPF模仿Windows记事本界面
    leetcode53: 最大字数组和
    【Android -- 开源库】fastjson 基本使用
    JavaScript运算符(运算符(算数运算符,递增和递减运算符,比较运算符,逻辑运算符,赋值运算符)、运算符优先级)
    easy_see
    RestTemplate使用InputStreamResource上传文件
  • 原文地址:https://blog.csdn.net/weixin_52851967/article/details/127579751