hbase 頁面訪問_HBase

v2-cdfef6e4af38a4d76a5d7423beb4f4ee_1440w.jpg?source=172ae18b

HBase 特點

海量存儲

Hbase 適合存儲 PB 級別的海量數據,在 PB 級別的數據以及采用廉價 PC 存儲的情況下,

能在幾十到百毫秒內返回數據。這與 Hbase 的極易擴展性息息相關。正式因為 Hbase 良好的

擴展性,才為海量數據的存儲提供了便利。

2)列式存儲

這里的列式存儲其實說的是列族存儲,Hbase 是根據列族來存儲數據的。列族下面可以

有非常多的列,列族在創建表的時候就必須指定。

3)極易擴展

Hbase 的擴展性主要體現在兩個方面,一個是基于上層處理能力(RegionServer)的擴

展,一個是基于存儲的擴展(HDFS)。

通過橫向添加 RegionSever 的機器,進行水平擴展,提升 Hbase 上層的處理能力,提升 Hbsae

服務更多 Region 的能力。

備注:RegionServer 的作用是管理 region、承接業務的訪問,這個后面會詳細的介紹通

過橫向添加 Datanode 的機器,進行存儲層擴容,提升 Hbase 的數據存儲能力和提升后端存

儲的讀寫能力。

4)高并發

由于目前大部分使用 Hbase 的架構,都是采用的廉價 PC,因此單個 IO 的延遲其實并不

小,一般在幾十到上百 ms 之間。這里說的高并發,主要是在并發的情況下,Hbase 的單個

IO 延遲下降并不多。能獲得高并發、低延遲的服務。

5)稀疏

稀疏主要是針對 Hbase 列的靈活性,在列族中,你可以指定任意多的列,在列數據為空

的情況下,是不會占用存儲空間的。

HBase 架構

438781747ae610e52355fa41d98c1bf9.png

從圖中可以看出 Hbase 是由 Client、Zookeeper、Master、HRegionServer、HDFS 等

幾個組件組成,下面來介紹一下幾個組件的相關功能:

1)Client

Client 包含了訪問 Hbase 的接口,另外 Client 還維護了對應的 cache 來加速 Hbase 的訪

問,比如 cache 的.META.元數據的信息。

2)Zookeeper

HBase 通過 Zookeeper 來做 master 的高可用、RegionServer 的監控、元數據的入口以及

集群配置的維護等工作。具體工作如下:

通過 Zoopkeeper 來保證集群中只有 1 個 master 在運行,如果 master 異常,會通過競爭

機制產生新的 master 提供服務

通過 Zoopkeeper 來監控 RegionServer 的狀態,當 RegionSevrer 有異常的時候,通過回

調的形式通知 Master RegionServer 上下線的信息

通過 Zoopkeeper 存儲元數據的統一入口地址

3)Hmaster

master 節點的主要職責如下:

為 RegionServer 分配 Region

維護整個集群的負載均衡

維護集群的元數據信息

發現失效的 Region,并將失效的 Region 分配到正常的 RegionServer 上

當 RegionSever 失效的時候,協調對應 Hlog 的拆分

4)HregionServer

HregionServer 直接對接用戶的讀寫請求,是真正的“干活”的節點。它的功能概括如下:

管理 master 為其分配的 Region

處理來自客戶端的讀寫請求

負責和底層 HDFS 的交互,存儲數據到 HDFS

負責 Region 變大以后的拆分

負責 Storefile 的合并工作

5)HDFS

HDFS 為 Hbase 提供最終的底層數據存儲服務,同時為 HBase 提供高可用(Hlog 存儲在

HDFS)的支持,具體功能概括如下:

提供元數據和表數據的底層分布式存儲服務

數據多副本,保證的高可靠和高可用性

1.3 HBase 中的角色

1.3.1 HMaster

功能

1.監控 RegionServer

2.處理 RegionServer 故障轉移

3.處理元數據的變更

4.處理 region 的分配或轉移

5.在空閑時間進行數據的負載均衡

