当前位置: 首页 > news >正文

Hadoop搭建HA遇到的坑

Hadoop搭建HA遇到的坑

重要报错信息

Zookeeper日志
  • Cannot open channel to 2 at election address node03/172.17.0.4:3888
    java.net.ConnectException: Connection refused (Connection refused)
Hadoop日志
  • 2021-01-30 19:44:04,310 ERROR org.apache.hadoop.ha.NodeFencer: Unable to fence service by any configured method.
  • 2021-01-30 19:44:04,310 WARN org.apache.hadoop.ha.ActiveStandbyElector: Exception handling the winning of election
    java.lang.RuntimeException: Unable to fence NameNode at node01/172.17.0.2:8020
  • java.io.EOFException: End of File Exception between local host is: “node02/172.17.0.3”; destination host is: “node02”:8020; : java.io.EOFException; For more details see: http://wiki.apache.org/hadoop/EOFException
  • Caused by: java.io.EOFException
  • 2021-01-30 19:44:06,535 WARN org.apache.hadoop.ha.FailoverController: Unable to gracefully make NameNode at node01/172.17.0.2:8020 standby (unable to connect)
    java.net.ConnectException: Call From node02/172.17.0.3 to node01:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
  • 2021-01-30 19:44:06,535 WARN org.apache.hadoop.ha.SshFenceByTcpPort: Unable to create SSH session
    com.jcraft.jsch.JSchException: invalid privatekey: [B@1bfa0880

结构如下

HOST

NN

NN

JNN

DN

ZKFC

ZK

node01

*

*

*

node02

*

*

*

*

*

node03

*

*

*

*

node04

*

*

问题

  • 所有的节点角色均可正常运行,当我将node01中的Active状态的NameNode停止,node02中的NameNode并不会由StandBy状态转变为Active,而重新将node01中的NameNode启动后,node02中的NameNode转变为Active状态。

解决过程

  1. 尝试过将各个节点Zookeeper中的zoo.cfg各自的地址改为0.0.0.0,失败
  2. 时间已经设置同步
  3. 各个角色运行正常
  4. apt安装psmisc,失败
  5. 网络上说ssh-keygen版本过高高的时候生成秘钥会有问题,于是使用ssh-keygen -t rsa -m PEM,失败
  6. 最后发现所有的NameNode应当都对其余节点免密,而我只设置了node01,所以将node02的公钥发送给其余的节点后,故障得以解决

原因

  • 如上结构图所示,当node02未配置与2,3,4免密时,相当于运行在node02的zkfc不能与Zookeeper集群通信

相关文章:

  • Docker目录映射
  • INnoDB(索引与算法)
  • docker常见面试题
  • 第09章 MyBatisPlus实现查询功能
  • 第06章 MyBatisPlus概述
  • C语言-结构体
  • GlusterFS基本概念
  • Java 键盘输入n个数进行排序输出
  • Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 第10章 Vuex状态管理 10.7 Vuex实例之登录退出
  • SpringBoot基础篇 (2)— REST讲解
  • 一次JAVA频繁写大文件的记录
  • 第16章大数据定制篇-Shell编程
  • 【Push Kit】推送返回80100016错误
  • 《三叶虫与其他故事》我的恐惧如涟漪扩散,荡漾过百万年的时光
  • 阿里云maven仓库地址
  • [译]CSS 居中(Center)方法大合集
  • codis proxy处理流程
  • Cookie 在前端中的实践
  • JavaScript DOM 10 - 滚动
  • javascript 哈希表
  • js学习笔记
  • LeetCode算法系列_0891_子序列宽度之和
  • Shadow DOM 内部构造及如何构建独立组件
  • vagrant 添加本地 box 安装 laravel homestead
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 半理解系列--Promise的进化史
  • 不上全站https的网站你们就等着被恶心死吧
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 漂亮刷新控件-iOS
  • 想写好前端,先练好内功
  • 运行时添加log4j2的appender
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​虚拟化系列介绍(十)
  • #if 1...#endif
  • (1)(1.13) SiK无线电高级配置(六)
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (7)STL算法之交换赋值
  • (Matlab)使用竞争神经网络实现数据聚类
  • (rabbitmq的高级特性)消息可靠性
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十) 初识 Docker file
  • (一) storm的集群安装与配置
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • ***利用Ms05002溢出找“肉鸡
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .netcore 获取appsettings
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @拔赤:Web前端开发十日谈
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [20171102]视图v$session中process字段含义
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)