自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分布式數(shù)據(jù)庫 Hbase 的高可用管理和監(jiān)控

運(yùn)維 系統(tǒng)運(yùn)維 分布式
HBase 作為 BigTable 的一個開源實(shí)現(xiàn),隨著其應(yīng)用的普及,越來越被各大企業(yè)應(yīng)用于海量數(shù)據(jù)系統(tǒng)中。本文將幫助讀者在大數(shù)據(jù)云計(jì)算 Hadoop 集群應(yīng)用中利用 HBase 更加高效、直觀、便捷地進(jìn)行存儲,查詢和優(yōu)化海量數(shù)據(jù)。

Apache HBase 的基本知識

2006 年 11 月,Google 發(fā)表了一篇名為《 BigTable 》論文 , 2007 年 2 月,Hadoop 的開發(fā)人員對其進(jìn)行實(shí)現(xiàn)并命名為 HBase。 HBase 是基于 Hadoop 之上的一種新型的基于列存儲的開源數(shù)據(jù)存儲架構(gòu),用于解決大數(shù)據(jù)問題,是 Hadoop 的分布式數(shù)據(jù)庫。

HBase 現(xiàn)在已經(jīng)比較成熟,***的穩(wěn)定版本是 0.94.x。HBase 已經(jīng)被很多大公司采用,如 Facebook, Twitter,Adobe, Cloudera, IBM, 等等。HBase 不是傳統(tǒng) RDBMS 意義上的基于列的數(shù)據(jù)庫,而是利用磁盤進(jìn)行列存儲格式的數(shù)據(jù)庫,其優(yōu)勢在于提供基于關(guān)鍵字的特定列和順序范圍的快速訪問。

HBase 有三個重要的組件:客戶端庫,一個 master server(可以配置多個備用 master,后文將對此進(jìn)行詳細(xì)描述)以及多個 Region Server。Master 負(fù)責(zé)分配 Region 到各個不同的 Region Server 上,Region Server 負(fù)責(zé)存儲實(shí)際的數(shù)據(jù)。同時,HBase 通過使用 ZooKeeper,一種可靠,高可用,一致性的分布式協(xié)同服務(wù)來幫助其完成相應(yīng)的任務(wù)。HBase 集群管理員可以通過在系統(tǒng)運(yùn)行過程中添加和刪除 Region Server 節(jié)點(diǎn)來調(diào)節(jié)改變工作負(fù)載。HBase 以 HFile 作為存儲數(shù)據(jù)的基本格式,其底層的文件系統(tǒng)默認(rèn)采用 HDFS。

圖 1. HBases 基本架構(gòu)

圖 1. 顯示了不同的組件如 HDFS,Zookeeper 是怎樣與 HBase 一起協(xié)調(diào)工作的。Master Server 負(fù)責(zé)處理跨 Region Server 的 regions 數(shù)據(jù)的導(dǎo)入平衡,卸載繁忙的 Region Server 負(fù)擔(dān),將 region 轉(zhuǎn)移到更空余的 Region Server 上。

HBase Master 不負(fù)責(zé)實(shí)際的數(shù)據(jù)存儲,它協(xié)調(diào)導(dǎo)入平衡,維護(hù)集群的狀態(tài),維護(hù) schema 的更改和 metadata 元數(shù)據(jù)操作,如創(chuàng)建表和列族(column families),但從不提供任何數(shù)據(jù)服務(wù)。

Region servers 負(fù)責(zé)加載和維護(hù) region,包括處理對其管理的 region 的所有讀寫請求,以及 region 大小增長到超過配置閥值的時候?qū)ζ溥M(jìn)行切分。

客戶端通過與 Zookeeper 通信獲取到其需要進(jìn)行讀寫操作的 region 所在的 Region Server 之后,將直接與 Region Server 通信,并由 Region Server 處理所有相關(guān)的請求。#p#

IBM BigInsights 架構(gòu)中的 HBase

IBM Big Data(大數(shù)據(jù))產(chǎn)品 InfoSphere BigInsights 是大數(shù)據(jù)管理與分析平臺, 其底層架構(gòu)也采用了 Hadoop 和 HBase 對結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲和查詢。

