2012-04-08 52 views
8

我试着在使用Windows-Cygwin的hadoop上运行一个简单的程序。启动hadoop Job Tracker时出错

我可以启动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> 

回答

13

的问题是以下行应为mapred-site.xml中和NOT HDFS-site.xml中,

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

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

一件事,你通常对“伪分布式”工作作为例子在这个时候把这个属性在核心site.xml中没有HDFS-site.xml中,

<property> 
<name>fs.default.name</name> 
<value>hdfs://localhost:9100</value> 
</property> 
+7

为什么是不合理的要在Windows不是运行Hadoop的,其他反对他们表明世界的Hadoop社区的持续的狭隘观点这样一个运行,只有一个可接受的操作系统 – 2013-03-19 16:45:25

+0

通常Hadoop的人认为Windows机器是一个孩子的视频游戏。没有任何严重的事情。我觉得当他们厌倦了工作时,他们会使用windows机器的墙纸。 – 2013-12-16 09:17:55

+6

因为虽然可能在Windows上运行Hadoop,但代码完全是在Linux环境中开发的,因此在Windows上运行它将引入不期望的变量,并导致已经非常复杂的事情的进一步复杂化。 Hadoop执行大量文件操作,而Java可能在Windows上运行,但并非所有本机操作都是相同的,特别是文件系统操作。它在窗户上运行都是奇迹。问题是你为什么要在Windows上运行它,这是为什么你想要未知的痛苦。 – AaronM 2014-03-08 21:05:55

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

+0

顺便说一句,我发现这个网页是一个有用的推论到hadoop设置页面:http://www.javacodegeeks.com/2012/01/hadoop-modes-explained-standalone.html 此页面显示几乎相同的例子,但与有关预期产出的更多信息。 – fahrradler 2013-03-12 00:10:56