所有
我在完全分布式模式下设置了一个hadoop集群。首先,我在hostname:port格式中设置core-site.xml“fs.default.name”和mapred-site.xml“mapred.job.tracker”,并相应地设置chang / etc / hosts,集群成功运行。
然后我用另一种方式,我在ip:port格式中设置了core-site.xml“fs.default.name”和mapred-site.xml“mapred.job.tracker”。它不起作用。
我找到了 错误org.apache.hadoop.metrics2.impl.MetricsSystemImpl:获取localhost名称时出错。使用'localhost'... 在namenode日志文件和中错误org.apache.hadoop.metrics2.impl.MetricsSystemImpl:获取localhos时出错 t名字。使用'localhost'...... java.net.UnknownHostException:slave01:slave01:名称或服务未知
在datanode日志文件中。
在我看来,ip和hostname是等价的。我的hadoop conf中有什么问题吗?
答案 0 :(得分:0)
可能在/ etc中配置了错误的主机名,
你应该检查主机名/ etc / hosts / etc / HOSTNAME(rhel / debian)或rc.conf(archlinux)等。
答案 1 :(得分:0)
我明白了你的意思。这是因为您可能在mapred-site.xml中写过,hdfs:// ip:port(它以hdfs开头,这是错误的)但是当你编写hostname:port时,你可能没有在开头写入hdfs价值是正确的方式。因此,第一个人没有工作,但第二个工作
Fatih haltas
答案 2 :(得分:0)
我找到了答案here。
似乎HDFS仅使用主机名进行通信和显示,因此我们不能直接在core-site.xml和mapred-site.xml中使用ip