BigInsightsz 集群軟件層次中的 HBase

BigInsights 整合了很多已有的 Hadoop 開源組件,如 HDFS, MapReduce, HBase, Zookeeper 等,將它們很好的融入 BigInsights 軟件體系,并與其他 BigInsights 的組件一起協(xié)同工作在同一個平臺上。 HBase 被用作 BigInsights 的存儲數(shù)據(jù)庫,Zookeeper 被用作 BigInsights 的服務(wù)協(xié)同組件。如果要使用 HBase, 我們需要同時安裝 Hadoop, Zookeeper, 因?yàn)?HBase 采用 Hadoop 作為其文件系統(tǒng),采用 Zookeeper 作為其服務(wù)協(xié)同支持。

當(dāng)把 BigInsights 部署到一個集群上時,軟件層次的結(jié)構(gòu)如圖 2. 所示:

圖 2. BigInsights 中 Hadoop 開源組件列表

HBase 安裝和配置

BigInsights 產(chǎn)品集成了經(jīng)過 IBM JDK 編譯和一定改進(jìn)擴(kuò)展后的 HBase。在 BigInsights 產(chǎn)品的安裝過程中可以通過安裝界面選擇和配置 HBase, 配置內(nèi)容包括指定 HBase 安裝路徑,日志目錄,指定集群中 HBase Master 和 HBase Regionservers 節(jié)點(diǎn)以及服務(wù)端口。HBase 的二進(jìn)制軟件包默認(rèn)安裝和配置在 BigInsights 集群的所有節(jié)點(diǎn)上,也就是說安裝完 BigInsights 以后的每個 BigInsights 節(jié)點(diǎn)都可以作為 HBase 的客戶端使用。

在安裝 BigInsights 之前,需要從解壓以后的根目錄下運(yùn)行 start.sh 腳本,然后在瀏覽器中輸入 URL http://your-server:8300/Install/ 打開安裝向?qū)В惭b向?qū)?**您完成后續(xù)的安裝步驟,安裝過程將包括:安裝類型(選擇多節(jié)點(diǎn)分布式集群安裝和配置)選擇,文件系統(tǒng)選擇,組,用戶名及 SSH 配置,指定集群節(jié)點(diǎn),組件安裝,安全類型選擇等,下面給出具體的 HBase 以及 Zookeeper 的安裝配置實(shí)例。

圖 3. HBase 安裝和配置

圖 4. Zookeeper 安裝和配置

***,當(dāng)安裝完成以后,點(diǎn)擊“Finish”或者在后臺命令行運(yùn)行“start.sh shutdown”關(guān)閉安裝向?qū)А?p#

IBM 對 HBase 的改進(jìn)和擴(kuò)展

BigInsights ***限度的提供了統(tǒng)一的,IBM 特有的 HBase 管理功能,包括用戶界面以及后臺命令行管理模式。這樣,用戶可以通過簡單的界面操作或者后臺命令來啟停 / 查看 HBase 集群,而不用關(guān)心具體的實(shí)現(xiàn)細(xì)節(jié)。

與此同時,IBM 還提供了統(tǒng)一的用戶界面和添加、刪除節(jié)點(diǎn)命令來支持 HBase 集群的可伸縮性。

另外,HBase Master 多結(jié)點(diǎn)功能的實(shí)現(xiàn),提供并保證了 HBase 在 BigInsights 中的高可用性。以下將對這些改進(jìn)和擴(kuò)展功能進(jìn)行展開介紹。

IBM BigInsights 中的 HBase 集群管理和監(jiān)控

BigInsights 集群為 HBase 提供了完備的管理功能,包括統(tǒng)一的 HBase 用戶管理界面,后臺命令行管理模式,HBase 服務(wù)狀態(tài)監(jiān)控,檢查、同步、添加、刪除、啟動、停用、查看 HBase 服務(wù),反向代理 UI,查看 HDFS 中的 HBase,HBase 應(yīng)用程序提交等。

Web 界面管理 HBase 服務(wù)狀態(tài)

