MAC伪节点上的Hadoop:提供了nodename或servname,或者未知

sha*_*ath 16 hadoop

我是一个Hadoop新手.我使用此链接在我的MAC上安装了Hadoop

它起初就像是一个魅力,但是当我从Eclipse运行相同的WordCount问题时,我遇到了这个问题:

ERROR security.UserGroupInformation: PriviledgedActionException as:<username> cause:java.net.UnknownHostException: <hostname>: <hostname>: hostname nor servname provided, or not known
Exception in thread "main" java.net.UnknownHostException: <hostname>: <hostname>: nodename nor servname provided, or not known
    at java.net.InetAddress.getLocalHost(InetAddress.java:1466)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:960)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:936)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:936)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:550)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580)
    at WordCount.main(WordCount.java:57)
Caused by: java.net.UnknownHostException: <hostname>: nodename nor servname provided, or not known
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
Run Code Online (Sandbox Code Playgroud)

这就是我的conf文件的外观:

核心-site.xml中:

<configuration>

<property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
</property>

</configuration>
Run Code Online (Sandbox Code Playgroud)

hadoop-env.sh

有以下条目,另外还有默认值:

export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
Run Code Online (Sandbox Code Playgroud)

HDFS-site.xml中

<configuration>

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

</configuration>
Run Code Online (Sandbox Code Playgroud)

mapred-site.xml中

<configuration>
<property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我也在错误的开头看到了这个:

2013-10-11 21:03:08.795 java[7484:1903] Unable to load realm mapping info from SCDynamicStore
13/10/11 21:03:08 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
13/10/11 21:03:08 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
13/10/11 21:03:08 WARN mapred.JobClient: No job jar file set.  User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
13/10/11 21:03:08 INFO mapred.JobClient: Cleaning up the staging area file:/tmp/hadoop-<uname>/mapred/staging/<uname>386844365/.staging/job_local386844365_0001
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我,如果我做错了吗?我的程序是相同的,并没有更改默认值(曾经工作)

谢谢

sha*_*ath 36

问题出在主机文件上.通过将其添加到/ etc/hosts文件来修复它:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.1.1   <hostname>
Run Code Online (Sandbox Code Playgroud)


thS*_*oft 24

您可以使用一个简单的命令解决此问题:

echo "127.0.0.1 $HOSTNAME" | sudo tee -a /etc/hosts
Run Code Online (Sandbox Code Playgroud)

(来源)

  • 小心这个命令.根据您的shell和/或环境,$ HOSTNAME可能不可用.它适用于bash,而不适用于zsh. (3认同)