2013-12-17 99 views
0

我一直在努力讓Hadoop和Map/Reduce在我的根目錄下開始使用單獨的臨時目錄而不是/ tmp。Hadoop/MR臨時目錄

我已經添加了以下到我的核心site.xml的配置文件:

<property> 
    <name>hadoop.tmp.dir</name> 
    <value>/data/tmp</value> 
</property> 

我已經添加了以下到我的MapReduce的site.xml的配置文件:

<property> 
    <name>mapreduce.cluster.local.dir</name> 
    <value>${hadoop.tmp.dir}/mapred/local</value> 
</property> 
<property> 
    <name>mapreduce.jobtracker.system.dir</name> 
    <value>${hadoop.tmp.dir}/mapred/system</value> 
</property> 
<property> 
    <name>mapreduce.jobtracker.staging.root.dir</name> 
    <value>${hadoop.tmp.dir}/mapred/staging</value> 
</property> 
<property> 
    <name>mapreduce.cluster.temp.dir</name> 
    <value>${hadoop.tmp.dir}/mapred/temp</value> 
</property> 

無論我做什麼工作,它仍然在/ tmp目錄中完成所有中間工作。我一直在通過df -h來觀看它,當我進入時,它會創建所有的臨時文件。

我是否缺少配置中的某些東西?

這是在運行Hadoop/Yarn Mapreduce的2.1.0.2.0.6.0的10節點Linux CentOS羣集上。

編輯: 經過一些進一步的研究,這些設置似乎在我的管理和namednode/secondarynamed節點框中工作。只有在數據節點上,這不起作用,只有在我的根驅動器上,仍然會對/ tmp映射的臨時輸出文件,而不是我在配置文件中設置的數據裝入位置。

+0

您是否對每個配置文件(每個節點中)進行了更改?節點選擇自己的配置文件,而不是主節點。 – cabad

+0

我們使用Ambari來管理集羣,並負責將管理節點中所有其他節點的更改推送出去。在進行更改後,我驗證了所有節點core-site.xml和mapred-site.xml文件都具有相同的配置更改。 – NotSoCleverDBA

回答

0

我認爲你需要在hdfs-site.xml而不是core-site.xml中指定這個屬性。試着在hdfs-site.xml中設置這個屬性。我希望這可以解決您的問題

+0

那裏有一堆目錄設置,但是,hadoop.tmp。dir並未列爲每個頁面的有效屬性: – NotSoCleverDBA

+0

[HDFS-SITE.XML Properties](https://hadoop.apache.org/docs/current2/hadoop-project-dist/hadoop-hdfs/hdfs-default。 xml) – NotSoCleverDBA

+0

我想你應該嘗試在hdfs-site.xml中添加它,然後檢查它是否工作 – Binary01

0

mapreduce屬性應該位於mapred-site.xml中。

1

如果您正在運行Hadoop 2.0,則需要更改的配置文件的正確名稱是mapred-site.xml而不是mapreduce-site.xml

一個例子可以在Apache的網站上找到:http://hadoop.apache.org/docs/r2.3.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

和它使用的mapreduce.cluster.local.dir屬性名,與${hadoop.tmp.dir}/mapred/local

默認值嘗試重命名你的mapreduce-site.xml文件mapred-site.xml/etc/hadoop/conf/目錄和看如果修復它。

如果您正在使用Ambari,你應該能夠只是去使用的MapReduce2 /自定義mapred-site.xml中部分「添加屬性」按鈕,進入「mapreduce.cluster.local.dir」爲屬性名稱以及要使用的逗號分隔的目錄列表。

0

我正面臨類似的問題,其中一些節點不會兌現配置中設置的hadoop.tmp.dir。

重新啓動這些行爲不當的節點爲我解決了這個問題。