6.通過 Zookeeper 發布自己的位置給客戶端

1.3.2 RegionServer

功能

1.負責存儲 HBase 的實際數據

2.處理分配給它的 Region

3.刷新緩存到 HDFS

4.維護 Hlog

5.執行壓縮

6.負責處理 Region 分片

1.2.3 其他組件

1.Write-Ahead logs

HBase 的修改記錄,當對 HBase 讀寫數據的時候,數據不是直接寫進磁盤,它會在內

存中保留一段時間(時間以及數據量閾值可以設定)。但把數據保存在內存中可能有更高的

概率引起數據丟失,為了解決這個問題,數據會先寫在一個叫做 Write-Ahead logfile 的文件

中,然后再寫入內存中。所以在系統出現故障的時候,數據可以通過這個日志文件重建。

2.Region

Hbase 表的分片,HBase 表會根據 RowKey 值被切分成不同的 region 存儲在 RegionServer

中,在一個 RegionServer 中可以有多個不同的 region。

3.Store

HFile 存儲在 Store 中,一個 Store 對應 HBase 表中的一個列族。

4.MemStore

顧名思義,就是內存存儲,位于內存中,用來保存當前的數據操作,所以當數據保存在

WAL 中之后,RegsionServer 會在內存中存儲鍵值對。

5.HFile

這是在磁盤上保存原始數據的實際的物理文件,是實際的存儲文件。StoreFile 是以 Hfile

的形式存儲在 HDFS 的。

第 2 章 HBase 安裝

2.1 Zookeeper 正常部署

首先保證 Zookeeper 集群的正常部署,并啟動之:

[atguigu@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start

[atguigu@hadoop103 zookeeper-3.4.10]$ bin/zkServer.sh start

[atguigu@hadoop104 zookeeper-3.4.10]$ bin/zkServer.sh start

2.2 Hadoop 正常部署

Hadoop 集群的正常部署并啟動:

[atguigu@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh

[atguigu@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh

2.3 HBase 的解壓

解壓 HBase 到指定目錄:

[atguigu@hadoop102 software]$ tar -zxvf hbase-1.3.1-bin.tar.gz -C

/opt/module

2.4 HBase 的配置文件

修改 HBase 對應的配置文件。

1)hbase-env.sh 修改內容:

export JAVA_HOME=/opt/module/jdk1.8.0_144

export HBASE_MANAGES_ZK=false

2)hbase-site.xml 修改內容:

<configuration>

<property>

<name>hbase.rootdir</name>

<value>hdfs://hadoop102:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<!-- 0.98 后的新變動,之前版本沒有.port,默認端口為 60000 -->

<property>

<name>hbase.master.port</name>

<value>16000</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>hadoop102:2181,hadoop103:2181,hadoop104:2181</

value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/opt/module/zookeeper-3.4.10/zkData</value>

</property>

</configuration>

3)regionservers:

hadoop102

hadoop103

hadoop104

4)軟連接 hadoop 配置文件到 hbase:

[atguigu@hadoop102 module]$ ln -s

/opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

/opt/module/hbase/conf/core-site.xml

[atguigu@hadoop102 module]$ ln -s

/opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml

/opt/module/hbase/conf/hdfs-site.xml

2.5 HBase 遠程發送到其他集群

[atguigu@hadoop102 module]$ xsync hbase/

2.6 HBase 服務的啟動

1.啟動方式 1

[atguigu@hadoop102 hbase]$ bin/hbase-daemon.sh start master

[atguigu@hadoop102 hbase]$ bin/hbase-daemon.sh start regionserver

提示:如果集群之間的節點時間不同步,會導致 regionserver 無法啟動,拋出

ClockOutOfSyncException 異常。

修復提示:

a、同步時間服務

屬性:hbase.master.maxclockskew 設置更大的值

<property>

<name>hbase.master.maxclockskew</name>

<value>180000</value>

<description>Time difference of regionserver from

master</description>

</property>

2.啟動方式 2

[atguigu@hadoop102 hbase]$ bin/start-hbase.sh