通過 http:// 主節(jié)點(diǎn)主機(jī)名或 IP:8080/data/html/index.html 進(jìn)入 BigInsights Web 管理控制臺。使用 BigInsights 安裝所有模塊包括 Hadoop、Hbase、Zookeeper、Oozie、Flume 等。(注意:如果您使用的是 BigInsights Basic 版本,請使用 http:// 主節(jié)點(diǎn)主機(jī)名或 IP:8080/BigInsights 打開控制臺。下文截圖全部基于 Enterprise 版本,Basic 版本會略有差別。)

圖 5. BigInsights Web 管理界面

在 BigInsights Web 管理界面中點(diǎn)擊“Cluster Status”頁面,可以實(shí)現(xiàn)對 HBase, Zookeeper 以及其他模塊狀態(tài)的監(jiān)控、啟停。

“Cluster Status”頁面左上方分別列出 BigInsights 集群中所有組件的服務(wù)的運(yùn)行狀態(tài)。可以看到所有服務(wù)目前都處于正常的運(yùn)行狀態(tài)中。選擇“HBase”,可以查看 HBase 集群的服務(wù)信息,如圖 8,列出了 HBase 的簡要信息,包括 HBase 集群狀態(tài) (Start/Stop),HBase Master 節(jié)點(diǎn)及進(jìn)程號,平均 Load 數(shù),HBase 集群中生存的 Region Server 個數(shù),死亡的 Region Server 個數(shù)等。

圖 6. HBase 服務(wù)狀態(tài)監(jiān)控

圖 7. HBase Master 服務(wù)狀態(tài)監(jiān)控及啟停

圖 8. HBase Region Servers 服務(wù)狀態(tài)監(jiān)控及啟停

此外,BigInsights 提供了統(tǒng)一的命令行接口對集群的組件進(jìn)行管理。用戶可以方便的使用命令行來檢查 HBase 集群使用的健康狀態(tài),增加和刪除 HBase 節(jié)點(diǎn) , 啟動、停止某個服務(wù),或者查詢服務(wù)的狀態(tài)等。#p#

檢查 HBase 組件的健康狀態(tài)

您可以 BigInsights 管理節(jié)點(diǎn)上通過以下命令來驗(yàn)證 HBase 集群的健康狀態(tài):

  1. $/bin/sh $BIGINSIGHTS_HOME/bin/healthcheck.sh hbase 

同步 HBase 的配置文件

作為集群管理人員,通常需要修改配置參數(shù)來調(diào)優(yōu) HBase 的集群性能,或者修改相關(guān)配置,所有的這些操作都需要修改 HBase 的配置文件,如 hbase-site.xml. regionservers, hbase-env.sh, hadoop-metrics.properties 或者 log4j.properties,BigInsights 集群管理為各組件提供統(tǒng)一的配置文件同步功能,以保證統(tǒng)一之組件在所有節(jié)點(diǎn)上配置的一致性。您可以通過以下命令來同步 HBase 配置文件:

1. 您可以在 BigInsights 管理節(jié)點(diǎn)的 $BIGINSIGHTS_HOME/hdm/components/hbase/conf/ 目錄下更新 HBase 配置文件 

2. 在 BigInsights 管理節(jié)點(diǎn)上通過運(yùn)行以下命令同步所有的節(jié)點(diǎn)的 HBase 配置文件:

  1. $/bin/sh $BIGINSIGHTS_HOME/bin/syncconfig.sh  

hbase 增刪 HBase 節(jié)點(diǎn)

BigInsights 平臺支持增刪 HBase 節(jié)點(diǎn)的功能。 

1. 增加節(jié)點(diǎn) 

您可以在 BigInsights 管理節(jié)點(diǎn)上運(yùn)行以下命令來增加一個或多個節(jié)點(diǎn)到 HBase 集群中:

  1. $/bin/sh $BIGINSIGHTS_HOME/bin/addnode.sh hbase node1 -type=master 
  2. $/bin/sh $BIGINSIGHTS_HOME/bin/addnode.sh hbase node1 -type=regionserver 

其中 node1 可以是 IP 地址也可以是 hostname. 

2. 刪除節(jié)點(diǎn) 

