2020-09-08 安裝單機HBase
系統: Ubuntu-16-Serveer
JDK: 1.8
HBase: 2.2.5
安裝步驟照這兩篇:https://blog.csdn.net/hhy1107786871/article/details/88551234
https://www.jianshu.com/p/a0463f31637d
重點:配置hbase-env.sh
#true為單機版,false為叢集版 export HBASE_MANAGES_ZK=true #jdk目錄 export JAVA_HOME=/Java/jdk1.8/ #hadoop 目錄 export HADOOP_HOME=/Hadoop #hbase目錄 export HBASE_HOME=/HBase
指令:
啟動: bin/start-hbase.sh
WebUi : http://master:60010
1.啟動HBase Shell:bin/hbase shell
2.建表 create 'table_name', 'col_fam_name'
3.檢視所有表 list
4.檢視屬性 describe 'table_name'
5.增加列族 alter 'table_name','cf2'
alter 'table_name', {NAME=>'cf1',attribute_name1=>attribute_value1, a_n2=>a_v2},{}
6.插入資料 put 'table_name','row_key', 'cf:col_name', 'value'
7.調整hbase-version alter 'table_name',{NAME=>'cf',VERSIONS=>5}
8.獲取資料 get 'table_name', 'row_key', 'cf:name'
get 'table_name','row_key', {COLUMN=>'cf:name',VERSIONS=>5}
scan 'table_name',{VERSIONS=>5}
10.刪除資料 delete 'test','row_key', 'cf:name' [,ts //根據時間戳刪除]
這是因為HBase刪除記錄並不是真的刪除了資料,而是放置了一個 墓碑標記(tombstone marker),把這個版本連同之前的版本都標記為 不可見了。
這是為了效能著想,這樣HBase就可以定期去清理這些已經 被刪除的記錄,而不用每次都進行刪除操作。
“定期”的時間點是在 HBase做自動合併(compaction,HBase整理儲存檔案時的一個操作,會把多個檔案塊合併成一個檔案)的時候。
這樣刪除操作對於HBase的性 能影響被降到了最低,就算在很高的併發負載下大量刪除記錄也不怕了!
'刪除整行' deleteall 'table_name', 'row_key'
11.停用表 disable 'table_name'
12.刪除表 drop 'table_name'
*其他操作
1.flushRegion 強制重新整理該Region的資料到HDFS。
2.compactRegion:觸發該Region的合併(compact)操作, compact會將該Region中的HFile(HBase儲存資料的格式)以一定的規則合併,以加速讀取速度。
3.majorCompactRegion:觸發該Region的majorCompact操作。
4.mergeRegions:合併(merge)多個Region。注意此處的合併 (merge)跟之前我寫的合併(compact)並不一樣,我把這兩種 行為都翻譯為合併,這是因為我找不到別的更合適的中文詞彙 能形容他們了。merge指的是把多個Region合併起來,而compact 指的是對某個Region中的所有HFile執行合併操作。
5.Snapshot. 快照備份
//java程式碼 //snapshot
snapshotName tablename void sapshot(String snapshotName, TableName tableName)-> admin.snapshot("test_snapshot_1",TableName.valueOf("test_snapshot")); //restore_snapshot
snapshotName admin.restoreSnapshot("name"); //****要先disable table admin.disable(Tablename.valueOf("name"));