HBASE學習(一)

1.HBASE基礎架構,

1.1 參考:

HBase集群架構與讀寫優化:理解核心機制與性能提升-CSDN博客

1.2問題:

1.FLUSH對hbase的影響

2. HLog和memstore的區別

? ? ?hlog中存儲的是操作記錄,比如寫、刪除。而memstor中存儲的是寫入的表數據?

2.HBASE與HDFS的關系

HBASE的主和從分別稱為HMaster和RegionServer。其數據結構和表(表中又分為行和列)。支持實時讀寫。(如何實現的??)

HDFS的主和從分別稱為NameNode和DataNode。其數據結構為hfile文件,無表的概念。不支持實時讀寫,用于批處理和高吞吐量的讀寫

  • HDFS 是 Hadoop 的分布式存儲系統,提供高吞吐量的數據訪問。
  • 特點:
    1. 數據以文件塊(block)的形式分布在多個 DataNode 上。
    2. 支持數據冗余和容錯,默認情況下每個文件塊有 3 個副本(所以是HDFS機制實現了數據備份)。
    3. 主從架構:NameNode 負責元數據管理,DataNode 負責實際的數據存儲。
  • 與 HBase 的關系:
    • HBase 依賴 HDFS 存儲數據和元數據(如表的 Region 數據、WAL 日志等)。
    • HDFS 提供了可靠的存儲基礎,但不支持實時隨機讀寫,這是 HBase 的補充功能。
  • HBase 是一個基于 HDFS 的分布式 NoSQL 數據庫,專為海量數據的實時隨機讀寫設計。
  • 特點:
    1. 數據按行存儲,基于鍵值對。
    2. 支持超大規模表(行數和列數可以達到數十億級)。
    3. 提供高性能的隨機讀寫操作。
  • 依賴組件:
    1. HDFS:用于持久化存儲表數據和 WAL(Write-Ahead Log)日志。
    2. ZooKeeper:用于集群管理、故障恢復、元數據存儲和分布式協調。
  • HBase 的補充功能:
    • 提供高性能的隨機讀寫,而 HDFS 主要用于批處理和高吞吐量的讀寫。

2. NameNode 和 HMaster是否等價

NameNode 和 HMaster 不等價,它們是分布式系統中兩個獨立的組件:

  • NameNode 是 HDFS 的管理節點,關注的是文件存儲。
  • HMaster 是 HBase 的管理節點,關注的是表和 RegionServer 的管理

? 對比NameNode 和 HMaster

特性NameNodeHMaster
系統所屬HDFSHBase
作用管理文件系統元數據和塊分布管理 HBase 表和 RegionServer
元數據存儲存儲在內存中(文件元數據)部分存儲在 HDFS 和 ZooKeeper
與數據存儲關系指揮 DataNode 存儲文件塊指揮 RegionServer 存儲 HBase 數據
高可用性支持 Active/Standby NameNode支持 Active/Standby HMaster

3.hdfs不支持實時讀寫,hbase如何做到可以支持實時讀寫

讀寫流程的優化

  • 寫流程(先寫入內存,存儲到一定量后才寫入hfile)
    1. 數據寫入 WAL(順序寫 HDFS)。
    2. 數據寫入 MemStore(內存操作,低延遲)。
    3. 數據刷入 HDFS(按照rowkey順序寫 HFile,提升了使得后續的讀速度)。
  • 讀流程
    1. 查詢數據時,優先從 MemStore 或 BlockCache(經常讀取的數據會存儲在BlockCache中) 中讀取。
    2. 如果數據不在內存中,則從 HFile(HDFS)中加載。
    3. 查詢結果可以緩存到 BlockCache 中,加速后續訪問。

? ? ?總結原因就是:1.添加了內存作為中間緩沖區;2.數據按照rowkey順序寫入hfile

Zookeeper和Hbase的關系

1.zookeeper在HBASE 中的作用時什么?

  • 記錄HBase 集群的運行狀態
    • 活躍的 HMaster 和備份 HMaster 的狀態。
    • 活躍的 RegionServer 列表。
  • 記錄表和 Region 的元數據的位置
    • hbase:meta 表的位置(hbase:meta 是存儲表和 Region 元數據的特殊表)。
    • 某些分布式鎖和協調信息,例如 Region 的遷移狀態。
  • 故障恢復和選主
    • 在 HMaster 故障時,ZooKeeper 會負責進行新主節點的選舉。

2.讀寫數據時,為什么要從zookeeper中獲取hbase的元數據,hbase的元數據時存儲在zookeeper中嗎?