您可以在 BigInsights 管理節(jié)點(diǎn)上運(yùn)行以下命令來從 HBase 集群中刪除一個或多個節(jié)點(diǎn),刪除 HBase 節(jié)點(diǎn)只會刪除 HBase 服務(wù),不會刪除任何數(shù)據(jù)。

  1. $/bin/sh $BIGINSIGHTS_HOME/bin/removenode.sh hbase  

其中 node1 可以是 IP 地址也可以是 hostname. 

啟停和查看 HBase 服務(wù)

您可以在 BigInsights 管理節(jié)點(diǎn)上運(yùn)行以下命令來啟動 HBase 集群服務(wù):

  1. $/bin/sh $BIGINSIGHTS_HOME/bin/start.sh hbase  

您可以在 BigInsights 管理節(jié)點(diǎn)上運(yùn)行以下命令來停止 HBase 集群服務(wù):

  1. $/bin/sh $BIGINSIGHTS_HOME/bin/stop.sh hbase  

查看 HBase 服務(wù): 

您可以在 BigInsights 管理節(jié)點(diǎn)上運(yùn)行以下命令來查看 HBase 集群服務(wù)狀態(tài):

  1. $/bin/sh $BIGINSIGHTS_HOME/bin/status.sh hbase  

#p#

HBase Master 多結(jié)點(diǎn)高可用支持

我們可以在 HBase 集群中啟動多個 Master 節(jié)點(diǎn),其中***個啟動的節(jié)點(diǎn)作為活躍 (Active)Master 對外提供服務(wù),而其他的作為備份 (Backup)Master 節(jié)點(diǎn);實(shí)際上,HBase 通過 Zookeeper 來保存活躍 Master 節(jié)點(diǎn)信息,一旦當(dāng)前活躍 Master 節(jié)點(diǎn)由于硬件故障或者斷電等原因失去連接,備份 Master 會通過 Zookeeper 收到該信息,并選舉產(chǎn)生新的活躍 Master 提供服務(wù)。接下來將詳細(xì)描述如何通過 BigInsights 啟動多個 Master 并進(jìn)行狀態(tài)監(jiān)控。

1. 通過命令行模式添加 / 啟動 / 監(jiān)控 HBase Master

A) 登錄 BigInsights 管理節(jié)點(diǎn),查看當(dāng)前 HBase 集群狀態(tài) 

  1. [biadmin@bdvm070 ~]$ status.sh hbase 
  2. [INFO] Progress - Status hbase 
  3. [INFO] @bdvm070.svl.ibm.com - hbase-master(active) started, pid 18157 
  4. [INFO] @bdvm071.svl.ibm.com - hbase-regionserver started, pid 12072 
  5. [INFO] Deployer - hbase service started 
  6. [INFO] Progress - 100% 
  7. [INFO] DeployManager - Status; SUCCEEDED components: [hbase]; Consumes : 9699ms 

B) 添加 bdvm071 為備用 Master 節(jié)點(diǎn) 

  1. [biadmin@bdvm070 ~]$ addnode.sh hbase bdvm071.svl.ibm.com -type=master 
  2. [INFO] DeployManager - Check SSH setup on [bdvm071.svl.ibm.com] 
  3. [INFO] @bdvm071.svl.ibm.com - OK, password-less SSH has setup. 
  4. ... 
  5. [INFO] DeployManager - Add hbase nodes; SUCCEEDED components: [hbase]; Consumes : 0ms 

C) 啟動備用 Master 節(jié)點(diǎn) 

  1. [biadmin@bdvm070 ~]$ start.sh hbase  
  2. [INFO] Progress - Start hbase  
  3. [INFO] Deployer - make sure zookeeper service is started before start hbase service  
  4. [INFO] @bdvm070.svl.ibm.com - hbase-master(active) already running, pid 18157  
  5. [INFO] @bdvm071.svl.ibm.com - hbase-master(backup) started  
  6. [INFO] @bdvm071.svl.ibm.com - hbase-regionserver already running, pid 12072  
  7. [INFO] Deployer - hbase service started  
  8. [INFO] Progress - 100%  
  9. [INFO] DeployManager - Start; SUCCEEDED components: [hbase]; Consumes : 14110ms  

