2012-03-29 60 views
1

,当我想开始我的MapReduce应用程序(在独立的Hadoop)时,它都会试图把东西tmp目录下,它不能:Hadoop的配置似乎并没有被读取

Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-username\mapred\staging\username-1524148556\.staging to 0700 

它关系使用无效路径(斜线应该是cygwin的另一种方式)。

我在core-site.xml(在Hadoop的conf文件夹中)设置了hadoop.tmp.dir,但似乎配置文件永远不会被读取(如果我把语法错误放在文件中,它没有任何区别)。我补充说:

--config /home/username/hadoop-1.0.1/conf 

给的命令,但没有区别。我也试过:

export HADOOP_CONF_DIR=/home/username/hadoop-1.0.1/conf 

而且还似乎没有产生效果....

上为什么CONFIGS不会被读取,或者还有什么我没能在这里看到任何指针?

谢谢!

+0

您是否在运行Cygwin的版本Hadoop或Windows版本? – AlG 2012-03-29 20:14:59

+0

@AlG:我从http://apache.mirror.versatel.nl/hadoop/common/hadoop-1.0.1/下载了linux版本,有没有单独的cygwin版本?但即使如此,应该可以告诉linux版本它不应该使用/ tmp对吗? – openbas2 2012-03-30 07:09:57

+0

我刚查过,没有Cygwin的版本。那个奇怪的道路是关键,也许Linux版本的Hadoop正在挑选Windows版本的Java? – AlG 2012-03-30 11:22:31

回答

0

我发现下面的链接有用的,它似乎是问题的立场与Hadoop的的新版本。我使用的是1.0.4版,但我仍然面临这个问题。

http://comments.gmane.org/gmane.comp.jakarta.lucene.hadoop.user/25837

更新:在亨利马乌0.7和谁使用“Mahoot在行动”一书中例子的那些,你768,16更改示例代码如下:

File outFile = new File("output"); 
    if (!outFile.exists()) { 
     outFile.mkdir(); 
    } 
    Path output = new Path("output"); 
    HadoopUtil.delete(conf, output); 

    KMeansDriver.run(conf, new Path("testdata/points"), new Path("testdata/clusters"), 
      output, new EuclideanDistanceMeasure(), 0.001, 10, 
      true, 0.1, true); 
相关问题