對應的停止服務:

[atguigu@hadoop102 hbase]$ bin/stop-hbase.sh

2.7 查看 HBase 頁面

啟動成功后,可以通過“host:port”的方式來訪問 HBase 管理頁面,例如:

http://hadoop102:16010

第 3 章 HBase Shell 操作

3.1 基本操作

1.進入 HBase 客戶端命令行

[atguigu@hadoop102 hbase]$ bin/hbase shell

2.查看幫助命令

hbase(main):001:0> help

3.查看當前數據庫中有哪些表

hbase(main):002:0> list

3.2 表的操作

1.創建表

hbase(main):002:0> create 'student','info'

2.插入數據到表

hbase(main):003:0> put 'student','1001','info:sex','male'

hbase(main):004:0> put 'student','1001','info:age','18'

hbase(main):005:0> put 'student','1002','info:name','Janna'

hbase(main):006:0> put 'student','1002','info:sex','female'

hbase(main):007:0> put 'student','1002','info:age','20'

3.掃描查看表數據

hbase(main):008:0> scan 'student'

hbase(main):009:0> scan 'student',{STARTROW => '1001', STOPROW =>

'1001'}

hbase(main):010:0> scan 'student',{STARTROW => '1001'}

4.查看表結構

hbase(main):011:0> describe ‘student’

5.更新指定字段的數據

hbase(main):012:0> put 'student','1001','info:name','Nick'

hbase(main):013:0> put 'student','1001','info:age','100'

6.查看“指定行”或“指定列族:列”的數據

hbase(main):014:0> get 'student','1001'

hbase(main):015:0> get 'student','1001','info:name'

7.統計表數據行數

hbase(main):021:0> count 'student'

8.刪除數據

刪除某 rowkey 的全部數據:

hbase(main):016:0> deleteall 'student','1001'

刪除某 rowkey 的某一列數據:

hbase(main):017:0> delete 'student','1002','info:sex'

9.清空表數據

hbase(main):018:0> truncate 'student'

提示:清空表的操作順序為先 disable,然后再 truncate。

10.刪除表

首先需要先讓該表為 disable 狀態:

hbase(main):019:0> disable 'student'

然后才能 drop 這個表:

hbase(main):020:0> drop 'student'

提示:如果直接 drop 表,會報錯:ERROR: Table student is enabled. Disable it first.

11.變更表信息

將 info 列族中的數據存放 3 個版本:

hbase(main):022:0> alter 'student',{NAME=>'info',VERSIONS=>3}

hbase(main):022:0> get

'student','1001',{COLUMN=>'info:name',VERSIONS=>3}

第 4 章 HBase 數據結構

4.1 RowKey

與 nosql 數據庫們一樣,RowKey 是用來檢索記錄的主鍵。訪問 HBASE table 中的行,只

有三種方式:

1.通過單個 RowKey 訪問

2.通過 RowKey 的 range(正則)

3.全表掃描

RowKey 行鍵 (RowKey)可以是任意字符串(最大長度是 64KB,實際應用中長度一般為

10-100bytes),在 HBASE 內部,RowKey 保存為字節數組。存儲時,數據按照 RowKey 的字

典序(byte order)排序存儲。設計 RowKey 時,要充分排序存儲這個特性,將經常一起讀取的

行存儲放到一起。(位置相關性)

4.2 Column Family

列族:HBASE 表中的每個列,都歸屬于某個列族。列族是表的 schema 的一部 分(而列

不是),必須在使用表之前定義。列名都以列族作為前綴。例如 courses:history,courses:math

都屬于 courses 這個列族。

4.3 Cell

由{rowkey, column Family:columu, version} 唯一確定的單元。cell 中的數據是沒有類型

的,全部是字節碼形式存貯。

關鍵字:無類型、字節碼

4.4 Time Stamp

HBASE 中通過 rowkey 和 columns 確定的為一個存貯單元稱為 cell。每個 cell 都保存 著

同一份數據的多個版本。版本通過時間戳來索引。時間戳的類型是 64 位整型。時間戳可以

