MapReduce执行程序出错

MapReduce执行程序的时候卡在了running job,我觉得问题可能出在上一行的那个master,应该换成具体ip,但是不知道怎么改?

img

该回答引用ChatGPT4与博主@晓码自在合作编写:

MapReduce 程序执行时卡在 running job 状态,很有可能是因为 master 节点不可达造成的。master 节点默认是 localhost,你需要将其换成具体的 ip 或主机名。

具体做法如下:

  1. 找到你的 MapReduce 程序配置文件,通常为 mapred-site.xml。

  2. 在该配置文件中,找到 mapreduce.jobtracker.address 的配置项。默认值为:

xml
<property>
  <name>mapreduce.jobtracker.address</name> 
  <value>localhost:9001</value>
</property>

  1. 将 localhost 改为你的主机 konwn_hosts 文件中的 ip 或主机名。比如:
xml
<property>
  <name>mapreduce.jobtracker.address</name>
  <value>node01:9001</value> 
</property>

  1. 重新启动 ResourceManager 和 NodeManager 服务。

  2. 重新运行你的 MapReduce 程序。

  3. 检查 ResourceManager UI,如果你的程序不再卡在 running job 状态,那么说明配置生效,master 节点不可达的问题解决了。

注意:这里的 konwn_hosts 文件指的是 hadoop 集群每个节点上都有的一个文件,记录了各个节点的 ip 或主机名与主机名的映射关系。你需要在该文件中查找你的 ResourceManager 节点的 ip 或主机名。

修改 master 节点地址是一个比较常见的解决 MapReduce 程序执行问题的方法。