大数据平台迁移后yarn连接zookeeper 异常分析

XX保险HDP大数据平台机房迁移异常分析。
异常现象:

  1. 机房迁移后大部分组件都能正常启动
  2. Yarn 启动后8088 8042等端口无法访问
  3. Hive spark 作业提交到yarn会出现卡死。
    【备注】虽然迁移,但IP不变。

1. Yarn连接zookeeper 日志报错

问题分析:

  1. yarn 6000毫秒内无法活动连接到活跃的zookeeper服务
  2. hdfs hive kafka等组件正常启动

2. Zookeeper 客户端查看zookeeper正常

问题分析:
1.zookeeper数据存在并正常显示。

3. Zookeeper 中出现错误日志

2023-09-09 11:36:30,009 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@222] - Accepted socket connection from /xx.xx.xx.xx:57070

2023-09-09 11:36:30,009 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@908] - Processing ruok command from /xx.xx.xx.xx:57070

2023-09-09 11:36:30,010 - INFO [Thread-178:NIOServerCnxn@1056] - Closed socket connection for client /xx.xx.xx.xx:57070 (no session established for client)

2023-09-09 11:37:29,900 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@222] - Accepted socket connection from /xx.xx.xx.xx:59114

2023-09-09 11:37:29,901 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@908] - Processing ruok command from /xx.xx.xx.xx:59114

2023-09-09 11:37:29,902 - INFO [Thread-179:NIOServerCnxn@1056] - Closed socket connection for client /xx.xx.xx.xx:59114 (no session established for client)

2023-09-09 11:38:29,954 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@222] - Accepted socket connection from /xx.xx.xx.xx:32994

2023-09-09 11:38:29,955 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@908] - Processing ruok command from /xx.xx.xx.xx:32994

2023-09-09 11:38:29,956 - INFO [Thread-180:NIOServerCnxn@1056] - Closed socket connection for client /xx.xx.xx.xx:32994 (no session established for client)

2023-09-09 11:39:30,008 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@222] - Accepted socket connection from /xx.xx.xx.xx:35090

2023-09-09 11:39:30,008 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@908] - Processing ruok command from /xx.xx.xx.xx:35090

2023-09-09 11:39:30,009 - INFO [Thread-181:NIOServerCnxn@1056] - Closed socket connection for client /xx.xx.xx.xx:35090 (no session established for client)

4. 重装yarn服务,仍然报错

由于大数据集群众多组件都会连接zookeeper集群并且数据存放其中,我们选择重装yarn 组件 报错没有任何变化(强制卸载

  • yarn:
rpm -e hadoop_3_1_5_0_152-yarn-3.1.1.3.1.5.0-152.x86_64 
hadoop_3_1_5_0_152-yarn-resourcemanager-3.1.1.3.1.5.0-152.x86_64 –nodeps 
手动安装yarn: 
yum install -y hadoop_3_1_5_0_152-yarn hadoop_3_1_5_0_152-yarn-resourcemanager

其中hive spark tez Zeppelin 对yarn有依赖,可先在管理页面进行增删操作即可)

5. 手动删除zookeeper 中存放yarn集群数据后集群没有自动创建新的选举信息数据,手动创建集群无法识别

6. 分析

分析:zookeeper中缺少正确yarn集群数据信息,手动创建失效,由此可以确认zookeeper data数据出现异常。导致的可能性原因:①可能是在迁移过程中,yarn的组件ResourceManager 和 NodeManager的相关集群信息写入到zk未来得及持久化。②迁移时候服务未完全停止,导致yarn的核心组件RM和NM在zk上的数据文件受损。③新集群环境下,yarn与zookeeper的配置可能有不适配的情况。④网络异常导致的。等等

1)问题分析一

YARN 包含两个主要组件:ResourceManager 和 NodeManager。

