1.大資料的定義:
麥肯錫全球研究所給出的定義是:一種規模大到在獲取、存盤、管理、分析方面大大超出了傳統資料庫軟體工具能力范圍的資料集合,具有海量的資料規模、快速的資料流轉、多樣的資料型別和價值密度低四大特征。資料量大(Volume)、變化速度快(Velocity)、多型別(Variety)、與高價值(Value)。
2.大資料存盤平臺:
(1)HDFS(Hadoop分布式檔案系統)
問題提出:當需要存盤的資料很多很大,一臺機器存盤不了時,需要將資料切割成塊,使用多臺機器分布式存盤這些資料
HDFS有3大主要角色:
NameNode(以下簡稱NN 總負責控制器,存盤原資料,不負責客戶間資料的讀取)
SecondaryNameNode(以下簡稱SNN)
DataNode(以下簡稱DN 存盤真實的資料)
NameNode的主要作業就是和Client(客戶端)打交道,接受他們的請求,以及管理元資料和集群(DataNode)。NameNode將元資料存盤在記憶體中,但記憶體不穩定。若NN要將元資料寫到磁盤中,則要經過復雜的IO操作,而且得鎖記憶體,不能對外服務。這使整個系統效率大大降低,顯然不可取。于是就出現了SecondaryNameNode。
SecondaryNameNode則負責幫NN分擔任務量,持久化記憶體中的除block位置資訊外的所有元資料。
DataNode的作業就是存盤block資料,向Client提供讀操作。
(2)備份機制
備份機制是為了保證資料安全,HDFS的默認資料備份數是2。當啟用備份機制時,DataNode的數量必須大于等于資料備份數+1。
第一個副本(備份1)block存盤在與原檔案block(源)不同機架上的隨機一臺服務器上
第二個副本(備份2)存盤在第一個副本相同的機架的其他隨機一個服務器上
3.HBase(Hadoop的分布式、開源的、多版本的非關系型資料庫)
HBase集群一般由一個HMaster,多個HRegionServer組成,選擇了一致性和磁區容忍性
(1) Client
Client有訪問Hbase的介面,會去meta表查詢目標region所在位置(此資訊會放入快取),并連接對應RegionServer進行資料讀寫。
當master rebalance region時,Client會重新進行查找。
(2) Zookeeper
HMaster和RegionSerer都注冊到ZK上,使HMaster可感知RegionServer上下線。
選舉,保證HMaster HA。
保存,META.表所在RegionServer位置
(3) HMaster
監控RegionServe狀態,并為之分配Region,以維護整個集群的負載均衡。
通過HMasterInterface介面維護集群的元資料資訊,管理用戶對table的增刪改查操作。
Region Failover:發現失效的Region,就到正常的RegionServer上恢復該Region。
RegionSever Failover:由HMaster對其上的region進行遷移。
(4) HRegionServer
主要職責:
處理用戶讀寫請求,并和底層HDFS的互動。我們說RegionServer擁有某個region意思是這個region讀寫、flush之類的操作都是由當前regionserver管理的。如果該RegionServer本地沒有HDFS DataNode 底層資料就要從其他DataNode節點遠程讀寫。
負責Region變大以后的split。
負責Storefile的合并作業。
HRegionServer組件:
一個RegionServer上存在多個Region和一個HLog讀寫實體。
HLog的就是WAL(Write-Ahead-Log),相當于RDBMS中的redoLog,寫資料時會先寫一份到HLog。可以配置MultiWAL,多Region時使用多個管道來并行寫入多個WAL流。
一個RS共用一個HLog的原因是減少磁盤IO開銷,減少磁盤尋道時間。
Region屬于某個表水平拆分的結果(初始一個Region),每個表的Region分部到多個RegionServer。
Region上按列族劃分為多個Store
每個Store有一個MemStore,當有讀寫請求時先請求MemStore
每個Store又有多個StoreFile
HFiles是資料的實際存盤格式,他是二進制檔案。StoreFile對HFile進行了封裝。HBase的資料在底層檔案中時以KeyValue鍵值對的形式存盤的,HBase沒有資料型別,HFile中存盤的是位元組,這些位元組按字典序排列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/20573.html
標籤:網絡
上一篇:第十一章大資料技術與實踐
