【趙渝強老師】HBase的體系架構

在這里插入圖片描述

HBase是大表(BigTable)思想的一個具體實現。它是一個列式存儲的NoSQL數據庫,適合執行數據的分析和處理。簡單來說,就是適合執行查詢操作。從體系架構的角度看,HBase是一種主從架構,包含:HBase HMaster、Region Server和ZooKeeper,下圖展示了這一架構。
在這里插入圖片描述

其中:

  • HBase HMaster負責Region的分配及數據庫的創建和刪除等操作。
  • Region server負責數據的讀寫服務。
  • ZooKeeper負責維護集群的狀態。
視頻講解如下

【趙渝強老師】HBase的體系架構

下面詳細討論HBase體系架構中每一個組成部分的作用。

一、 HMaster

HMaster是整個HBase集群的主節點,它的職責主要體現在以下幾方面:

  1. 負責在Region Server上分配和調控不同的Region。
  2. 根據恢復和負載均衡的策略,重新分配Region。
  3. 監控Region Server的狀態。
  4. 管理和維護HBase的命名空間,即NameSpace。
  5. 接收客戶端的請求,提供創建,刪除或者更新表格的接口。

另一方面,如果整個集群中只存在一個HMaser,將造成單點故障的問題。因此也需要基于ZooKeeper來實現HBase的HA(高可用)。但是HBase實現HA非常簡單,因為在其體系架構中已經包含了ZooKeeper,因此只需要手動再啟動一個HMaster作為Backup HMaster即可。

視頻講解如下

【趙渝強老師】HBase的主節點HMaster

二、 Region Server

Region Server負責數據的讀寫操作。一個Region Server可以包含多個Region,而一個Region只能屬于一個Region Server。那么什么是Region呢?可以把Region理解成是列族,它與列族的關系是一對多的關系。HBase表中的列族是根據rowkey的值水平分割成所謂的Region的。在默認情況下,Region的大小是1G,其中包含8個HFile的數據文件。而每個數據文件的大小正好是128M,與HDFS數據塊的大小保存一致。每一個Region server大約可以管理1000個Region。

Region Server除了包含Region以外,還包含WAL預寫日志、Block Cache讀緩存和MemStore寫緩存三個部分。

視頻講解如下

【趙渝強老師】HBase的從節點Region Server

2.1 WAL預寫日志

Write-Ahead Logging是一種高效的日志算法,相當于Oracle中的redo log,或者是MySQL中的binlog。基本原理是在數據寫入之前首先順序寫入日志,然后再寫入緩存,等到緩存寫滿之后統一進行數據的持久化。WAL將一次隨機寫轉化為了一次順序寫加一次內存寫,在提供性能的前提下又保證了數據的可靠性。如果在寫入數據完成之后發生了宕機,即使所有寫緩存中的數據都丟失了,也可以通過恢復WAL日志達到數據恢復的目的。寫入的WAL日志會對應有一個HLog文件。

《從大數據到云原生系列課程》

2.2 Block Cache讀緩存

HBase將經常需要讀取的數據放入Block Cache中,來提供讀取數據的效率。當Block Cache的空間被占滿后,將采用LRU算法將其中被讀取頻率最低的數據從Block Cache中清除。

2.3 MemStore寫緩存

MemStore中主要存儲了還未寫入磁盤的數據,如果此時發生了宕機,這部分數據是會丟失的。HBase中的每一個列族對應一個MemStore,其中存儲的是按鍵排好序的待寫入硬盤的數據,數據也是按Rowkey排好序寫入HFile中的,最終保存到HDFS中。

提示:HBase表中的數據最終保存在數據文件HFile中,并存儲與HDFS的DataNode上。在將MemStore中的數據寫入HFile中的時候,采用順序寫入的機制,避免了磁盤大量尋址的過程,從而大幅提高了性能。在讀取HFile的時候,文件中包含的Rowkey信息會被加載到內存中,這樣就可以保證數據檢索只需一次硬盤查詢操作。

三、 HBase中的ZooKeeper

