2012-03-29 43 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); 
相關問題