内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

HBase框架學習之路-創(chuàng)新互聯(lián)

1 背景知識

1.1 解決問題

解決HDFS不支持單條記錄的快速查找和更新的問題。

肇州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

1.2 適用情況

  • 存在億萬條記錄的數(shù)據(jù)庫,只有千萬或者百萬條記錄使用RDBMS更加合適

  • 確保你的應用不需要使用RDBMS的高級特性(第二索引,事務(wù)機制,高級查詢語言等)

  • 足夠的硬件配置,即節(jié)點數(shù),HDFS在少于5個節(jié)點時并不會表現(xiàn)得很好,HBase也存在相同情況。

2 設(shè)計理念

2.1 概述

2.1.1 簡介

  • 使用Java語言開發(fā)的NoSQL類型的分布式數(shù)據(jù)庫

  • 不支持RDBMS的一些高級特性,如事務(wù)機制,第二索引,高級查詢語言等

  • 支持線性和模塊化擴展,可以通過在商用機器上增加RegionServer來線性提高性能

2.1.2 HBase特性:

  • 強讀寫一致性:適合高速計數(shù)聚合操作

  • 自動切分數(shù)據(jù):分布式存儲數(shù)據(jù),隨著數(shù)據(jù)增長進行自動切片

  • RegionServer自動失效備援

  • 與HDFS集成

  • 支持MapReduce執(zhí)行大規(guī)模并行操作

  • 提供Java Client API

  • 提供Thrift/REST API

  • 針對大容量查詢優(yōu)化的塊緩存和Bloom Fliter

  • 可視化管理界面

2.1.3 劣勢

  • WAL的重新執(zhí)行速度緩慢

  • 故障恢復緩慢且復雜

  • 主壓縮會引起 I/O風暴(大量的I/O操作)

2.2 設(shè)計架構(gòu)

2.2.1 基礎(chǔ)概念

概念中文解釋備注舉例
Table由多行組成...
Row由一個Key和一個或者多列組成

Column由列族和列限定符組成列族:列限定符 ;行與行之間的列可以相差很多
Column Family列族物理上存儲多個列;為提高性能設(shè)計的;表格創(chuàng)建時需要置頂content
Column Qualifier列限定符列族中數(shù)據(jù)的索引表格創(chuàng)建時不需要指定,可以在任何時候添加content:html
Cell單元由行、列族、列限定符、值和代表版本的時間戳組成

TimeStamp時間戳用來表示數(shù)據(jù)的版本可以使用系統(tǒng)時間也可以自己指定

2.2.1.2 例子本例子取自官方文檔

Row KeyTime StampColumnFamily contentsColumnFamily anchorColumnFamily people
"com.cnn.www"t9
anchor:cnnsi.com = "CNN"
"com.cnn.www"t8
anchor:my.look.ca = "CNN.com"
"com.cnn.www"t6contents:html = "…

"com.cnn.www"t5contents:html = "…"

"com.cnn.www"t3contents:html = "…

com.example.wwwt5contents:html: "..."
people:author: "John Doe"

說明

  1. 表格格式不是唯一和最精確的表達方式,還可以用Json格式來表達

  2. 表格中的空白單元不會占用物理存儲空間,只是概念上存在

2.2.1.3 操作

操作API注意點與版本的關(guān)系
GetTable.get返回指定行的屬性;Scan的第一行若沒有指定版本,則返回版本值大(但可能不是最新的)的數(shù)據(jù);可以通過設(shè)置MaxVersion的值修改返回的數(shù)據(jù)條數(shù)
ScanTable.scan返回滿足條件的多行同上
PutTable.putKey存在則更新Key不在則插入;通過 Table.put (寫緩存) 或者Table.batch (沒有寫緩存)默認使用系統(tǒng)時間;只要key、column和version相同就可以實現(xiàn)覆蓋;插入時可以指定版本
DeleteTable.delete1.刪除指定列;2.刪除列的所有版本;3.刪除特定列族的所有列1. 刪除操作不會立刻執(zhí)行,而是給該數(shù)據(jù)設(shè)置墓碑標簽,在空間清理的時候再執(zhí)行死亡數(shù)據(jù)和墓碑的清除工作;2.通過在 hbase-site.xml.中hbase.hstore.time.to.purge.deletes屬性來設(shè)置TTL(生存時間)