ZooKeeper在整個HBase集群中主要維護節點的狀態并協調分布式系統的工作。主要體現在以下幾方面:

  1. 監控HBase節點的狀態,包括:HMaster和RegionServer。
  2. 通過ZooKeeper的Watcher機制提供節點故障和宕機的通知。
  3. 保證服務器之間的同步。
  4. 負責Master選舉的工作。

視頻講解如下:

視頻講解如下

【趙渝強老師】HBase中的ZooKeeper

下圖展示了HBase在ZooKeeper中保存的數據信息。
在這里插入圖片描述

視頻講解如下

【趙渝強老師】HBase中的ZooKeeper

《從大數據到云原生系列課程》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907209.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux 新增驅動宏config.in配置

?1. 添加配置宏步驟? ?1.1 修改 Kconfig(推薦方式)? ?定位 Kconfig 文件? 內核各子目錄(如 drivers/char/)通常包含 Kconfig 文件,用于定義模塊配置選項7。?添加宏定義? 示例:在 drivers/char/Kc…

關于git的使用

下載git 可以去git的官網下載https://git-scm.com/downloads 也可以去找第三方的資源下載,下載后是一個exe應用程序,直接點開一直下一步就可以安裝了 右鍵任意位置顯示這兩個就代表成功,第一個是git官方的圖形化界面,第二個是用…

WPF【11_8】WPF實戰-重構與美化(UI 與視圖模型的聯動,實現INotifyPropertyChanged)

11-13 【重構】INotifyPropertyChanged 與 ObservableCollection 現在我們來完成新建客戶的功能。 當用戶點擊“客戶添加”按鈕以后系統會清空當前所選定的客戶,客戶的詳細信息以及客戶的預約記錄會從 UI 中被清除。然后我們就可以在輸入框中輸入新的客戶信息了&am…

ArkUI:鴻蒙應用響應式與組件化開發指南(一)

文章目錄 引言1.ArkUI核心能力概覽1.1狀態驅動視圖1.2組件化:構建可復用UI 2.狀態管理:從單一組件到全局共享2.1 狀態裝飾器2.2 狀態傳遞模式對比 引言 鴻蒙生態正催生應用開發的新范式。作為面向全場景的分布式操作系統,鴻蒙的北向應用開發…

List優雅分組

一、前言 最近小永哥發現,在開發過程中,經常會遇到需要對list進行分組,就是假如有一個RecordTest對象集合,RecordTest對象都有一個type的屬性,需要將這個集合按type屬性進行分組,轉換為一個以type為key&…

AI與.NET技術實操系列(八):使用Catalyst進行自然語言處理

引言 自然語言處理(Natural Language Processing, NLP)是人工智能領域中最具活力和潛力的分支之一。從智能客服到機器翻譯,再到語音識別,NLP技術正以其強大的功能改變著我們的生活方式和工作模式。 Catalyst的推出極大降低了NLP…

MySQL 8.0 OCP 1Z0-908 題目解析(13)

題目49 Choose the best answer. t is a non - empty InnoDB table. Examine these statements, which are executed in one session: BEGIN; SELECT * FROM t FOR UPDATE;Which is true? ○ A) mysqlcheck --analyze --all - databases will execute normally on all ta…

Docker 一鍵部署倒計時頁面:Easy Countdown全設備通用

Easy Countdown 介紹 Easy countdown是一個易于設置的倒計時頁面。可以設置為倒計時或計時器。可用于個人生活、工作管理、教育、活動策劃等多個領域。 🚢 項目地址 Github:https://github.com/Yooooomi/easy-countdown 🚀Easy Countdown …

Python訓練打卡Day35

模型可視化與推理 知識點回顧: 三種不同的模型可視化方法:推薦torchinfo打印summary權重分布可視化進度條功能:手動和自動寫法,讓打印結果更加美觀推理的寫法:評估模式 模型結構可視化 理解一個深度學習網絡最重要的2點…

四、生活常識

