9

我尝试使用 Windows-Cygwin 在 hadoop 中运行一个简单的程序。

我能够启动 namenode 。

但是,jobtracker 启动失败并出现异常:

FATAL mapred.JobTracker: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: local
        at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:162)
        at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:128)
        at org.apache.hadoop.mapred.JobTracker.getAddress(JobTracker.java:2560)
        at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2200)
        at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2192)
        at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2186)
        at org.apache.hadoop.mapred.JobTracker.startTracker(JobTracker.java:300)
        at org.apache.hadoop.mapred.JobTracker.startTracker(JobTracker.java:291)
        at org.apache.hadoop.mapred.JobTracker.main(JobTracker.java:4978)

我尝试了所有可能的方法来解决这个问题,但徒劳无功。任何指针都会对我有很大帮助。

hdfs-site.xml 配置:

 <configuration><br>
   <property>
     <name>fs.default.name< /name>
     <value>hdfs://localhost:9100</value>
   </property>
   <property>
     <name>mapred.job.tracker< /name>
     <value>localhost:9101< /value>
   </property>
   <property>
     <name>dfs.replication< /name>
     <value>1</value>
   </property> 
 </configuration>
4

2 回答 2

13

问题是以下行应该进入mapred-site.xml而不是 hdfs-site.xml,

<property> 
<name>mapred.job.tracker</name> 
<value>localhost:9101</value> 
</property>

顺便说一句,您为什么要在 Windows 中运行 Hadoop?为了发展?您没有 linux 机器或不愿意安装一台?

还有一件事,你通常把这个属性放在 core-site.xml 而不是 hdfs-site.xml,

<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9100</value>
</property>
于 2012-04-08T05:06:13.577 回答
0

在处理此页面的“伪分布式”示例时,我遇到了同样的问题:http: //hadoop.apache.org/docs/r1.1.2/single_node_setup.html#PseudoDistributed

事实证明,hadoop 根本没有获取我的 conf 文件。上面链接中的示例假设您正在运行您的hadoop 安装(即/Usr/jane/hadoop-1.1.2)。我试图在另一个目录中运行示例。我确定您可以配置 hadoop 以识别其他“conf”目录,但我采取了简单的方法,只是开始在我的 hadoop 目录中运行。

这个线程帮助我弄清楚:https ://issues.apache.org/jira/browse/HDFS-2515

于 2013-03-12T00:07:19.493 回答