? ?HBASE的元數據存儲的HDFS中,但是元數據在HDFS中的存儲位置卻存儲在zookeeper中,所以想訪問元數據時,首先需要訪問zookeeper。

同時,HMaster 會將表和 Region 的元數據加載到內存中以加速操作,但這些信息的持久化存儲在 HDFS 和 ZooKeeper 中。

HBASE存儲

1.hbase中列族對存儲有什么影響

每個列族可以獨立設置存儲參數(如壓縮、版本控制、TTL 等),這會影響存儲的大小和性能。

HBase 為每個列族分配獨立的塊緩存(block cache)

一個region上,同一個列族的數據存儲在一個或多個 HFile 中。但是同一個列的數據只存儲在一個文件中。同一列族的數據存儲在同一個磁盤上

hfile中每條數據的鍵(RowKey+Column Family+Column+Timestamp)和對應的值存儲在同一個文件中。

2.hbase內部是如何實現備份的,即數據被損壞后,如何復原

? ?hbase數據分為兩部分:存儲到內存中的和固化到hfile文件中的。

2.1)RegionServer崩潰,則內存中數據會丟失,但是WAL(Write-Ahead Log)文件中會存儲所有內存中的數據,所以Master將崩潰的 RegionServer 的 WAL 日志分配給其他 RegionServer,通過重放 WAL 恢復數據到內存即可。

2.2)hfile文件損壞,由于每個數據塊(Block)在 HDFS 上默認會存儲 3 個副本,所以只要有未損壞的hfile文件即可。HDFS 會自動從副本中修復損壞的文件。如果副本全部丟失,可使用快照或備份文件恢復(需人為定期備份)

2.3)如果整個集群毀壞(需要人為介入)

  • 從跨集群復制的備份集群恢復。
  • 從定期備份的快照或 HDFS 數據恢復。

? ??

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

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

相關文章

Flutter:封裝ActionSheet 操作菜單