一、效應定律 效應 1、沉沒成本效應 投入的越多,退出的難度就越大,因為不甘心自己之前的所有付出都付之東流。 2、破窗效應 干凈的環境下,沒有人會第一個丟垃圾,但是當環境變得糟糕,人們就開始無所妒忌的丟垃圾。…

機器學習圣經PRML作者Bishop20年后新作中文版出版!

機器學習圣經PRML作者Bishop20年后新書《深度學習:基礎與概念》出版。作者克里斯托弗M. 畢曉普(Christopher M. Bishop)微軟公司技術研究員、微軟研究 院 科學智 能 中 心(Microsoft Research AI4Science)負責人。劍橋…

Python應用嵌套猜數字小游戲

大家好!今天向大家分享的是有關“嵌套”的猜數字小游戲。希望能夠幫助大家理解嵌套。 代碼呈現: # 1. 構建一個隨機的數字變量 import random num random.randint(1, 10)guess_num int(input("輸入你要猜測的數字: "))# 2. 通過if判斷語句進行數字的猜…

黑馬k8s(十四)

1.Service-概述 service:用于四層路由的負載,Ingress七層路由的負載;,先學習service 開啟ipvs 2.Service-資源清單文件介紹 修改每個顯示的內容 ClusterIP類型的Service Endpoints:建立service與pod關聯 親和性測試…

Kotlin 中 Lambda 表達式的語法結構及簡化推導

在 Kotlin 編程中,Lambda 表達式是一項非常實用且強大的功能。今天,我們就來深入探討一下 Lambda 表達式的語法結構,以及它那些令人 “又愛又恨” 的簡化寫法。 一、Lambda 表達式完整語法結構 Lambda 表達式最完整的語法結構定義為{參數名…

Kafka Streams 和 Apache Flink 的無狀態流處理與有狀態流處理

Kafka Streams 和 Apache Flink 與數據庫和數據湖相比的無狀態和有狀態流處理的概念和優勢。 在數據驅動的應用中,流處理的興起改變了我們處理和操作數據的方式。雖然傳統數據庫、數據湖和數據倉庫對于許多基于批處理的用例來說非常有效,但在要求低延遲…

【后端高階面經:緩存篇】34、高并發下緩存穿透、擊穿、雪崩怎么解決

一、緩存三大核心問題:穿透、擊穿、雪崩的本質區別 (一)概念對比表 問題類型核心特征典型場景危害等級緩存穿透數據在緩存和數據庫中均不存在,請求直接穿透到數據庫惡意攻擊(偽造不存在的ID)、業務邏輯漏洞★★★★★緩存擊穿熱點數據在緩存中過期,大量并發請求同時擊穿…

使用Rancher在CentOS 環境上部署和管理多Kubernetes集群

引言 隨著容器技術的迅猛發展,Kubernetes已成為容器編排領域的事實標準。然而,隨著企業應用規模的擴大,多集群管理逐漸成為企業IT架構中的重要需求。 Rancher作為一個開源的企業級多集群Kubernetes管理平臺,以其友好的用戶界面和…

【Mini-F5265-OB開發板試用測評】按鍵控制測試

本文介紹了如何使用按鍵控制 MCU 引腳的輸出電平。 原理 由原理圖可知 板載用戶按鍵 K1 和 K2 分別與主控的 PB0 和 PB1 相連。 代碼 #define _MAIN_C_#include "platform.h" #include "gpio_key_input.h" #include "main.h"int main(void) …

用C#最小二乘法擬合圓形,計算圓心和半徑

用C#最小二乘法擬合圓形&#xff0c;計算圓心和半徑 using System; using System.Collections.Generic;namespace ConsoleApp2 {internal class Program{static void Main(string[] args){List<Tuple<double, double>> points new List<Tuple<double, doubl…

四、web安全-行業術語

1. 肉雞 所謂“肉雞”是一種很形象的比喻&#xff0c;比喻那些可以隨意被我們控制的電腦&#xff0c;對方可以是WINDOWS系統&#xff0c;也可以是UNIX/LINUX系統&#xff0c;可以是普通的個人電腦&#xff0c;也可以是大型的服務器&#xff0c;我們可以象操作自己的電腦那樣來…