《HBase权威指南》读书笔记:第一章 简介
生活随笔
收集整理的這篇文章主要介紹了
《HBase权威指南》读书笔记:第一章 简介
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫無法存放海量數(shù)據(jù),因此HBase誕生,解決海量數(shù)據(jù)存取難題。當(dāng)然除了HBase,還有很多其他類型的數(shù)據(jù)庫解決不同的問題。HBase的誕生參考了谷歌的這兩篇論文,值得閱讀:
- The Google File System
- MapReduce: Simplified Data Processing on Large Clusters
HBase應(yīng)用邏輯的基本概念有:
- 表:表有表名,其含有多個row
- row:由row key和多個column組成。行級別的數(shù)據(jù)是原子性的。
- column:儲存任意二進(jìn)制數(shù)據(jù)。column可以達(dá)到上百萬個。數(shù)據(jù)可以有多個版本,每個版本的數(shù)據(jù)存在cell中。版本可以設(shè)置刪除策略,支持?jǐn)?shù)量、過期時間策略。
- column family:由多個column組成。column family只能有幾十個。
HBase支持的操作有:對數(shù)據(jù)的CRUD、scan、CAS、計數(shù)器、coprocessor,還有建表、刪表、增加列族、修改列族、刪除列族。
- CURD:用row key去增刪改查
- scan:指定row key的范圍,批量取數(shù)據(jù)
- CAS:為確保一致性而提供的操作,check and set,確認(rèn)版本沒變過的情況下寫入數(shù)據(jù)
- 計數(shù)器:支持原子性的計數(shù)器操作
- coprocessor:協(xié)處理器,客戶端提交代碼在服務(wù)端運行,更快的處理數(shù)據(jù)
HBase運維層面的基本概念有:
- master節(jié)點:負(fù)責(zé)協(xié)調(diào)region在各個節(jié)點中的分布,并將信息儲存在zookeeper中,一個集群內(nèi)可以起多個master節(jié)點,但同一時間只能有一個master掌握實權(quán),其余都是替補。
- region server:負(fù)責(zé)處理針對region的請求。一個region server內(nèi)可以包含多個region。通常10~1000個region性能最優(yōu)??蛻舳酥苯优cregion server相連,請求直接發(fā)給它。
- region:最小負(fù)載單元,每個region包含表名、首行key、末行key。也就是說每個region負(fù)責(zé)一張表的一部分內(nèi)容。如果region中數(shù)據(jù)量過多,則會進(jìn)行自動拆分,分成兩個region,然后遷移到別的節(jié)點。
- HFile:包含多個塊,每個塊中儲存某個column數(shù)據(jù)的一部分。文件末尾是塊的索引。服務(wù)啟動時將塊索引加載到內(nèi)存中。HFile儲存在HDFS中。
架構(gòu)參考了LSM樹(log-structured sort-and-merge-map)。在HBase中,寫入的數(shù)據(jù)先寫到write-ahead log,然后放在內(nèi)存memstore中,等到內(nèi)存占用達(dá)到閾值,做flush,將memstore中的內(nèi)容寫到HDFS成為HFile。當(dāng)HFile數(shù)量較多時,做compation操作,將小文件合并成大文件。這種架構(gòu)也被ElasticSearch、Cassandra、InfluxDB采用。
總結(jié)
以上是生活随笔為你收集整理的《HBase权威指南》读书笔记:第一章 简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java8 supplier 接口
- 下一篇: java学习手册下载_java学习手册