如何让HBase等到HDFS准备好后再开始?

时间:2012-06-19 14:41:37

标签: bash hadoop hbase hdfs

我正在为Hadoop构建一个自动安装脚本,我遇到了HBase无法启动的问题,因为HDFS尚未完全启动并准备就绪。我如何以编程方式(从Bash,理想情况下)判断HDFS系统是否已准备好启动HBase,所以我可以等到它?

我尝试使用“hadoop dfsadmin -report”并尝试使用正确数量的节点,但显然在集群实际为业务做好准备之前仍会返回。

1 个答案:

答案 0 :(得分:3)

使用hadoop dfsadmin -safemode wait检查HDFS是否已超出安全模式。这样的事情可以解决问题:

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

编辑:正如评论中提到的那样,根据HADOOP-756-safemode wait本身会等到安全模式关闭。在这种情况下,您可以简单地发出等待,而while循环则是不必要的。但是,如果你想继续尝试只持续一段时间并且如果DFS仍未启动或者其他东西,那么while循环可能仍然有用。我看到当我们在设置群集时出错时会发生这种情况。