分布式存儲(chǔ)系統(tǒng)HBase的架構(gòu)
HBase是一個(gè)構(gòu)建在HDFS上的分布式列存儲(chǔ)系統(tǒng)。HBase是Apache Hadoop生態(tài)系統(tǒng)中的重要一員,主要用于海量結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ);
從邏輯上講,HBase將數(shù)據(jù)按照表、行和列進(jìn)行存儲(chǔ)。兩者都具有良好的容錯(cuò)性和擴(kuò)展性,都可以擴(kuò)展到成百上千個(gè)節(jié)點(diǎn);
Hbase表的特點(diǎn)
大:一個(gè)表可以有數(shù)十億行,上百萬列;
無模式:每行都有一個(gè)可排序的主鍵和任意多的列,列可以根據(jù)需要?jiǎng)討B(tài)的增加,同一張表中不同的行可以有截然不同的列;
面向列:面向列(族)的存儲(chǔ)和權(quán)限控制,列(族)獨(dú)立檢索;
稀疏:對于空(null)的列,并不占用存儲(chǔ)空間,表可以設(shè)計(jì)的非常稀疏;
數(shù)據(jù)多版本:每個(gè)單元中的數(shù)據(jù)可以有多個(gè)版本,默認(rèn)情況下版本號自動(dòng)分配,是單元格插入時(shí)的時(shí)間戳;
數(shù)據(jù)類型單一:Hbase中的數(shù)據(jù)都是字符串,沒有類型。
Hbase數(shù)據(jù)模型
HBase是基于Google BigTable模型開發(fā)的,典型的key/value系統(tǒng);
Hbase邏輯視圖
HBase schema可以有多個(gè) Table,每個(gè)表可由多個(gè)Column Family組成。HBase可以有 Dynamic Column列名稱是編碼在cell中的,不同的cell可以擁有不同的列。