由 HBASE(在數據寫入時自動 )賦值,此時時間戳是精確到毫秒 的當前系統時間。時間戳

也可以由客戶顯式賦值。如果應用程序要避免數據版 本沖突,就必須自己生成具有唯一性

的時間戳。每個 cell 中,不同版本的數據按照時間倒序排序,即最新的數據排在最前面。

為了避免數據存在過多版本造成的的管理 (包括存貯和索引)負擔,HBASE 提供 了兩

種數據版本回收方式。一是保存數據的最后 n 個版本,二是保存最近一段 時間內的版本(比

如最近七天)。用戶可以針對每個列族進行設置。

4.5 命名空間

命名空間的結構:

12195c6f173dfa6cf223dc558f937922.png

1) Table:表,所有的表都是命名空間的成員,即表必屬于某個命名空間,如果沒有指定,

則在 default 默認的命名空間中。

2) RegionServer group:一個命名空間包含了默認的 RegionServer Group。

3) Permission:權限,命名空間能夠讓我們來定義訪問控制列表 ACL(Access Control List)。

例如,創建表,讀取表,刪除,更新等等操作。

4) Quota:限額,可以強制一個命名空間可包含的 region 的數量。

HBase 原理

5.1 讀流程

HBase 讀數據流程如圖 3 所示

ad61c9b1a09a3aa9c090ef6414b83879.png

1)Client 先訪問 zookeeper,從 meta 表讀取 region 的位置,然后讀取 meta 表中的數據。meta

中又存儲了用戶表的 region 信息;

2)根據 namespace、表名和 rowkey 在 meta 表中找到對應的 region 信息;

3)找到這個 region 對應的 regionserver;

4)查找對應的 region;

5)先從 MemStore 找數據,如果沒有,再到 BlockCache 里面讀;

6)BlockCache 還沒有,再到 StoreFile 上讀(為了讀取的效率);

7)如果是從 StoreFile 里面讀取的數據,不是直接返回給客戶端,而是先寫入 BlockCache,

再返回給客戶端。

5.2 寫流程

Hbase 寫流程如圖 2 所示

a27b6a1395569dc5f44c203b00258708.png

1)Client 向 HregionServer 發送寫請求;

2)HregionServer 將數據寫到 HLog(write ahead log)。為了數據的持久化和恢復;

3)HregionServer 將數據寫到內存(MemStore);

4)反饋 Client 寫成功。

5.3 數據 Flush 過程

1)當 MemStore 數據達到閾值(默認是 128M,老版本是 64M),將數據刷到硬盤,將內存

中的數據刪除,同時刪除 HLog 中的歷史數據;

2)并將數據存儲到 HDFS 中;

3)在 HLog 中做標記點。

5.4 數據合并過程

1)當數據塊達到 4 塊,Hmaster 觸發合并操作,Region 將數據塊加載到本地,進行合并;

2)當合并的數據超過 256M,進行拆分,將拆分后的 Region 分配給不同的 HregionServer

管理;

3)當 HregionServer 宕機后,將 HregionServer 上的 hlog 拆分,然后分配給不同的 HregionServer

加載,修改.META.;

4)注意:HLog 會同步到 HDFS。

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

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

相關文章

深入理解L1、L2正則化

深入理解L1、L2正則化 轉自&#xff1a;【面試看這篇就夠了】L1、L2正則化理解 一、概述 正則化&#xff08;Regularization&#xff09;是機器學習中一種常用的技術&#xff0c;其主要目的是控制模型復雜度&#xff0c;減小過擬合。正則化技術已經成為模型訓練中的常用技術&a…

rk3128屏幕占空比參數設置_瑞芯微RK3128芯片怎么樣 性能全面解讀

最近&#xff0c;筆者聽說一款搭載瑞芯微RK3128芯片方案的盒子問市了&#xff0c;打聽了一下才知道還真有其事&#xff0c;這款上市的RK3128盒子叫做開博爾M1&#xff0c;報價229元&#xff0c;這個價位在如今的四核網絡機頂盒市場可謂是不多見&#xff0c;但是這款芯片的性能怎…

