Hadoop运行Jar文件卡在Running job阶段问题求助
Hadoop提交MapReduce任务后卡在"Running job"阶段的问题
问题描述
每次运行Hadoop Jar文件时,程序都会卡在最后一行日志;即使使用Hadoop自带的示例Jar测试,问题仍然存在。虽然YARN的http://localhost:8088/cluster/apps/ACCEPTED页面显示任务已被接受,但任务始终无法继续推进。
执行命令与日志
执行命令:
hadoop jar C:\hadoop\share\hadoop\mapreduce\hadoop-mapreduce-examples-*.jar wordcount /Dir/Input.txt /output/wordcount_output
运行日志(卡住位置已标注):
2024-06-15 05:17:17,931 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032 2024-06-15 05:17:19,324 INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/XPRISTO/.staging/job_1718416283436_0006 2024-06-15 05:17:19,914 INFO input.FileInputFormat: Total input files to process : 1 2024-06-15 05:17:20,133 INFO mapreduce.JobSubmitter: number of splits:1 2024-06-15 05:17:20,379 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1718416283436_0006 2024-06-15 05:17:20,379 INFO mapreduce.JobSubmitter: Executing with tokens: [] 2024-06-15 05:17:20,619 INFO conf.Configuration: resource-types.xml not found 2024-06-15 05:17:20,620 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'. 2024-06-15 05:17:20,687 INFO impl.YarnClientImpl: Submitted application application_1718416283436_0006 2024-06-15 05:17:20,734 INFO mapreduce.Job: The url to track the job: http://DESKTOP-EEB2KG7:8088/proxy/application_1718416283436_0006/ 2024-06-15 05:17:20,736 INFO mapreduce.Job: Running job: job_1718416283436_0006 // <--- 此处卡住
当前排查情况
最初怀疑是Jar文件问题,但更换多个Jar后问题依旧,已排除Jar本身故障;检查部分Hadoop文件未发现异常,无法定位具体故障点,需了解相关配置文件信息。
当前yarn-site.xml配置
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.shuffleHandler</value> </property> </configuration>
排查建议
1. 核心配置文件检查
- mapred-site.xml:确保已配置MapReduce使用YARN框架,添加以下关键配置:
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.application.classpath</name> <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value> </property> - yarn-site.xml:补充资源分配与服务地址配置,确保NodeManager能正常与ResourceManager通信:
<property> <name>yarn.resourcemanager.address</name> <value>0.0.0.0:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>0.0.0.0:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>0.0.0.0:8031</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>4096</value> <!-- 根据机器实际内存调整,需满足任务内存需求 --> </property> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>2</value> <!-- 根据CPU核心数调整 --> </property>
2. 服务状态与日志排查
- 执行
jps命令,确认NodeManager、ResourceManager、DataNode、NameNode进程均正常运行 - 查看Hadoop日志目录(默认
$HADOOP_HOME/logs)下的yarn-nodemanager-*.log和yarn-resourcemanager-*.log,查找错误或异常信息 - 确认HDFS输入路径
/Dir/Input.txt存在且有读权限,输出路径/output/wordcount_output不存在(Hadoop不允许输出目录已存在)
3. 网络与主机名配置
- 检查Windows系统的
hosts文件(路径C:\Windows\System32\drivers\etc\hosts),确保DESKTOP-EEB2KG7映射到本地IP(如127.0.0.1 DESKTOP-EEB2KG7) - 关闭系统防火墙或开放Hadoop相关端口(8032、8088、8042等),避免端口阻塞
内容的提问来源于stack exchange,提问作者Noor Khalil
相关产品推荐
相关产品推荐

