我是 Hadoop 新手,我遇到了与此处发布的非常相似的问题。唯一的问题是 OP 在 Linux 上运行 hadoop,而我在 Windows 上运行它。
我已经在本地机器上安装了 Hadoop Azure HDInsight Emulator。当我运行一个简单的字数统计程序时。Mapper 作业完美运行 100%,但 Reduce 作业卡在 0%。
我尝试按照 Chris 的建议对其进行调试(针对此 que),发现运行减速器作业的主机名存在问题(这是 OP 的确切问题)
Reduce 没有在localhost
其上运行,而是在某个192.168.17.213
没有得到解析的主机名上运行,reducer 无法从那里继续。
这些是错误日志
copy failed: attempt_201402111921_0017_m_000000_0 from 192.168.17.213
2014-02-12 01:51:53,073 WARN org.apache.hadoop.mapred.ReduceTask:
java.net.ConnectException: Connection timed out: connect
OP 通过将\etc\hosts
文件设置更改为 localhost 解决了该问题。
但这似乎是一个 linux 配置。如何在我的 Hadoop Azure HDInsight Emulator 中将我的主机名设置为 localhost?