hadoop拒绝history通过19888端口连接查看已完成的job的日志

本文介绍了解决Hadoop中HistoryServer未启动导致无法通过19888端口查看已完成Job日志的问题,并详细说明了如何配置YARN以启用日志聚合功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题如下图所示,hadoop拒绝history通过19888端口连接查看已完成的job的日志,即点击下图的history之后,拒绝通过19888端口连接


原因在于:通过start-all.sh启动hadoop各项节点后,historyserver并没有启动,需要手动启动,因此可以通过以下命令来手动启动historyserver,关闭命令也给出.

启动命令:mr-jobhistory-daemon.sh start historyserver

关闭命令:mr-jobhistory-daemon.sh stop historyserver

但是尽管开启了historyserver,通过上图的Tracking URl也能连接19888,进入到下图所示的界面


但是点击logs仍旧会报错,错误为:Aggregation is not enabled,Try the nodemanager at slave2:43827 Or See application log at http://slave2:43827/node/application/XXXXXXX错误如下图所示:


这是由于没有在yarn中配置日志聚合,在yarn-site.xml文件中增加以下代码,并重启hadoop平台,重新手动打开historyserver即可


再次通过Tracking URL即可访问日志


<think>好的,我现在要解决Hadoop JobHistory日志界面无法打开的问题,用户提到19888端口开。首先,我需要回忆一下Hadoop的组件结构,JobHistory Server负责展示已经完成的MapReduce作业的历史信息,通常通过19888端口提供Web界面。接下来,我需要考虑可能的原因和对应的解决方法。 首先,检查JobHistory Server是否正在运行。如果服务没有启动,当然无法访问端口。用户可能需要通过命令行启动服务,比如使用命令`sbin/mr-jobhistory-daemon.sh start historyserver`。 然后,确认端口监听情况。使用`netstat -tuln | grep 19888`查看端口是否处于监听状态。如果没有,可能是配置问题或者服务启动失败。 接下来,检查防火墙设置。Linux防火墙可能会阻止外部访问该端口,需要确保19888端口开放,比如使用`iptables`或者`firewalld`配置规则。 另外,查看Hadoop的配置文件,特别是mapred-site.xml中的配置项是否正确,比如`mapreduce.jobhistory.address`和`mapreduce.jobhistory.webapp.address`的地址和端口是否正确设置。如果配置错误,服务可能绑定到错误的接口或端口日志文件也是关键。查看JobHistory Server的日志,通常在Hadoop安装目录的logs目录下,比如`logs/mapred-*-historyserver-*.log`,寻找启动错误或异常信息,比如端口被占用或者其他配置问题。 还有可能是网络问题,比如主机名解析错误。确保在配置中使用的主机名能够正确解析,或者尝试使用IP地址直接访问。 此外,Hadoop版本兼容性也可能导致问题,特别是如果用户升级了Hadoop但未正确更新配置或重启服务。需要确认配置与版本匹配,并重启相关服务。 可能还需要检查其他服务是否占用了19888端口,使用`lsof -i :19888`查看是否有冲突的进程,如果有,需要终止冲突进程或修改JobHistory的配置端口。 最后,如果以上步骤都确认无误,可能还需要检查客户端的网络连接,比如浏览器代理设置、本地防火墙等,确保能够访问服务器19888端口。 总结下来,解决步骤大致是:确认服务运行状态→检查端口监听→防火墙配置→配置文件正确性→查看日志定位错误→处理端口冲突→网络和DNS检查。需要逐步排查,从服务本身到外部因素逐一排除可能的问题。</think>### Hadoop JobHistory日志界面19888端口无法打开的解决方法 #### 1. **检查JobHistory Server运行状态** - 确保服务已启动,执行命令: ```bash $HADOOP_HOME/sbin/mr-jobhistory-daemon.sh status historyserver ``` 若未运行,启动命令为: ```bash $HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver ``` - **注意**:需用Hadoop安装用户执行命令[^1]。 #### 2. **验证端口监听状态** - 执行命令查看端口是否被监听: ```bash netstat -tuln | grep 19888 ``` 若未显示`LISTEN`状态,说明服务未正确绑定端口,需检查配置或日志。 #### 3. **防火墙配置检查** - **Linux防火墙**:开放19888端口 ```bash # 使用firewalld firewall-cmd --zone=public --add-port=19888/tcp --permanent firewall-cmd --reload # 使用iptables iptables -A INPUT -p tcp --dport 19888 -j ACCEPT service iptables save ``` - **云服务器安全组**:确保安全组规则允许入站流量通过19888端口[^2]。 #### 4. **配置文件检查** - 检查`mapred-site.xml`关键配置项: ```xml <property> <name>mapreduce.jobhistory.address</name> <value>0.0.0.0:10020</value> <!-- 控制RPC通信 --> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>0.0.0.0:19888</value> <!-- 控制HTTP访问 --> </property> ``` - **注意**:若绑定到`127.0.0.1`则只能本地访问,需改为`0.0.0.0`或具体IP[^3]。 #### 5. **日志分析** - 查看JobHistory Server日志(路径:`$HADOOP_HOME/logs/`): ```bash tail -f mapred-*-historyserver-*.log ``` - **常见错误**: - 端口被占用:`java.net.BindException: Address already in use` - 权限足:需检查目录权限(如`/tmp/hadoop-mapred`) #### 6. **DNS/主机名解析问题** - 在`/etc/hosts`中添加映射(若使用主机名): ``` 192.168.1.100 hadoop-master ``` - 通过IP直接访问测试: ``` http://服务器IP:19888/jobhistory ``` #### 7. **其他可能原因** - **服务启动顺序问题**:需先启动HDFS和YARN,再启动JobHistory Server。 - **浏览器缓存**:尝试清除缓存或使用无痕模式访问。 - **Hadoop版本兼容性**:某些版本存在已知Bug,需检查版本发布说明[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值