hBase

来源:http://www.cnblogs.com/Smileing/archive/2017/07/22/7221221.html
-Advertisement-
Play Games

1. hbase簡介 1.1. 什麼是hbase HBASE是一個高可靠性、高性能、面向列、可伸縮的分散式存儲系統,利用HBASE技術可在廉價PC Server上搭建起大規模結構化存儲集群。 HBASE的目標是存儲並處理大型的數據,更具體來說是僅需使用普通的硬體配置,就能夠處理由成千上萬的行和列所組 ...


1. hbase簡介

1.1. 什麼是hbase

HBASE是一個高可靠性、高性能、面向列、可伸縮的分散式存儲系統,利用HBASE技術可在廉價PC Server上搭建起大規模結構化存儲集群。

HBASE的目標是存儲並處理大型的數據,更具體來說是僅需使用普通的硬體配置,就能夠處理由成千上萬的行和列所組成的大型數據。

HBASEGoogle Bigtable的開源實現,但是也有很多不同之處。比如:Google Bigtable利用GFS作為其文件存儲系統,HBASE利用Hadoop HDFS作為其文件存儲系統;Google運行MAPREDUCE來處理Bigtable中的海量數據,HBASE同樣利用Hadoop MapReduce來處理HBASE中的海量數據;Google Bigtable利用Chubby作為協同服務,HBASE利用Zookeeper作為對應。

1.2. 與傳統資料庫的對比

1、傳統資料庫遇到的問題:

1)數據量很大的時候無法存儲

2)沒有很好的備份機制

3)數據達到一定數量開始緩慢,很大的話基本無法支撐

 2、HBASE優勢:

1)線性擴展,隨著數據量增多可以通過節點擴展進行支撐

2)數據存儲在hdfs上,備份機制健全

3)通過zookeeper協調查找數據,訪問速度塊。

1.3. hbase集群中的角色

1、一個或者多個主節點,Hmaster

2、多個從節點,HregionServer

2. hbase原理

2.1.1. 寫流程

1、 clienthregionserver發送寫請求。

2、 hregionserver將數據寫到hlogwrite ahead log)。為了數據的持久化和恢復。

3、 hregionserver將數據寫到記憶體(memstore

4、 反饋client寫成功。

2.1.2. 數據flush過程

1、 memstore數據達到閾值(預設是64M),將數據刷到硬碟,將記憶體中的數據刪除,同時刪除Hlog中的歷史數據。

2、 並將數據存儲到hdfs中。

3、 hlog中做標記點。

2.1.3. 數據合併過程

1、 當數據塊達到4塊,hmaster將數據塊載入到本地,進行合併

2、 當合併的數據超過256M,進行拆分,將拆分後的region分配給不同的hregionserver管理

3、 hregionser宕機後,將hregionserver上的hlog拆分,然後分配給不同的hregionserver載入,修改.META.

4、 註意:hlog會同步到hdfs

2.1.4. hbase的讀流程

1、 通過zookeeper-ROOT- .META.表定位hregionserver

2、 數據從記憶體和硬碟合併後返回給client

3、 數據塊會緩存

2.1.5. hmaster的職責

1、管理用戶對Table的增、刪、改、查操作;

2、記錄region在哪台Hregion server

3、在Region Split後,負責新Region的分配;

4、新機器加入時,管理HRegion Server的負載均衡,調整Region分佈

5、在HRegion Server宕機後,負責失效HRegion Server 上的Regions遷移。

2.1.6. hregionserver的職責

HRegion Server主要負責響應用戶I/O請求,向HDFS文件系統中讀寫數據,是HBASE中最核心的模塊。

HRegion Server管理了很多table的分區,也就是region

2.1.7. client職責

HBASE Client使用HBASERPC機制與HMasterRegionServer進行通信

管理類操作:ClientHMaster進行RPC

數據讀寫類操作:ClientHRegionServer進行RPC

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一,效果圖 二,代碼。 ViewController.h ViewController.m ...
  • 一 sqlite介紹 Sqlite是一種嵌入式資料庫,類似於一個文件系統,是跟程式在一起的。跟mysql等資料庫程式跟數據分離是不一樣的。 應用場景:常用於保存本地配置,類似於本地文件系統,因此他內嵌於linux,安卓,ios等系統中,使用時候不需要重新安裝。例如:手機端的本地聯繫人,歷史訪問記錄等 ...
  • 一、MySQL數據類型 1.數值型 SMALLINT: 2個位元組 INT: 4個位元組 // age int(10) INTEGER:INT的同義詞 BIGINT : 8個位元組 FLOAT : 4個位元組 DOUBLE : 8個位元組 //score float(10,2) 2.字元串(字元)類型 CHA ...
  • 本文記錄在MySQL使用過程中,新掌握的一些知識點,和問題解決方案 ...
  • 剛剛學習了資料庫,並且安裝了MySQL,正當高興之餘,發現我的MySQL出現了閃退的顯現。上網搜了好久的解決方案。最後解決了這個問題,也舒心了。 問題從這裡開始: 接著我打開MySQL,尋思能不能用,結果閃退了。 接著我去服務端,檢查它有沒有開啟,試著開啟,發現也不行。 網上有結果說要刪除Windo ...
  • indexedDB資料庫的基本概念:在HTML5中,新增一種被稱為“indexedDB”的資料庫,該資料庫是一種存儲在客戶端本地的NoSQL資料庫。 顯示效果: ...
  • 一、資料庫的基本概念 資料庫: 以一定方式儲存在一起、能為多個用戶共用、具有儘可能小的冗餘度的特點、是與應用程式彼此獨立的數據集合。 DBMS(DataBase Management System,資料庫管理系統)和資料庫。平時談到“資料庫”可能有兩種含義:MSSQLServer、Oracle等某種 ...
  • 高飛狗這幾天特別鬱悶,不知該如何通過TCP/IP協議連接SQL Server資料庫。好在功夫不負有心人,經過幾天的刻苦研究,終於得到了答案。 高飛狗呼叫UDP1434埠,"叮鈴鈴,叮鈴鈴…" UDP1434埠:您好,我是SQL Server Browser,我的名字是黛絲,請問有什麼可以幫您的嗎 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...