1

Hadoopの自動インストールスクリプトを作成していますが、HDFSがまだ完全に起動して準備ができていないため、HBaseが起動しないという問題が発生しています。プログラムで(理想的にはBashから)HDFSシステムがHBaseを起動する準備ができているかどうかを確認して、起動するまで待つことができるようにするにはどうすればよいですか?

「hadoopdfsadmin-report」を使用して正しい数のノードをgrepしてみましたが、クラスターが実際にビジネスの準備が整う前に、それが戻ってくるようです。

4

1 に答える 1

4

hadoop dfsadmin -safemode waitHDFSがまだセーフモードになっていないかどうかを確認するために使用します。このような何かがトリックを行う必要があります:

while $HADOOP_HOME/bin/hadoop dfsadmin -safemode wait | grep ON
do
    sleep 1s # Or 10s or 1m or whatever time
done

編集:コメントでlevandが言及しているように、HADOOP-756に従って、セーフモードがオフに-safemode waitなるまでそれ自体が待機します。その場合、単にwaitを発行するだけで、whileループは不要になります。ただし、それでも、特定の時間だけ試行を続け、DFSがまだ起動していない場合などにプロセスを強制終了したい場合は、whileループが役立つ可能性があります。クラスターの設定を間違えると、そういうことが起こるのを見てきました。

于 2012-06-19T14:57:57.627 に答える