D) 重新查看 HBase 集群狀態(tài) 

  1. [biadmin@bdvm070 ~]$ status.sh hbase  
  2. [INFO] Progress - Status hbase  
  3. [INFO] @bdvm070.svl.ibm.com - hbase-master(active) started, pid 18157  
  4. [INFO] @bdvm071.svl.ibm.com - hbase-master(backup) started  
  5. [INFO] @bdvm071.svl.ibm.com - hbase-regionserver started, pid 12072  
  6. [INFO] Deployer - hbase service started  
  7. [INFO] Progress - 100%  
  8. [INFO] DeployManager - Status; SUCCEEDED components: [hbase]; Consumes : 14382ms  

E) 停止當(dāng)前活躍 Master 節(jié)點(diǎn)并查看 HBase 集群狀態(tài) 

  1. [biadmin@bdvm070 ~]$ $HBASE_HOME/bin/hbase-daemon.sh stop master  
  2. stopping master.  
  3. [biadmin@bdvm070 ~]$ status.sh hbase  
  4. [INFO] Progress - Status hbase  
  5. [INFO] @bdvm070.svl.ibm.com - hbase-master stopped  
  6. [INFO] @bdvm071.svl.ibm.com - hbase-master(active) started, pid 19840  
  7. [INFO] @bdvm071.svl.ibm.com - hbase-regionserver started, pid 12072  
  8. [INFO] Deployer - hbase service started  
  9. [INFO] Progress - 100%  
  10. [INFO] DeployManager - Status; SUCCEEDED components: [hbase]; Consumes : 52069ms  

通過上述操作我們可以看到,通過命令行可以在 BigInsights 集群中隨時添加備份 Master 并進(jìn)行 Master 的啟停 / 監(jiān)控。另外需要注意的是,備份 Master 檢測到活躍 Master 宕機(jī)并切換為活躍 Master 需要一定的時間,因此在實(shí)際集群使用過程當(dāng)中應(yīng)當(dāng)盡量避免主動停止當(dāng)前活躍 Master 進(jìn)程的操作。下面給出上述操作序列在 BigInsights Web 管理頁面的監(jiān)控情況。

2. BigInsights Web 管理頁面監(jiān)控 HBase 集群狀態(tài)

A) 添加備用 Master 前 HBase Master 運(yùn)行狀態(tài)

圖 9. 添加備用 Master 前 HBase Master 運(yùn)行狀態(tài)

B) 添加備用 Master 并啟動后 HBase Master 運(yùn)行狀態(tài)

圖 10. 添加備用 Master 后 HBase Master 運(yùn)行狀態(tài)

C) 停止當(dāng)前活躍 Master 后 HBase Master 運(yùn)行狀態(tài)

圖 11. 停止當(dāng)前活躍 Master 后 HBase Master 運(yùn)行狀態(tài)

D) 再次啟動已停止的 Master 節(jié)點(diǎn)之后 HBase Master 運(yùn)行狀態(tài)(由于此時已有活躍 Master,重新啟動的 Master 節(jié)點(diǎn)將作為備用 Master)

圖 12. 再次啟動已停止的 Master 節(jié)點(diǎn)之后 HBase Master 運(yùn)行狀態(tài)

通過 BigInsights Web 管理頁面也可以方便的啟動 / 停止指定的 Master 節(jié)點(diǎn),具體步驟請參考相關(guān)章節(jié),此處不再贅述。#p#

反向代理 HBase UI

Reverse proxy 是 BigInsights 提供的反向代理工具,可以對 BigInsights 中所擁有 UI 界面的服務(wù)組件進(jìn)行反向代理連接支持。(注意:此功能僅在 BigInsights Enterprise 版本里提供。)

圖 13. Reverse proxy 管理 HBase 頁面

例如,在打開 Reverse proxy 管理頁面之后,利用 Reverse proxy 提供的 URL 和 Alias 映射功能,能夠簡便地將服務(wù) UI 通過直觀的鏈接來重定向打開。