說明

  1. 版本數(shù)的大值和最小值是可以指定的,并且會影響操作

  2. 版本(時間戳)是用來管控數(shù)據(jù)的存活時間的,最好不要手動設(shè)置

2.2.1.4 局限

1)Delete操作會影響Put操作:原因在于Delete操作并不是立刻執(zhí)行,而是給死亡數(shù)據(jù)設(shè)置墓碑標簽,那么如果當你執(zhí)行了一個Delete版本低于等于T的操作,而后有插入Put了一個版本為T的數(shù)據(jù),此時新Put的數(shù)據(jù)也會被打上標簽,那么會在系統(tǒng)的下一次清理工作中將打上標簽的數(shù)據(jù)全部清理掉,執(zhí)行查詢時則會獲取不到新Put的數(shù)據(jù),如果你不手動設(shè)置版本的話,版本采用系統(tǒng)默認時間,則不會出現(xiàn)這種情況。

2)清理工作會影響查詢:創(chuàng)建三個版本為t1,t2,t3的單元,并且設(shè)置大版本數(shù)為2.所以當我們查詢所有版本時,只會返回t2和t3。但是當你刪除版本t2和t3的時候,版本t1會重新出現(xiàn)。顯然,一旦重要精簡工作運行之后,這樣的行為就不會再出現(xiàn)。

查看更多關(guān)于數(shù)據(jù)模型的信息

2.2.2 架構(gòu)

2.2.2.1 架構(gòu)特點

1)主從架構(gòu)
2)有三個組件:

組件名稱組件主要功能
HMaster負責Region的分配和DDL操作(創(chuàng)建,刪除表)
HRegionServerRegionServer負責數(shù)據(jù)的讀寫;和客戶端通訊
ZooKeeper維持集群的活動狀態(tài)

3)底層儲存是HDFS

2.2.2.2 組件

hbase:meta:所有region的信息

1)結(jié)構(gòu):

Key

  • 格式:([table],[region start key],[region id])

Values

  • info:regioninfo (序列化HRegionInfo實例)

  • info:server (包含此Region的RegionServer的server:端口)

  • info:serverstartcode (包含此Region的RegionServer的啟動時間)

2)存儲位置:ZooKeeper中

HMaster:控制者

  • 分配Region:啟動時分配,失效RegionServer上Region的再分配,Region切分時分配

  • 監(jiān)控集群中的所有RegionServer,實現(xiàn)其負載均衡

  • DDL:Data Definition Language(表格的創(chuàng)建、刪除和更新-列族的更新)

  • 管理namespace和table的元數(shù)據(jù)

  • 權(quán)限管理(ACL)

  • HDFS上的垃圾文件回收

HRegionServer:HBase實際讀寫者

  • 響應client的讀寫請求,進行I/O操作(直接繞過HMaster)

  • 與HDFS交互,管理table數(shù)據(jù)

  • 當Region的大小到達閥值時切分Region

本小節(jié)可參考Region Server詳解

ZooKeeper:協(xié)調(diào)者

  • 保證集群中有且只有一個HMaster為Active

  • 存儲hbase:meta,即所有Region的位置信息

  • 存儲HBase中表格的元數(shù)據(jù)信息

  • 監(jiān)控RegionServer狀態(tài),將RS的上下線情況匯報給HMaster

  • ZooKeeper集群本身使用一致性協(xié)議(PAXOS協(xié)議)保證每個節(jié)點狀態(tài)的一致性

Region:Region是HBase數(shù)據(jù)存儲和管理的基本單位

本小節(jié)可參考Region詳解

2.3 相關(guān)流程

2.3.1 首次讀寫流程

本小節(jié)可參考Region Server詳解中的首次讀寫流程

2.3.2 寫流程

本小節(jié)可參考Region Server詳解中的寫流程

2.3.2 讀流程

本小節(jié)可參考Region Server詳解中的讀流程

