【解决】HDFS JournalNode启动慢问题排查

news/2024/5/20 2:58:01 标签: hdfs, 网络, hadoop

文章目录

  • 一. 问题描述
  • 二. 问题分析
    • 1. 排查机器性能
    • 2. DNS的问题
  • 三. 问题解决

一句话:因为dns的问题导致journalnode启动时很慢,通过修复dns对0.0.0.0域名解析,修复此问题。

一. 问题描述

从journalnode启动到服务可用,完成RPC Listen,需要花费大概1分多钟的问题,而这不符合安装预期。
在这里插入图片描述

二. 问题分析

1. 排查机器性能

简单查看cpu、内存、磁盘、网络等是否存在问题

# top 资源占用
top

# 内存
free -h
# 磁盘占用
df -h

# 网络延迟
ping hostname

发现都正常。

 

2. DNS的问题

查看了资源都正常,此时有些迷茫,打开chat-gpt问问:
在这里插入图片描述

其中第一点提到了DNS的问题,而日志中看到:

在启动journalnode过程中会启动8480、和8485端口,而这两个端口使用的ip都是0.0.0.0。

0.0.0.0意味着journalnode将监听所有可用ip地址,这里的ip地址指的是journalnode所在节点的所有地址。
好处是内网ip和外网ip都能被访问ing?

 
执行:nmap -v 0.0.0.0

 nmap -v 0.0.0.0
 
。。。
Initiating Parallel DNS resolution of 1 host. at 18:00
Completed Parallel DNS resolution of 1 host. at 18:00, 13.00s elapsed
。。。

大概意思是0.0.0.0的DNS解析花费了13秒。

另外一台机同样执行:

nmap -v 0.0.0.0

。。。
Initiating Parallel DNS resolution of 1 host. at 18:17
Completed Parallel DNS resolution of 1 host. at 18:17, 0.03s elapsed
。。。

只花了0.03秒,说明此节点的DNS解析确实有问题。

 
再观察个有意思的现象:

 nmap -v hostname1

Starting Nmap 6.40 ( http://nmap.org ) at 2023-11-23 18:20 CST
Initiating Ping Scan at 18:20
Scanning xxx [2 ports]
Completed Ping Scan at 18:20, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 18:20
。。。。
Completed Connect Scan at 18:20, 0.03s elapsed (1000 total ports)
。。。
Host is up (0.00038s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
8899/tcp open  ospf-lite
9000/tcp open  cslistener
9010/tcp open  sdr

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

当我对具体hostname执行这个命令时,发现没有DNS解析,这里是hosts文件起了作用,绕开了DNS。

Hosts文件是一种本地的文本文件,位于计算机的文件系统中。它用于将特定的主机名映射到相应的IP地址,充当本地的静态映射表。
 
当系统尝试访问某个主机名时,它首先会查找本地hosts文件,如果找到对应的映射,就直接使用这个映射而不进行DNS查询。这可以提高访问速度,并且可以在本地定义自定义的主机名到IP地址的映射。

 
那既然能绕过DNS,我将journalnode的配置改成具体hostname,如下:hdfs-site.xml

    <property>
        <name>dfs.journalnode.rpc-address</name>
        <value>hostname1:8485</value>
        <description>Address for JournalNode RPC (e.g., "hostname:8485")</description>
    </property>
    <property>
        <name>dfs.journalnode.http-address</name>
        <value>hostname1:8480</value>
        <description>Address for JournalNode HTTP (e.g., "hostname:8480")</description>
    </property>

重新启动journalnode:
在这里插入图片描述

发现启动速度果然上来了。那基本上可以确定是因为DNS解析慢导致了hadoop组件启动慢。

 

三. 问题解决

修改DNS配置
在这里插入图片描述

去掉无法连接的DNS地址后,测试journalNode服务在0.0.0.0地址监听,启动过程无延迟。


http://www.niftyadmin.cn/n/5209706.html

相关文章

docker compose启动多个服务,如何查看多个服务的日志

使用docker-compose的--scale启动多个服务&#xff0c;如何查看多个服务的日志 docker-compose -f yml路径 logs -f --tail 100第一个-f指定yml路径&#xff0c;不然会报错误no configuration file provided: not found 第二个-f是ogs的参数&#xff0c;表示实时刷新&#xff…

“java.lang.IllegalStateException: No ConfigurableListableBeanFactory set“,缺少配置

一、错误分析 做品优购项目的运营商安全登录时&#xff0c;运行项目后&#xff0c;浏览器访问模板页&#xff0c;模板页的表格无法正常显示&#xff0c;报错信息如下&#xff1a; SEVERE: StandardWrapper.Throwable java.lang.IllegalStateException: No ConfigurableLista…

无需API开发,有赞小程序集成广告推广系统,提升品牌曝光

无需API开发&#xff0c;实现有赞小程序与其他系统的连接 有赞小程序作为一个多功能的电子商务解决方案&#xff0c;为商家提供了无需复杂API开发就可以实现系统连接和集成的便捷途径。通过有赞小程序&#xff0c;商家可以轻松实现与各种系统的数据同步和应用互联&#xff0c;…

第100步 项目完结

一、机缘 终于&#xff0c;这个专栏&#xff1a;《100 Steps to Get ML》—JET学习笔记&#xff0c;也算是整理完了。耗时不到两年半&#xff0c;中间也停更了大半年&#xff0c;忙别的去了。 最初是发在自己的公众号上&#xff0c;从今年开始同步更新到CSDN论坛。 以下是当初…

LeetCode93. Restore IP Addresses

文章目录 一、题目二、题解 一、题目 A valid IP address consists of exactly four integers separated by single dots. Each integer is between 0 and 255 (inclusive) and cannot have leading zeros. For example, “0.1.2.201” and “192.168.1.1” are valid IP add…

微信小程序 修改默认单选,多选按钮样式

微信小程序 修改默认单选&#xff0c;多选按钮样式 1.在微信开发者文档中复制一份单选或者多选的代码 <!--pages/index3/index.wxml--> <radio-group bindchange"radioChange"><label class"weui-cell weui-check__label" style"dis…

智驾芯片全矩阵「曝光」,这家企业的车载品牌正式官宣

随着汽车智能化加速&#xff0c;智能驾驶芯片格局逐渐清晰。 针对L0-L2&#xff0c;业内基本采用智能前视一体机方案&#xff1b;要实现高速NOA、城市NOA等更为高阶的智驾功能等&#xff0c;则基本采用域控制器方案。从前视一体机至域控&#xff0c;再逐步演进到舱驾一体、中央…

系列五、声明式事务(xml方式)

一、概述 声明式事务(declarative transaction management)是Spring提供的对程序事务管理的一种方式&#xff0c;Spring的声明式事务顾名思义就是采用声明的方式来处理事务。这里所说的声明&#xff0c;是指在配置文件中声明&#xff0c;用在Spring配置文件中声明式的处理事务来…