2011-08-23 38 views
2

我正在使用Hadoop處理大量數據。我設置了一個hadoop節點來使用多個卷:其中一個卷是一個具有10To磁盤的NAS,另一個是來自服務器的本地磁盤,存儲容量爲400 GB。
問題是,如果我明白,數據節點會嘗試在每個卷中放置相等數量的數據。因此,當我在大量數據上運行作業時,400 GB的磁盤很快就滿了,而10 To磁盤仍有足夠的空間。然後,我的地圖 - 減少程序產生Hive凍結,因爲我的羣集打開安全模式...
我試圖設置限制數據節點的磁盤使用的屬性,但它什麼也沒有做:我仍然有同樣的問題。 希望有人能幫助我。Hadoop的多卷和限制磁盤使用情況

那麼看來我的MapReduce程序開啓安全模式,因爲:

The ratio of reported blocks 0.0000 has not reached the threshold 0.9990. 

只見NameNode的Web界面上的錯誤。我想要使​​用屬性dfs.safemode.threshold.pct禁用此選項,但我不知道這是否是解決此問題的好方法?

+0

我不知道如果我明白你的問題正確的,但我得到的印象是,你不明白HDFS。在我看來,你的服務器不應該什麼也不分享。數據節點使用本地磁盤存儲,但不應使用NAS。還有一個非常重要的問題是:你有多少個datanode? – khmarbaise

+0

我有四個datanodes。我正在使用NAS,因爲我的程序輸出對於本地磁盤來說太大了。我預計Hadoop可以處理不同大小的dfs.data.dir設備。 –

+0

你使用的是什麼版本? –

回答

0

我認爲你可以轉向dfs.datanode.fsdataset.volume.choosing.policy尋求幫助。

<property><name>dfs.datanode.fsdataset.volume.choosing.policy</name><value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value> 

0

使用限制磁盤使用情況在$HADOOP_HOME/conf/hdfs-site.xmldfs.datanode.du.reserved配置設置。

Reference

<property> 
    <name>dfs.datanode.du.reserved</name> 
    <!-- cluster variant --> 
    <value>182400</value> 
    <description>Reserved space in bytes per volume. Always leave this much space free for non dfs use. 
    </description> 
    </property> 
相關問題