hbase 強制刪除所有表數據,為什么建hbase表還會有重命名
hbaseshell不能創建表的原因分析。
一.現象:前一段時間安裝了Hbasehbaseshell進去之后liststatus命令都能夠正常運行。但是執行建表語句:create'aaa','bbb'的時候他就一直卡在那不動,也不報任何錯誤,日志里面一直在刷如下的debug日志:*ctionManager$HConnectionImplementation:Lookeduprootregionlocation,connection=*ctionManager$HConnectionImplementation@23faa614;serverName=*Manager:Waitingonregionserver(s)tocheckin然后我進到hive里面也是可以執行查看語句但是不能創建表。
狀態就是只能讀不能寫。二.解決法:namenode在啟動的時候首先進入安全模式,如果datanode丟失的block達到一定的比例,則系統會一直處于安全模式狀態即只讀狀態。
*(缺省值0.999f)表示HDFS啟動的時候,如果DataNode上報的block個數達到了元數據記錄的block個數的0.999倍才可以離開安全模式,否則一直是這種只讀模式。如果設為1則HDFS永遠是處于SafeMode。
有兩個方法離開這種安全模式(1)修改*為一個比較小的值,缺省是0.999。(2)hadoopdfsadmin-safemodeleave命令強制離開用戶可以通過dfsadmin-safemodevalue來操作安全模式,參數value的說明如下:*-進入安全模式*-強制NameNode離開安全模式*-返回安全模式是否開啟的信息*-等待,一直到安全模式結束。
我采取的法是強制離開安全模式。進入hadoop的bin目錄,執行:hadoopdfsadmin-safemodeleave然后我分別進入hive和hbasecreate就可以順利的執行了。
如何獲取hbase數據查詢 語句
get命令和HTable類的get()方法用于從HBase表中讀取數據。使用 get 命令,可以同時獲取一行數據。它的語法如下:
get '','row1'
下面的例子說明如何使用get命令。掃描emp表的第一行。
hbase(main):012:0>get 'emp', '1'
COLUMN CELL
personal : city timestamp=1417521848375, value=hyderabad
personal : name timestamp=1417521785385, value=ramu
professional: designation timestamp=1417521885277, value=manager
professional: salary timestamp=1417521903862, value=50000
4 row(s) in 0.0270 seconds
讀取指定列
下面給出的是語法,使用get方法讀取指定列。
hbase>get 'table name', 'rowid', {COLUMN =>'column family:column name '}
下面給出的示例,是用于讀取HBase表中的特定列。
hbase(main):015:0>get 'emp', 'row1', {COLUMN=>'personal:name'}
COLUMN CELL
personal:name timestamp=1418035791555, value=raju
hbase1.2.4怎么創建表
1. 啟動hive,并連接到hbase./hive --auxpath /opt/apache/hive-0.12.0-bin/lib/hive_hbase-handler- 2. 創建內表CREATE TABLE hive_123(word string, count bigint) STORED BY '*torageHandler' WITH SERDEPROPERTIES ("*g" = ":key,cf1:val") TBLPROPERTIES ("*" = "hive_123");執行這條命令后,hive將會在hbase上創建表"hive_123",hive列與hbase列的映射關系為:word字段為hbase表的rowkey,count字段則為cf1:val即column family為cf1,qualifier為val3. 創建外表CREATE EXTERNAL TABLE hive_vv(key string, sip string, count int) STORED BY '*torageHandler' WITH SERDEPROPERTIES ("*g" = ":key,cf0:sip,cf1:count") TBLPROPERTIES ("*" = "hive_vv"); 創建一個hive外表,將名為hive_w的hbase表識別到hive中。
c++ 程序如何操作hbase?例如:創建表格,插入數據,查詢數據等等
這個問題有相當的難度,同為Hadoop出身的Hypertable和Hbase分別傾向于C和Java,Hbase本身并沒有開放面向C的API,但是可以通過Thrift實現,Hbase已經發布了ThriftAPI用以Hbase與C程序之間的交互,ThriftAPI可以參見wiki上一篇文章:http://**hadoop/Hbase/ThriftApi例外Thrift的使用也可以參見下面兩篇文章:http://**thrift/http://**infant/blog/item/*還有一種方法比較常用的,就是直接用JNI連接,上層使用Java與Hbase通信,但是有點繞,C++與Hbase的直接通信現在還沒有,你可以考慮一下我說的Thrift和JNI 對不起,我也沒有用過,可以根據上面的幾篇文章自己試一下,按說Thrift作為一種中間渠道,支持Thrift應該都可以操作Hbase。
如何獲取hbase數據查詢 語句
get命令和HTable類的get()方法用于從HBase表中讀取數據。
使用 get 命令,可以同時獲取一行數據。它的語法如下:get '