一、hbase原理剖析
Base是一個構建在HDFS上的分布式列存儲系統;
HBase是基於Google BigTable模型開發的,典型的key/value系統;
HBase是Apache Hadoop生態系統中的重要一員,主要用於海量結構化數據存儲;
從邏輯上講,HBase將數據按照表、行和列進行存儲。
與hadoop一樣,Hbase目標主要依靠橫向擴展,通過不斷增加廉價的商用服務器,來增加計算和存儲能力。
Hbase表的特點
大:一個表可以有數十億行,上百萬列;
無模式:每行都有一個可排序的主鍵和任意多的列,列可以根據需要動態的增加,同一張表中不同的行可以有截然不同的列;
面向列:面向列(族)的存儲和權限控制,列(族)獨立檢索;
稀疏:空(null)列並不占用存儲空間,表可以設計的非常稀疏;
數據多版本:每個單元中的數據可以有多個版本,默認情況下版本號自動分配,是單元格插入時的時間戳;
數據類型單一:Hbase中的數據都是字符串,沒有類型。
注:網絡有三種hbase遷移模式,因群集之間網絡不通,采用手動方式遷移
1、從源HBase集群中復制出HBase數據庫表到本地目錄。
su - hdfs
hadoop fs -get /apps/hbase/data/data/dpa /本地目錄
2、復制本地目錄數據到新群集中本地目錄中(scp)
3、新群集目錄導入數據
su - hdfs
hadoop fs -put /本地目錄 /apps/hbase/data/data/dpa
4、新群集中設置權限並修復.META.
表
su - hdfs
hadoop fs -chmod -R 777 /apps/hbase/data/data/dpa su - hbase
hbase hbck -fixMeta
注:權限問題整了我兩天時間,各種問題搜索、請教高人后無果,查看日志發現(日志觀察很重要)
5、重新分配數據到各RegionServer
su - hbase
hbase hbck -fixAssignments
PS:此方法優勢靈活,安全;其它兩種方法未測試,無法做出評價.