機器學習中的概率模型

機器學習中的概率模型 轉自&#xff1a;https://zhuanlan.zhihu.com/p/164551678 機器學習中的概率模型 概率論&#xff0c;包括它的延伸-信息論&#xff0c;以及隨機過程&#xff0c;在機器學習中有重要的作用。它們被廣泛用于建立預測函數&#xff0c;目標函數&#xff0c;以…

訪問云服務器儲存的mp4_訪問云服務器儲存的mp4

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":6,"count":6}]},"card":[{"des":"云服務器 ECS(Elastic Compute Service)是一…

先驗、后驗、似然

先驗、后驗、似然 先驗分布、后驗分布和似然函數 本節轉自&#xff1a;先驗分布、后驗分布、似然估計這幾個概念是什么意思&#xff0c;它們之間的關系是什么&#xff1f; 通俗解釋 先驗分布&#xff1a;根據一般的經驗認為隨機變量應該滿足的分布。先驗分布是你瞎猜參數服從啥…

max std value 宏_Rust Macro/宏 新手指南

Rust語言最強大的一個特點就是可以創建和利用宏/Macro。不過創建 Rust宏看起來挺復雜&#xff0c;常常令剛接觸Rust的開發者心生畏懼。這片文章 的目的就是幫助你理解Rust Macro的基本運作原理&#xff0c;學習如何創建自己的 Rust宏。相關鏈接&#xff1a;在線學編程 - 匯智網…

高斯分布及其極大似然估計

高斯分布及其極大似然估計 高斯分布 一維高斯分布 一維高斯分布的概率密度函數為&#xff1a; N(μ,σ2)12πσexp?(?(x?μ)22σ2)N(\mu,\sigma^2)\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(x-\mu)^2}{2\sigma^2}) N(μ,σ2)2π?σ1?exp(?2σ2(x?μ)2?) 多維高斯分布…

農林資金 大數據審計案例_大數據審計:現狀與發展

大數據審計&#xff1a;現狀與發展【摘要】傳統手工環境下&#xff0c;審計人員常用的審計方法包括檢查法、觀察法、重新計算法、外部調查法、分析法、鑒定法等。隨著信息技術的發展&#xff0c;被審計單位的運行越來越依賴于信息化環境。信息化環境下審計工作發生了巨大的變化…

商標45類分類表明細表_2019版注冊商標分類表,商標注冊45類范圍明細

注冊商標的時候都是要確定具體的產品或服務的&#xff0c;目前我國商標分類是用《類似商品和服務區分表–基于尼斯分類第十一版》2019年版這本分類書。這本分類表也是全球通用的分類表&#xff0c;商標分類總共有45個類別&#xff0c;1-34類是產品類、35-45類是服務類。這45個大…

高維高斯分布基礎

高維高斯分布基礎 多位高斯分布的幾何理解 多維高斯分布表達式為&#xff1a; p(x∣μ,Σ)1(2π)p/2∣Σ∣1/2e?12(x?μ)TΣ?1(x?μ)p(x|\mu,\Sigma)\frac{1}{(2\pi)^{p/2}|\Sigma|^{1/2}}e^{-\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu)} p(x∣μ,Σ)(2π)p/2∣Σ∣1/21?…

angularjs sill 創建項目_開源項目——博客項目MyBlogs.Core,基于.NET 5

個人博客站項目源碼&#xff0c;高性能低占用的博客系統&#xff0c;這也許是我個人目前寫過的性能最高的web項目了 。目前日均處理請求數80-120w次&#xff0c;同時在線活躍用戶數30-100人&#xff0c;數據量累計已達到100多萬條&#xff0c;數據庫Redis網站主程序同時運行在一…

懷舊服推薦配置_【懷舊服】狂暴戰P4畢業裝備推薦