2.4 相關(guān)機制

2.4.1 Compaction機制(壓縮合并)

2.4.1.1 次壓縮

本小節(jié)可參考Region Server詳解中的次壓縮部分

2.4.1.2 主壓縮

本小節(jié)可參考Region Server詳解中的主壓縮部分

2.4.2 WAL Replay機制

本小節(jié)可參考Region Server詳解中的WAL Replay

2.5 版本更新內(nèi)容

2.5.1 .META表 =>hbase:meta

2.5.1.1 -ROOT-和.META

在0.96.x之前是存在-ROOT-和.META兩個表格來維持region的元數(shù)據(jù)

1)結(jié)構(gòu):

Key

.META. region key (.META.,,1)

Values

 info:regioninfo (hbase:meta的序列化實例)
 info:server (存儲 hbase:meta的RegionServer的server:port)
 info:serverstartcode (存儲 hbase:meta的RegionServer的啟動時間)

2)讀取region位置信息的流程

  1. 從ZooKeeper中讀取-ROOT- Table所在HRegionServer

  2. 從該HRegionServer中根據(jù)請求的TableName,RowKey讀取.META. Table所在HRegionServer

  3. 從該HRegionServer中讀取.META. Table的內(nèi)容而獲取此次請求需要訪問的HRegion所在的位置

  4. 訪問該HRegionSever獲取請求的數(shù)據(jù)

2.5.1.2 hbase:meta

本小節(jié)可參考2.2.2.2 組件中的hbase:meta和2.3 相關(guān)流程中的首次讀寫流程進行比較

2.5.1.3 升級的目的

1)0.96.x版本之前是參考Goole的BigTable設(shè)計的,從讀取數(shù)據(jù)請求發(fā)起到真正讀取到數(shù)據(jù)要經(jīng)過4個步驟,Google設(shè)計BigTable的目的在于它的數(shù)據(jù)量巨大,多層的schema結(jié)構(gòu)能夠存儲更多的Region,但是隨著而來的就是訪問性能的下降。
2)一般公司的數(shù)據(jù)量沒有Google那么大,所以去掉-ROOT-表,留下.META(hbase:meta)表,提高Region的大小,不僅可以滿足存儲需求,而且訪問性能得到提高。

2.5.2 HLog =>WAL

  • 0.94.x 之前HBase中的WAL實現(xiàn)稱為HLog,存儲在/hbase/.logs/目錄下

  • 0.94.x之后更名為WAL,存儲在/hbase/WALs/目錄下

2.6 跟其他框架的聯(lián)系

待續(xù)...

2.7 性能調(diào)優(yōu)

待續(xù)...

2.8 高級特性

待續(xù)...

3 項目實戰(zhàn)

3.1 入門指南

3.1.1 環(huán)境搭建

本小節(jié)可參考HBase部署入門指南

3.1.2 入門程序

本小節(jié)可參考HBase Shell 練習、HBase Java API 練習、使用MapReduce操作HBase

3.2 技術(shù)難點

待續(xù)...

3.3 開發(fā)中遇到的問題

待續(xù)...

3.4 應用

3.4.1 OpenTSDB開發(fā)

待續(xù)...

4 聲明

待續(xù)部分將會后期不定期更新,敬請期待。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站題目:HBase框架學習之路-創(chuàng)新互聯(lián)
本文來源:http://www.rwnh.cn/article32/dohesc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)頁設(shè)計公司電子商務(wù)、域名注冊App開發(fā)、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
临漳县| 湖南省| 图木舒克市| 留坝县| 慈利县| 巩义市| 鄂尔多斯市| 特克斯县| 泸水县| 保山市| 合阳县| 保定市| 双峰县| 桃园县| 舞阳县| 峨山| 河南省| 驻马店市| 通河县| 车致| 淄博市| 连平县| 凉城县| 湖口县| 咸阳市| 金华市| 南召县| 阜南县| 江安县| 南木林县| 涞水县| 泌阳县| 博湖县| 平利县| 久治县| 都昌县| 香格里拉县| 锦屏县| 墨玉县| 察隅县| 宜都市|