1. 程式人生 > 實用技巧 >2020-09-08 安裝單機HBase

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},{}

'刪除列族' alter 'table_name', 'delete' => 'cf'
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}
9.用scan檢視資料 scan 'table_name'
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"));