演示效果圖 action_sheet_util.dart import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:demo/common/index.dart;class ActionSheetUtil {/// 底部操作表/// [context] 上下文/// [title] 標題/// [items] 選項列表 …

【Rust練習】28.use and pub

練習題來自:https://practice-zh.course.rs/crate-module/use-pub.html 1 使用 use 可以將兩個同名類型引入到當前作用域中,但是別忘了 as 關鍵字. use std::fmt::Result; use std::io::Result;fn main() {}利用as可以將重名的內容取別名:…

Nginx 可觀測性最佳實踐

Nginx 介紹 Nginx 是一個開源、輕量級、高性能的 HTTP 和反向代理服務器,也可以用于 IMAP/POP3 代理服務器。Nginx 因其采用的異步非阻塞工作模型,使其具備高并發、低資源消耗的特性。高度模塊化設計也使得 Nginx 具備很好的擴展性,在處理靜…

《汽車維護與修理》是什么級別的期刊?是正規期刊嗎?能評職稱嗎?

?問題解答: 問:《汽車維護與修理》是不是核心期刊? 答:不是,是知網收錄的正規學術期刊。 問:《汽車維護與修理》級別? 答:國家級。主管單位:中國汽車維修行業協會 …

PHP智慧小區物業管理小程序

🌟智慧小區物業管理小程序:重塑社區生活,開啟便捷高效新篇章 🌟 智慧小區物業管理小程序是一款基于PHPUniApp精心雕琢的智慧小區物業管理小程序,它猶如一股清新的科技之風,吹進了現代智慧小區的每一個角落…

洛谷P4868 Preprefix sum

洛谷傳送門 題目描述 前綴和(prefix sum)𝑆𝑖。 前前綴和(preprefix sum)則把 𝑆𝑖 作為原序列再進行前綴和。記再次求得前綴和第 𝑖 個是 𝑆&#x1d446…

機器學習中的凸函數和梯度下降法

一、凸函數 在機器學習中,凸函數 和 凸優化 是優化問題中的重要概念,許多機器學習算法的目標是優化一個凸函數。這些概念的核心思想圍繞著優化問題的簡化和求解效率。下面從簡單直觀的角度來解釋。 1. 什么是凸函數? 數學定義 一個函數 f…

vue3使用vue-native-websocket-vue3通訊

vue3使用vue-native-websocket-vue3通訊 插件使用一、啟用Vuex集成1.在mian.js中2.store/index.js文件中3.要websocket使用的頁面 二、啟用Piain集成1.在mian.js中2.根目錄下創建store文件夾,分別創建PiniaType.ts,store.ts,useSocketStore.t…

Windows圖形界面(GUI)-QT-C/C++ - Qt控件與布局系統詳解

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> ???鏈接點擊跳轉博客主頁 目錄 Qt布局系統(Layouts) 布局管理器基礎 高級布局技巧 嵌套布局 設置間距和邊距 常用控件詳解 按鈕類控件 QPushButton (標準按鈕) QRadioButton (單選按鈕) QCheckBox (復選框) …

深入理解 ECMAScript 2024 新特性:字符串 isWellFormed 方法

ECMAScript 2024 引入了一個新的字符串實例方法:String.prototype.isWellFormed。這一新增功能是為了幫助開發者更容易地驗證字符串是否為有效的 Unicode 文本。本文將詳細介紹這一方法的使用場景、實現原理及其在實際應用中的價值。 String.prototype.isWellFormed…

[Linux]Docker快速上手操作教程

前言 以下命令并不是docker的所有,僅涉及日常使用時最最常用的命令。 目的之一時給入門的朋友熟悉學習,其二時我自己偶爾使用時備忘。 一、概念 簡單介紹下docker的相關概念: 鏡像:Docker 鏡像是一個輕量級、可執行的獨立軟件…

【算法學習筆記】32:篩法求解歐拉函數

上節學習的是求一個數 n n n的歐拉函數,因為用的試除法,所以時間復雜度是 O ( n ) O(\sqrt{n}) O(n ?),如果要求 m m m個數的歐拉函數,那么就會花 O ( m n ) O(m \sqrt{n}) O(mn ?)的時間。如果是求連續一批數的歐拉函數&#x…

生產管理看板助力節能科技公司實現數據自動化管理

在節能科技公司的生產過程中,數據管理的自動化是提高生產效率和產品質量的關鍵。然而,許多公司在數據記錄、展示、對比和存檔方面仍面臨諸多痛點,如產品檢測數據無法自動記錄、缺乏直觀的產線狀態展示、檢測數據對比繁瑣耗時,以及…

leetcode 115. 不同的子序列

題目:115. 不同的子序列 - 力扣(LeetCode) 動態規劃問題,f[i][j]表示s的第i個元素匹配到t的第j個元素,有多少種結果 f[i][j] f[i - 1][j] (s[i] t[j] ? f[i - 1][j - 1] : 0) 答案就是 f[s.length() - 1][t.len…

【C++】B2112 石頭剪子布

博客主頁: [小????????] 本文專欄: C 文章目錄 💯前言💯題目描述游戲規則:輸入格式:輸出格式:輸入輸出樣例:解題分析與實現 💯我的做法實現邏輯優點與不足 &#x1f4af…

內存快照:宕機后Redis如何實現快速恢復?

文章目錄 給哪些內存數據做快照?快照時數據能修改嗎?可以每秒做一次快照嗎?小結每課一問 更多redis相關知識 上節課,我們學習了 Redis 避免數據丟失的 AOF 方法。這個方法的好處,是每次執行只需要記錄操作命令,需要持…

系統架構設計師考點—項目管理

一、備考指南 項目管理主要考查的是進度管理、軟件配置管理、質量管理、風險管理等相關知識,近幾年都沒有考查過,但是有可能在案例分析中考查關鍵路徑的技術問題,考生了解為主。 二、重點考點 1、項目的十大管理(速記&#xff1…

iOS - Objective-C 底層實現中的哈希表

1. 關聯對象存儲&#xff08;AssociationsHashMap&#xff09; // 關聯對象的哈希表實現 typedef DenseMap<const void *, ObjcAssociation> ObjectAssociationMap; typedef DenseMap<DisguisedPtr<objc_object>, ObjectAssociationMap> AssociationsHashMa…

兩分鐘解決 :![rejected] master -> master (fetch first) , 無法正常push到遠端庫

目錄 分析問題的原因解決 分析問題的原因 在git push的時候莫名遇到這種情況 若你在git上修改了如README.md的文件。由于本地是沒有README.md文件的&#xff0c;所以導致 遠端倉庫git和本地不同步。 將遠端、本地進行合并就可以很好的解決這個問題 注意&#xff1a;直接git pu…

Ubuntu Server 24.04 配置靜態IP

Ubuntu Server 24.04 配置靜態IP 提示&#xff1a;基于Ubuntu Server 24.04進行配置 文章目錄 Ubuntu Server 24.04 配置靜態IP一、查看網卡信息二、修改網卡信息三、使網卡配置生效四、測試 一、查看網卡信息 使用命令 ip a lo 為本地回環地址 ens33 真實網卡地址 shanfengubu…