3 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊
hbase shell不能創(chuàng)建表的原因分析。
一.現(xiàn)象:
前一段時(shí)間 安裝了Hbase
hbase shell
進(jìn)去之后 list status 命令都能夠正常運(yùn)行。
但是執(zhí)行建表語句 :
create 'aaa','bbb'
的時(shí)候 他就一直卡在那不動(dòng),也不報(bào)任何錯(cuò)誤, 日志里面一直在刷如下的 debug日志:
DEBUG
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation:
Lookedup root region location,
connection=org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@23faa614;
serverName=
INFO org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to checkin
然后我進(jìn)到 hive里面 也是可以執(zhí)行查看語句 但是不能創(chuàng)建表。
狀態(tài)就是 只能讀不能寫。
二.解決辦法:
namenode在啟動(dòng)的時(shí)候首先進(jìn)入安全模式,如果datanode丟失的block達(dá)到一定的比例,則系統(tǒng)會一直處于安全模式狀態(tài)即只讀狀態(tài)。
dfs.safemode.threshold.pct(缺省值0.999f)表示HDFS啟動(dòng)的時(shí)候,如果DataNode上報(bào)的block個(gè)數(shù)達(dá)到了元數(shù)據(jù)記錄的block個(gè)數(shù)的0.999倍才可以離開安全模式,否則一直是這種只讀模式。如果設(shè)為1則HDFS永遠(yuǎn)是處于SafeMode。
有兩個(gè)方法離開這種安全模式
(1)修改dfs.safemode.threshold.pct為一個(gè)比較小的值,缺省是0.999。
(2)hadoop dfsadmin -safemode leave命令強(qiáng)制離開
用戶可以通過dfsadmin -safemode value 來操作安全模式,參數(shù)value的說明如下:
1. enter - 進(jìn)入安全模式
2. leave - 強(qiáng)制NameNode離開安全模式
3. get - 返回安全模式是否開啟的信息
4. wait - 等待,一直到安全模式結(jié)束。
我采取的辦法是 強(qiáng)制離開安全模式。
進(jìn)入hadoop 的bin目錄,
執(zhí)行:
hadoop dfsadmin -safemode leave
然后我分別進(jìn)入 hive 和 hbase
create 就可以 順利的執(zhí)行了。
- 3 回答
- 0 關(guān)注
- 1051 瀏覽
添加回答
舉報(bào)