在懷舊服開啟P4階段之后&#xff0c;狂暴戰玩家的輸出也得到了進一步的提升。當然&#xff0c;狂暴戰想要打出足夠的傷害離不開對應的裝備&#xff0c;現在就給大家介紹下狂暴戰P4階段的BIS裝備。散件裝備狂暴戰在這一階段依舊有非常不錯的散件裝備&#xff0c;個人建議玩家入手…

高斯混合模型GMM及EM迭代求解算法(含代碼實現)

高斯混合模型GMM及EM迭代求解算法&#xff08;含代碼實現&#xff09; 高斯分布與高斯混合模型 高斯分布 高斯分布大家都很熟悉了&#xff0c;下面是一元高斯分布的概率密度函數&#xff08;Probability Density Function&#xff0c;PDF&#xff09;&#xff1a; P(x)N(μ,…

十個模塊_專欄 | ABAQUS Part模塊的十個小技巧

作者介紹星辰_北極星2012年開始從事Abaqus仿真相關工作&#xff0c;服務大小課題逾百項; 主要仿真領域&#xff1a;石油工程、巖土工程和金屬加工工藝&#xff1b; 重點研究方向&#xff1a;ABAQUS GUI二次開發、固體力學、斷裂以及損傷等。Abaqus有部件(Part)和裝配體(Assembl…

深度學習時代的視頻理解綜述

深度學習時代的視頻理解綜述 本文為b站bryanyzhu老師四期視頻理解相關論文解讀的匯總圖文筆記。 我們先精讀深度學習時代視頻理解領域最為重要的兩篇論文&#xff1a;雙流網絡和 I3D。它們分別是領域內兩大類方法雙流&#xff08;利用光流&#xff09;網絡和 3D CNN 網絡的代…

typec擴展塢hdmi沒反應_typec擴展塢轉hdmi/vga多功能網口usb轉換器蘋果華為電腦matebook6元優惠券券后價26.8元...

★typec擴展塢轉hdmi/vga多功能網口usb轉換器蘋果華為電腦matebook&#xff0c;6元拼多多優惠券★券后價26.8元★★★typec擴展塢轉hdmi/vga多功能網口usb轉換器蘋果華為電腦matebook&#xffe5;26.8元&#xffe5;32.8元已拼5097件點擊搶購猜你喜歡[速發]喵喵機P1熱敏打印機手…

NLP任務概覽

NLP任務概覽 本文為臺灣大學李宏毅老師視頻課程筆記。本課程介紹了 &#xff08;2020年&#xff09;NLP 領域常見的 17 種任務。本文只會從輸入輸出的角度概覽多種 NLP 任務&#xff0c;并簡介它們的常見做法&#xff0c;并不會細致地介紹每個任務模型的具體細節。 兩種模式與…

大物實驗總結模板_期中總結大會amp;期末動員大會

在逐漸降溫的雙創周麥包坊的期中總結暨期末動員大會來啦在學長團和小麥包的分享下希望大家重新啟航奮斗期末板塊一學長團經驗分享面對本學期十二門科目&#xff0c;作為過來人的前輩們給出很多對本學期各科目的針對性建議&#xff0c;可謂是干貨滿滿&#xff0c;快來瞧瞧吧&…

PTMs:NLP預訓練模型的全面總結

PTMs&#xff1a;NLP預訓練模型的全面總結 轉自&#xff1a;https://zhuanlan.zhihu.com/p/115014536 預訓練模型(Pre-trained Models,PTMs) 的出現將NLP帶入了一個全新時代。2020年3月18日&#xff0c;邱錫鵬老師發表了關于NLP預訓練模型的綜述《Pre-trained Models for Natur…

python中提取幾列_Python一鍵提取PDF中的表格到Excel(實例50)

從PDF文件獲取表格中的數據&#xff0c;也是日常辦公容易涉及到的一項工作。一個一個復制吧&#xff0c;效率確實太低了。用Python從PDF文檔中提取表格數據&#xff0c;并寫入Excel文件&#xff0c;灰常灰常高效。上市公司的年報往往包含幾百張表格&#xff0c;用它作為例子再合…