2016-09-29 40 views
2

我正在面對羣集中的一個非常奇怪的問題。無法將大於100 MB的文件加載到HDFS中

每當我試圖加載任何文件到HDFS是大於100 MB(104857600個字節),它失敗,出現以下錯誤:

All datanodes are bad... Aborting.

這真是奇怪,因爲100 MB已成爲門檻用於文件大小。

即使我嘗試將文件大小增加1個單字節(104857601字節),並嘗試將其加載到HDFS中,但它會因長堆棧跟蹤而失敗。主要是說「所有datanodes都不好...正在中止」

以前有人有類似的情況嗎?

是否有可能導致此行爲導致某些配置錯誤更改?如果是,那麼限制可以攝取的數據大小的任何配置都可以改變?

感謝

+0

只是澄清:你能加載多個文件的51 MB?你如何加載它,並立即失敗或接近尾聲?你有可能爲mappers設置一個非常低的內存限制嗎? –

+0

你是否檢查過你的拆分大小和最大打開文件句柄限制? – mbaxi

+0

@丹尼斯 - 我可以加載任何低於100 MB的內容。使用hadoop fs -put加載。它立即失敗。我不知道如何檢查內存限制。請澄清相同。 –

回答

2

「有沒有人遇到過類似的情況早?」

是的,我有。您應該減少運行hadoop的用戶的限制。 我在一個linux下從apache網站上下載了hadoop,而我的系統沒有調整好,我收到了你的消息。這些是來自cloudera快速入門的設置,請將您的限制與這些設置進行比較。

[[email protected] ~]$ ulimit -a 
core file size   (blocks, -c) 0 
data seg size   (kbytes, -d) unlimited 
scheduling priority    (-e) 0 
file size    (blocks, -f) unlimited 
pending signals     (-i) 30494 
max locked memory  (kbytes, -l) 64 
max memory size   (kbytes, -m) unlimited 
open files      (-n) 1024 
pipe size   (512 bytes, -p) 8 
POSIX message queues  (bytes, -q) 819200 
real-time priority    (-r) 0 
stack size    (kbytes, -s) 10240 
cpu time    (seconds, -t) unlimited 
max user processes    (-u) 1024 
virtual memory   (kbytes, -v) unlimited 
file locks      (-x) unlimited 
+0

謝謝。我在你答案來臨之前就已經想清楚了,但這肯定會幫助其他人。 –

+0

@MeghVidani你做了什麼改變? – red

+0

@red我編輯了/etc/security/limits.conf文件並將文件大小限制設置爲無限制。此前它被設置爲102400 KB(100 MB) –

0

如果你能得到的堆棧跟蹤數據節點的詳細信息,你應該能夠阻止這將是一個守護程序數據管理部。 通過殺死或停止datanode,您將獲得可能被損壞的數據節點,並重新實例化。基本上你正在重新啓動特定數據節點的jvm。 命令: 要停止:bin/hadoop-daemon.sh stop datanode 要啓動:bin/hadoop-daemon.sh start datanode

+0

嗨,我正面臨所有datanodes的錯誤。我在集羣中有5個datanode,並依次嘗試所有這些。所有失敗都有相同的錯誤。 –

相關問題