在 YARN 中,ResourceManager 负责管理整个集群的资源分配和任务调度,NodeManager 则运行在各个工作节点上,负责启动、监视和停止应用程序的任务。

  • 当 ResourceManager 和 NodeManager 启动时,它们会向 ZooKeeper 写入以下信息:
  1. ResourceManager:ResourceManager 启动时,会向 ZooKeeper 写入有关活跃和非活跃 NM(NodeManager)节点列表、当前活跃集群管理员的信息以及正在处理的应用程序的列表信息。这些信息具体包括:为每个NM分配的容器数量、当前可用资源池的状态以及集群的全局配置。

  2. NodeManager:NodeManager 启动时,会向 ZooKeeper 写入自己的身份信息和集群中其他的 NM 节点信息。它还会向 ZooKeeper 注册自己的地址、端口、该节点的状态等信息。此外,NodeManager 定期向 ZooKeeper 发送心跳消息来更新其状态信息,以便 ResourceManager 可以根据需要重新分配集群中的资源。

​ 通过向 ZooKeeper 写入这些信息,ResourceManager 和 NodeManager 可以协调和管理集群中的各个组件,实现高可用性、容错性以及资源的正常调度。同时,这些信息也可以帮助管理员和开发人员更好地监视和管理 YARN 集群。

请注意,具体写入 ZooKeeper 的信息和路径可能会根据 YARN 的版本和配置有所不同。要了解更详细的信息,建议查阅您使用的 YARN 版本的官方文档和相关配置文件。

YARN 中 ResourceManager 和 NodeManager 向 ZooKeeper 写入的信息通常是存储在持久化节点上的,而不是普通节点。

持久化节点是指在 ZooKeeper 上创建的节点,其数据将被持久地保存在磁盘上,即使在节点断开连接或重启后也不会丢失。这种类型的节点适用于存储较为重要且需要长期保存的数据。

对于 YARN 中的信息,如 ResourceManager 的活跃和非活跃 NM 节点列表、当前活跃集群管理员的信息以及正在处理的应用程序列表等,这些数据通常被写入到持久化节点中。这样做的目的是确保即使在出现故障或重启后,这些关键信息仍然可以被恢复和使用。

相反,普通节点是指在 ZooKeeper 上创建的临时节点,其数据在节点断开连接后会被自动删除。普通节点适合存储临时性的或与会话相关的数据。

总的来说,YARN 中的关键信息通常会被写入到持久化节点中,以确保数据的持久性和可靠性。

2)问题分析二

​ 如果在机房搬迁过程中只是更改了物理位置,而 IP 地址保持不变,一般情况下对于 YARN 和 ZooKeeper 的影响是很小的。这是因为 YARN 和 ZooKeeper 主要依赖的是 IP 地址来进行通信和交互,并且它们的配置通常是基于 IP 地址进行设置的。

只要确保在机房搬迁后网络连接和路由设置正确,并且将相同的 IP 地址分配给 YARN 和 ZooKeeper 组件,它们应该能够正常工作。这意味着 YARN ResourceManager、NodeManager 以及 ZooKeeper 的集群节点都需要能够通过新的网络环境找到彼此的 IP 地址。

但是需要注意的是,在搬迁过程中可能会发生其他因素导致的问题。例如,搬迁过程中出现的硬件故障、网络配置错误、防火墙问题等都可能会对 YARN 和 ZooKeeper 的正常运行产生影响。因此,在机房搬迁后,仍然需要进行仔细的测试和验证,确保所有组件能够正常通信和工作。

总体而言,如果 IP 地址保持不变,并且在机房搬迁后适当地调整网络配置和路由信息,YARN 和 ZooKeeper 应该能够恢复正常运行。如有需要,请在搬迁过程中密切关注相关日志和错误消息,以及确保所有的配置与新的环境相匹配。

7. 解决方案:

  1. 备份zookeeper后删除zookeeper 中data数据文件version-2 ,重启后重新接入大数据集群恢复正常!

结论:由于本次机房迁移过程中出现数据文件异常所致。

09-13 09:34