2017-08-22 11 views
0

私は5台のLinuxマシンを持っています。 3つのデータノードと1つのマスタがあります。現在、各データノードで約50%のhdfsストレージが利用可能です。しかし、私はMapReduceのジョブを実行し、以下の情報をHadoop使用可能なスペースがある場合、デバイスのerroに空き領域がありません。

Filesystem    Size Used Avail Use% Mounted on 
devtmpfs     5.9G  0 5.9G 0% /dev 
tmpfs     5.9G 84K 5.9G 1% /dev/shm 
tmpfs     5.9G 9.1M 5.9G 1% /run 
tmpfs     5.9G  0 5.9G 0% /sys/fs/cgroup 
/dev/mapper/centos-root 50G 6.8G 44G 14%/
/dev/sdb     1.8T 535G 1.2T 31% /mnt/11fd6fcc-1f87-4f1e-a53c-54cc7117759c 
/dev/mapper/centos-home 412G 155G 59M 100% /home 
/dev/sda1    494M 348M 147M 71% /boot 
tmpfs     1.2G 16K 1.2G 1% /run/user/42 
tmpfs     1.2G  0 1.2G 0% /run/user/1000 

私のSDBのdicsk(SDD)はわずか31%であることが上記から明らかなように与え、各システムdf -hにしながら、それは、次のエラー

2017-08-21 17:58:47,627 WARN org.apache.hadoop.hdfs.DFSClient: Error Recovery for blk_6835454799524976171_3615612 bad datanode[0] 10.11.1.42:50010 
2017-08-21 17:58:47,628 WARN org.apache.hadoop.hdfs.DFSClient: Error Recovery for block blk_6835454799524976171_3615612 in pipeline 10.11.1.42:50010, 10.11.1.43:50010: bad datanode 10.11.1.42:50010 
2017-08-21 17:58:51,785 ERROR org.apache.hadoop.mapred.Child: Error in syncLogs: java.io.IOException: No space left on device 

に失敗しましたcentos-homeは100%です。十分なHDFSがある場合、hadoopはmapreduceジョブでローカルファイルシステムを使用していますか?問題はどこだ?私はGoogleで検索して、多くのそのような問題を発見したが、誰も私の状況をカバーしていない。あなたは/etc/hadoop/conf/taskcontroller.cfgでhadoop.log.dirの値を探し、MapReduceのを使用している場合

+0

あなたの '/ centos-home'のスペースを解放し、問題が解決しないかどうか確認することができます。 – Shanky

+0

糸ログのいくつかはローカルファイルシステムに保存されています。 '/ home'のスペースを空けてみると、問題が解決するはずです。 – daemon12

答えて

0

syncLogsは、HDFSを使用していない、それはhadoop.log.dirそう に書き込みます。

YARNを使用している場合は、yarn-site.xmlのyarn.nodemanager.log-dirsの値を探します。

これらのいずれかは、ログを書き込んでいる場所を指摘する必要があります。どのファイルシステムに問題があるのか​​が分かれば、そこからスペースを解放することができます。

覚えておくべきもう1つのことは、ディスク上のinodeを使い果たした場合、「デバイスに残っているスペースがありません」ということです。 df -iがこれを表示します。

関連する問題