毎日、Hadoopクラスタは、「複製禁止ブロック」があると報告しています。これはCloudera Managerによって管理されます。私は問題を修正するコマンドが実行されているHDFS再発のエラー:複製されていないブロック
! Under-Replicated Blocks
Concerning: 767 under replicated blocks in the cluster. 3,115 total blocks in the cluster. Percentage under replicated blocks: 24.62%. Warning threshold: 10.00%.
が、次の朝には、警告が任意の新しいデータが追加されずに戻って、時にはです:健康警告の例があります。一時的に成功したコマンドの一つは、私も
su hdfs
hdfs fsck/| grep 'Under replicated' | awk -F':' '{print $1}' >> /tmp/under_replicated_files
for hdfsfile in `cat /tmp/under_replicated_files`; do echo "Fixing $hdfsfile :" ; hadoop fs -setrep 2 $hdfsfile; done
両方の作業を行うanother recommended commandを試してみました
hdfs dfs -setrep -R 2 /*
だったが、修正は永続的ではありません。
Cloudera Managerでは、Replication Factor
とMinimal Block Replication
はともに2
に設定されています。
約24時間ごとに1回しか発生しないため、試行錯誤は私の唯一の手段であり、修正を試みるのは困難で時間がかかります。なぜこのエラーが戻ってくるのか分かりません!任意の提案をいただければ幸いです。 Clouderaのマネージャーで、次のHDFS構成を設定することで解決してくれてありがとう
基本的に、データが複製されていない場合、HDFSはブロックを他のデータノードに自動的に複製して、複製の要素と一致させる必要があります。 CM> HDFS>アクションドロップダウンで指定したバランサを実行して、このエラーを修正することもできます。 クラスタにいくつのデータノードがありますか? NNのWeb UIを介して、どのファイルに複製されたブロックがあるかを確認しましたか?これらのファイルは、ジョブによって作成された一時ファイルですか?関連する仕事が完了してからしばらくの間、何もせずにそのような警告が消え去るのを見ましたか? – Salim
問題が発生したときと同じリズムで仕事をしていますか? – tk421
@ tk421残念ながら、それはデータ取り込みジョブ(またはそのような仕事のためのジョブ)なしでは単独で発生するようです。 – Smittey