[shell script] 重新啟動 hbase 叢集
對於hbase而言, 若是發生無法挽救的錯誤, 導致需要重新啟動hbase叢集, 一直以來都是麻煩的事情... 尤其, 這還牽涉到HDFS的資料同步, 因此, 若是要重新格式化hbase叢集需要經過以下步驟: 1. 關閉hbase (注意HMaster, 可能會沒有回應...) 2. 關閉hadoop 3. 清除各節點上hbase和hadoop的資料 4. 格式化hadoop namenode 5. 啟動hadoop 6. 啟動hbase 由於目前所使用的雲端環境不是非常穩定, 有時會所有虛擬機同時重新啟動, 導致hbase叢集也必須重啟... 因此, 我在hbase master節點上寫了一支shell script, 把重啟hbase叢集自動化執行 以下是一些環境變數: hbase 叢集節點: hbasemaster, hbaseslave01, hbaseslave02 HDFS資料儲存位置: /opt/data hadoop log儲存位置: /opt/hadoop/logs hbase資料暫存位置: /opt/hbase/hbase-data hbase資料暫存位置: /opt/hbase/hbase-logs 安裝hadoop和hbase的權限: hduser (這些變數的設定請參考hadoop和hbase的安裝) 以下是shell script檔 (restart_hbase.sh): #!/bin/bash # Program: # This program restarts hbase cluster. # History: # 2015/06/11 Chun-Hsien Ko First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH pid=$(su - hduser -c "cat /opt/hbase/hbase-pids/hbase-hduser-master.pid") echo $pid kill -9 $pid su - hdus...