大資料的那些面試題及答案(二)HBase
文章目錄
什麼是Hbase
HBase是一個高可靠、高效能、面向列、可伸縮的分散式資料庫,是谷歌BigTable的開源實現,主要用來 儲存非結構化和半結構化的鬆散資料
Hbase的本質
面向列的分散式資料庫
hbase來源於谷歌的哪篇論文
BigTable
Hbase埠號
16010
Hbase的資料的維度及代表的意思
hbase可以視為一個“四維座標”資料,維度分別代表[行鍵, 列族, 列限定符, 時間戳]
rowkey設計原則
唯一原則:必須在設計上保證其唯一性,Rowkey是按照字典順序儲存的,所以設計Rowkey時,要充分利用這一特點,將往常一起讀取的資料儲存到一塊。
長度原則:越短越好,最大長度為64Kb,太長的影響有兩點。
(1)極大影響了HFile的儲存效率。
(2)快取memstore不能得到有效利用,快取不能存放太多的資訊,造成檢索效率的降低。
雜湊原則: 由於region儲存是按行鍵儲存的,如果行鍵的值都是類似的那就容易導致資料都堆在一個Rowkey上產生熱點問題。所以可以通過一下方法讓Rowkey儘量雜湊化。
(1)加鹽在Rowkey前生成隨機數。
(2)反轉把最沒有用的放在前面以增加隨機性。
HBASE原理機制
(1)HBASE是一款應用在大資料情境下的資料庫。
(2)HBASE是分散式的利用hdfs作為儲存系統的面向列的資料庫。
(3)HBASE的叢集中主要由Master和Regionserver以及zookeeper組成。Master為Regionserver分配region
(4)HBASE使用Memstore和storeFile儲存對錶的更新,使用者寫入的資料首先會放入Memstore,當Memstore滿了以後會flush成一個storeFile(底層實現是HFile)。
(5)HBASE使用和bigTable非常相同的資料模型。使用者儲存資料行在一個表裡,在HBASE中資料按主鍵排序,同時表按主鍵劃分多個Region。
Hbase怎麼更新資料
通過=追版本形式執行更新操作。
並不會刪除資料舊的版本,而是生成一個新的版本,舊有的版本仍然保留(這是和HDFS只允許追加不允許修改的特性相關的)
HBase系統架構由什麼組成
客戶端、Zookeeper伺服器 、Master(一個)、Region伺服器(多個)
HBase中最核心的模組是?
Region伺服器
HBase最小儲存資料的單元是?HBase在hdfs上儲存的形式是?
HFile
HBase的相關操作命令(對錶、對資料)
用,
分隔 用‘ ’
註明
對錶
(1)建立表 create
語句:create 't1','f1' ti為表名,f1為列族
(2)修改表 alter
語句:alter 't1','f2' 增加一個列族
(3)刪除表 drop
語句:diasble 't1' drop 't1' 刪除表時分兩步,先disable再drop
(4)查看錶的結構 describe
語句:describe 't1'
(5)查詢表中的資料行數 count
count 't1', {INTERVAL => 100, CACHE => 500}
語句:查詢表t1中的行數,每100條顯示一次,快取區為500
(6)掃描表 scan
語句:scan 't1',{LIMIT=>5} 掃描表t1的前5條資料
語句:scan 't1',{STARTROW=>'2',STOPROW=>'4'} 掃描表t1的第2行到第4行
語句: scan 'score',{COLUMNS=>'egrade:cet4',VERSIONS=>5} 掃描表score的grade:cet4,版本號為5的資訊
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
對資料
(1) 插入、新增、修改資料 put
語句:put 't1','001','f1:col1','value01' t1是表名,001是行鍵、f1是列族、col1是列、value01是值
(2)查詢、取出資料 get
語句:get 't1','001', 'f1:col1‘
(3)刪除資料 delete
語句:delete 't1','001','f1:col1'
刪除整行資料 deleteall
語句:deleteall 't1','001'
刪除表中的所有資料 truncate
語句:truncate 't1'