Hadoop Yarn Resourcemanager HA 时配置无效

问题描述 投票:0回答:0

我正在尝试在 Hadoop Namenode 和 Resourcemanager 上设置 HA 配置。

基本上,我使用 docker 容器 (docker-compose) 来部署每个节点,我正在 EC2 Ubuntu 22.04.2 上工作

当然,在一个EC2实例中部署所有容器是没有用的,但我只是在研究和测试HA配置。

为了更好的理解,
Image
这是我的目标。

我制作了 Namenode 的所有部分,但我在 Resourcemanager 中遇到了麻烦。

根据https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html#Configurations,
我做了我的 yarn-site.xml

<!-- for Resource Manager HA Configuration -->
    <property>
                <name>yarn.resourcemanager.ha.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>yarn.resourcemanager.cluster-id</name>
                <value>resourcemanager-cluster</value>
        </property>
        <property>
                <name>yarn.resourcemanager.ha.rm-ids</name>
                <value>rm1,rm2</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname.rm1</name>
                <value>resourcemanager1</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostmane.rm2</name>
                <value>resourcemanager2</value>
        </property>
    <property>
        <name>hadoop.zk.address</name>
                <value>zookeeper-rm1:2181,zookeeper-rm2:2181,zookeeper-rm3:2181</value>
        </property>

我在 Ubuntu:22.04.02 我自己的 docker 镜像上进行了所有设置(apt-get update、core-site.xml、hdfs-site.xml 等),并通过名称 ubuntu:hdfs- 在我的 EC2 上提交它测试

以及下面部分docker-compose.yml

  resourcemanager1:
    image: ubuntu:hdfs-test
    build:
      dockerfile: ./hadoop.Dockerfile
    restart: always
    hostname: resourcemanager1
    container_name: resourcemanager1
    networks:
      - hadoop
    ports:
      - 8088:8088
      - 8032:8032
      - 8034:8034
    tty:
      true

  resourcemanager2:
    image: ubuntu:hdfs-test
    build:
      dockerfile: ./hadoop.Dockerfile
    restart: always
    hostname: resourcemanager2
    container_name: resourcemanager2
    networks:
      - hadoop
    ports:
      - 8089:8088
      - 8033:8033
      - 8035:8035
    tty:
      true

  zoorm1:
    image: zookeeper
    restart: always
    hostname: zoorm1
    container_name: zookeeper-rm1
    networks:
      - hadoop
    ports:
      - 2184:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoorm1:2888:3888;2181 server.2=zoorm2:2888:3888;2181 server.3=zoorm3:2888:3888;2181

  zoorm2:
    image: zookeeper
    restart: always
    hostname: zoorm2
    container_name: zookeeper-rm2
    networks:
      - hadoop
    ports:
      - 2185:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoorm1:2888:3888;2181 server.2=zoorm2:2888:3888;2181 server.3=zoorm3:2888:3888;2181

  zoorm3:
    image: zookeeper
    restart: always
    hostname: zoorm3
    container_name: zookeeper-rm3
    networks:
      - hadoop
    ports:
      - 2186:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoorm1:2888:3888;2181 server.2=zoorm2:2888:3888;2181 server.3=zoorm3:2888:3888;2181

Hadoop版本是3.3.0,zookeeper版本是最新的(3.8.1)

部分端口(8032, 8033, 8034, 8035) 用于之前测试yarn.resourcemanager.address.rm1属性。

docker-compose后,访问容器resourcemanager1,输入以下内容

start-yarn.sh

在日志/hadoop-root-resourcemanager-resourcemanager1.log 中说,

************************************************************/
2023-05-15 22:18:19,306 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: registered UNIX signal handlers for [TERM, HUP, INT]
2023-05-15 22:18:19,837 INFO org.apache.hadoop.yarn.server.resourcemanager.RMNMInfo: Registered RMInfo MBean
2023-05-15 22:18:19,841 INFO org.apache.hadoop.service.AbstractService: Service ResourceManager failed in state INITED
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Invalid configuration! yarn.resourcemanager.hostname.rm2 or yarn.resourcemanager.address.rm2 needs to be set in an HA configuration.
    at org.apache.hadoop.yarn.conf.HAUtil.throwBadConfigurationException(HAUtil.java:45)
    at org.apache.hadoop.yarn.conf.HAUtil.checkAndSetRMRPCAddress(HAUtil.java:342)
    at org.apache.hadoop.yarn.conf.HAUtil.verifyAndSetRMHAIdsList(HAUtil.java:130)
    at org.apache.hadoop.yarn.conf.HAUtil.verifyAndSetConfiguration(HAUtil.java:105)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:281)
    at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1584)
2023-05-15 22:18:19,844 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Transitioning to standby state
2023-05-15 22:18:19,844 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Transitioned to standby state
2023-05-15 22:18:19,844 ERROR org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Invalid configuration! yarn.resourcemanager.hostname.rm2 or yarn.resourcemanager.address.rm2 needs to be set in an HA configuration.
    at org.apache.hadoop.yarn.conf.HAUtil.throwBadConfigurationException(HAUtil.java:45)
    at org.apache.hadoop.yarn.conf.HAUtil.checkAndSetRMRPCAddress(HAUtil.java:342)
    at org.apache.hadoop.yarn.conf.HAUtil.verifyAndSetRMHAIdsList(HAUtil.java:130)
    at org.apache.hadoop.yarn.conf.HAUtil.verifyAndSetConfiguration(HAUtil.java:105)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:281)
    at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1584)
2023-05-15 22:18:19,847 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down ResourceManager at resourcemanager1/172.21.0.9
************************************************************/

所以我的核心问题是,

是什么意思
Invalid configuration! yarn.resourcemanager.hostname.rm2 or yarn.resourcemanager.address.rm2 needs to be set in an HA configuration.

我想我只是关注了 hadoop.apache.org 文档......在谷歌搜索自己后无法获得任何线索......

我省略了一些设置(docker-compose, hdfs-site.xml etc...)因为它太长了。但如果需要,我会稍后发布。

hadoop amazon-ec2 docker-compose high-availability resourcemanager
© www.soinside.com 2019 - 2024. All rights reserved.