通過 Reverse Proxy 頁面,點(diǎn)擊“hbase-master”可以直接打開 HBase Master 管理頁面。

圖 14. 打開 HBase Master 管理頁面

通過 Reverse Proxy 頁面,點(diǎn)擊“hbase-regionserver”可以直接打開 HBase Regionserver 管理頁面。

圖 15. 打開 HBase Region Server 管理頁面

#p#

查看 HDFS 中的 HBase

通過管理 HDFS 中的 HBase 頁面,可以直接查看 HBase 在 HDFS 中的使用情況,包括 -ROOT-, .META., logs, BigInsights Monitoring 的監(jiān)控信息, hbase.id, hbase.version, splitlog, 點(diǎn)擊“hbase”可以查看 HBase 目錄大小,用戶和目錄權(quán)限等,如圖。

圖 16. 圖形化管理 HDFS 中的 HBase

提交 HBase 應(yīng)用程序

BigInsights 提供簡單的 HBase 應(yīng)用 demo,通過“Application”中的 HBase 頁面打開。根據(jù)需要,用戶可以選擇其中的 HBase 應(yīng)用程序發(fā)布和運(yùn)行。(注意:此項(xiàng)功能僅在 BigInsights Enterprise 版本里提供。)

圖 17. HBase 應(yīng)用程序

圖 18 描述了一個簡單的 HBase 的應(yīng)用的發(fā)布與運(yùn)行,此應(yīng)用程序?qū)⒆詣油瓿杀韺?dǎo)出成 CSV 格式。

圖 18. 運(yùn)行 HBase 導(dǎo)出表應(yīng)用程序

輸入必要的參數(shù)后,如執(zhí)行操作的名稱,表名,Row 鍵值,要取得的 record 數(shù)目等,HDFS 中的輸出格式,輸出目錄等,點(diǎn)擊運(yùn)行按鈕,作業(yè)將被提交到 BigInsight 的 HBase 集群上運(yùn)行,作業(yè)運(yùn)行的詳細(xì)情況可以通過 Application status 頁面監(jiān)視

圖 19. 查看程序運(yùn)行狀態(tài)

從該頁面可以查看作業(yè)名稱,配置文件,作業(yè)開始的運(yùn)行時間以及結(jié)束的時間,并且能夠方便的查看作業(yè)執(zhí)行的狀態(tài)。

責(zé)任編輯:黃丹 來源: developerWorks
相關(guān)推薦

2022-05-09 09:42:24

高可用分布式數(shù)據(jù)庫

2023-08-22 13:16:00

分布式數(shù)據(jù)庫架構(gòu)數(shù)據(jù)存儲

2017-04-17 09:54:34

分布式數(shù)據(jù)庫PhxSQL

2023-09-11 11:22:22

分布式數(shù)據(jù)庫數(shù)據(jù)庫

2021-12-20 15:44:28

ShardingSph分布式數(shù)據(jù)庫開源

2023-12-05 07:30:40

KlustronBa數(shù)據(jù)庫

2023-07-31 08:27:55

分布式數(shù)據(jù)庫架構(gòu)

2023-07-28 07:56:45

分布式數(shù)據(jù)庫SQL

2023-11-14 08:24:59

性能Scylla系統(tǒng)架構(gòu)

2022-03-10 06:36:59

分布式數(shù)據(jù)庫排序

2022-06-09 10:19:10

分布式數(shù)據(jù)庫

2020-06-23 09:35:13

分布式數(shù)據(jù)庫網(wǎng)絡(luò)

2023-03-07 09:49:04

分布式數(shù)據(jù)庫

2022-08-01 18:33:45

關(guān)系型數(shù)據(jù)庫大數(shù)據(jù)

2024-09-09 09:19:57

2011-05-19 09:18:48

分布式數(shù)據(jù)庫

2020-04-14 11:14:02

PostgreSQL分布式數(shù)據(jù)庫

2022-09-28 09:12:16

HBase分布式數(shù)據(jù)庫數(shù)據(jù)庫

2024-03-11 08:57:02

國產(chǎn)數(shù)據(jù)庫證券

2021-10-26 00:33:00

分布式數(shù)據(jù)庫系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號