真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

HBase如何實(shí)現(xiàn)集群管理

小編給大家分享一下HBase如何實(shí)現(xiàn)集群管理,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在祿勸等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司 網(wǎng)站設(shè)計(jì)制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營(yíng)銷推廣,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),祿勸網(wǎng)站建設(shè)費(fèi)用合理。

HBase如何實(shí)現(xiàn)集群管理

通過之前文章的描述,我們已經(jīng)有能力設(shè)計(jì)并部署搭建HBase集群了

當(dāng)我們的HBase集群開始運(yùn)行的時(shí)候,新的挑戰(zhàn)又來了

例如,我們可能會(huì)遇到在集群運(yùn)行的時(shí)候添加或者刪除節(jié)點(diǎn)

又或者需要拷貝/備份整個(gè)集群的數(shù)據(jù)等等

如何在集群運(yùn)行的時(shí)候以最小的代價(jià)來執(zhí)行這些操作呢?

下面總結(jié)一下HBase集群的相關(guān)運(yùn)維和管理知識(shí)點(diǎn)

運(yùn)維任務(wù)

添加/刪除節(jié)點(diǎn)

在HBase中動(dòng)態(tài)添加/刪除節(jié)點(diǎn)非常簡(jiǎn)單,只需要一些命令操作即可,HBase會(huì)自動(dòng)幫你處理節(jié)點(diǎn)上下線需要做的事情

添加節(jié)點(diǎn)

1.修改conf目錄下的regionservers文件,將新節(jié)點(diǎn)的主機(jī)名另起一行添加進(jìn)去

2.復(fù)制該文件到集群中的所有機(jī)器

3.啟動(dòng)該機(jī)器完成節(jié)點(diǎn)的添加

節(jié)點(diǎn)啟動(dòng)之后會(huì)在ZK上注冊(cè)創(chuàng)建對(duì)應(yīng)的znode, 然后它會(huì)加入集群被分配region等

啟動(dòng)該節(jié)點(diǎn)的方式有兩種:

  • master節(jié)點(diǎn)上執(zhí)行start-hbase.sh腳本,其會(huì)檢查regionservers文件并跳過已經(jīng)啟動(dòng)的子節(jié)點(diǎn),將其中未啟動(dòng)的節(jié)點(diǎn)啟動(dòng)

  • 對(duì)應(yīng)的子節(jié)點(diǎn)上執(zhí)行hbase-daemon.sh start regionserver命令,隨后該機(jī)器上的RegionServer服務(wù)啟動(dòng)

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

首先到需要停止運(yùn)行的機(jī)器上執(zhí)行:

hbase-daemon.sh stop regionserver

隨后該節(jié)點(diǎn)關(guān)閉所有region,停止進(jìn)程

ZK中的znode臨時(shí)節(jié)點(diǎn)將會(huì)過期,master會(huì)注意到該region服務(wù)器停止了,  并按照故障處理的流程將該機(jī)器上的所有region重新分配到其他機(jī)器上

下線節(jié)點(diǎn)需要注意兩點(diǎn):

1.如果負(fù)載均衡進(jìn)程正在執(zhí)行,請(qǐng)先停止,因?yàn)槠淇赡軙?huì)和master轉(zhuǎn)移region產(chǎn)生競(jìng)爭(zhēng)

2.如果該節(jié)點(diǎn)上的數(shù)據(jù)量很大,移動(dòng)region的過程可能很漫長(zhǎng)

另外,在HBase0.90.2以上的版本中可以使用graceful_stop.sh hostname來下線節(jié)點(diǎn)

顧名思義,該腳本可以讓節(jié)點(diǎn)的下線過程變得“優(yōu)雅”起來:將region從對(duì)應(yīng)的服務(wù)器上一個(gè)個(gè)移動(dòng)出來以減少擾動(dòng)

添加備份master節(jié)點(diǎn)

由于HBase本身并沒有自動(dòng)提供像HDFS那樣的Namenode雙節(jié)點(diǎn)方案,所以一個(gè)潛在的風(fēng)險(xiǎn)就是單點(diǎn)故障問題

但是HBase允許我們手動(dòng)啟動(dòng)一個(gè)備份的master節(jié)點(diǎn)來避免這個(gè)問題

多個(gè)master節(jié)點(diǎn)存在的情況下,它們會(huì)競(jìng)爭(zhēng)ZK中專用的znode,***個(gè)競(jìng)爭(zhēng)到的master來提供服務(wù)

其余的master進(jìn)程只是輪詢檢查這個(gè)znode,當(dāng)它消失時(shí)再次競(jìng)爭(zhēng)

我們可以在集群中的另外一臺(tái)配置一樣的機(jī)器上啟動(dòng)備用master:

hbase-daemon.sh start master

從0.90.x版本開始,也可以在conf目錄下的backup-master文件來執(zhí)行備用服務(wù)器

編輯方式和regionservers一樣

該文件中的master會(huì)在集群中的主master和regionserver都啟動(dòng)之后才會(huì)啟動(dòng)

由于master只被設(shè)計(jì)為集群運(yùn)行時(shí)的協(xié)調(diào)者,并不占用太多資源

所以啟動(dòng)多個(gè)備用master并沒有什么影響,反而啟動(dòng)太少可能會(huì)留下隱患

建議啟動(dòng)兩到三個(gè)備用master比較合適

數(shù)據(jù)遷移任務(wù)

導(dǎo)入和導(dǎo)出

HBase的jar包中包含了兩個(gè)以MapReduce作業(yè)形式來導(dǎo)入導(dǎo)出數(shù)據(jù)的工具

使用方式為:

hadoop jar ${hbase.jar} export ${tablename} ${outputdir}

該工具其余的參數(shù)可以做到增量導(dǎo)出、控制導(dǎo)出的數(shù)據(jù)版本等功能,具體使用請(qǐng)看jar包的幫助信息

導(dǎo)出的數(shù)據(jù)將會(huì)存儲(chǔ)在HDFS指定的目錄上,之后可以使用hadoop distcp命令拷貝到其他集群上,并在該集群上進(jìn)行導(dǎo)入操作

需要注意的是,導(dǎo)出的表和導(dǎo)入的表需要有相同的表模式

將export導(dǎo)出的文件數(shù)據(jù)導(dǎo)入到hbase中,使用方式如下:

hadoop jar hbase-server-*.jar import -D * 表名 生成文件路徑

其中-D后面的參數(shù)包括但不限于為以下幾個(gè)

HBASE_IMPORTER_RENAME_CFS:重命名列族,格式為”舊列族名:新列族名”

  • import.filter.class:指定過濾器類型,在數(shù)據(jù)寫入前進(jìn)行過濾

  • import.filter.args:指定過濾器之后提供的參數(shù)

  • import.bulk.output:指定了該參數(shù)之后不會(huì)直接寫入數(shù)據(jù),而是生成hfile文件用于bulkload

可能會(huì)有人注意到,其實(shí)我們是可以直接使用hadoop distcp命令將HDFS上的hbase根目錄整個(gè)拷貝到其他集群中

但是這個(gè)做法并不推薦, 因?yàn)檫@個(gè)操作會(huì)忽略文件的狀態(tài)和內(nèi)存中還沒有被刷寫的數(shù)據(jù)

CopyTable工具

另一個(gè)導(dǎo)出HBase表數(shù)據(jù)的工具是CopyTable,該工具的使用方式很簡(jiǎn)單,參考幫助信息中的例子即可操作

其是通過mr程序?qū)?shù)據(jù)逐條put到目標(biāo)表中的(TableInputFormat和TableOutputFormat)

使用方式如下:

hadoop jar hbase-server-*.jar copytable -D *

-D的參數(shù)涵括但不限于以下幾個(gè)

  • –startrow=起始Rowkey

  • –stoprow=終止Rowkey

  • –starttime=起始時(shí)間戳

  • –endtime=終止時(shí)間戳

  • –versions=保留的版本數(shù)

  • –all.cells=是否拷貝刪除標(biāo)記的數(shù)據(jù)

  • –new.name=目標(biāo)表名

  • –peer.adr=目標(biāo)zk-ip:zk-port:hbase在zk中的根目錄, 必須指定

  • –families=舊列族名:新列族名,如果一致則指定一個(gè)即可

  • 表名

批量導(dǎo)入

批量導(dǎo)入可以有多種不同的形式,常見的是使用MapReduce和普通的客戶端API

但是這兩種方式都不高效,這里推薦另外一種做法:blukload

blukload是一種將數(shù)據(jù)文件(可能是普通的文本文件)導(dǎo)入到hbase中的一種工具

其運(yùn)作流程是:

1.讀取數(shù)據(jù)文件,格式為Rowkey+\t+col1數(shù)據(jù)+\t+col2數(shù)據(jù)…

2.將數(shù)據(jù)文件轉(zhuǎn)換為hfile文件

3.讀取hfile文件導(dǎo)入hbase

使用方式1

數(shù)據(jù)文件可以是由程序生成的

使用

hadoop jar hbase-server-*.jar importtsv 列名參數(shù) 表名 數(shù)據(jù)文件位置

直接將數(shù)據(jù)文件導(dǎo)入hbase,其中列名參數(shù)具體為 -Dimporttsv.columns=HBASE_ROW_KEY,”列族名:列名”…

使用方式2

編寫mr程序讀源hbase庫,生成hfile文件,OutputFormat要設(shè)置為HFileOutputFormat類

之后使用

hadoop jar hbase-server-*.jar completebulkload mr結(jié)果文件目錄 表名

將hfile文件導(dǎo)入目標(biāo)hbase數(shù)據(jù)庫

注意,該mr程序可以只有mapper過程,輸出的 類型為ImmutableBytesWritable和KeyValue

復(fù)制

hbase中的replication相當(dāng)于MySQL中的主從同步技術(shù),RegionServer會(huì)在后臺(tái)啟動(dòng)一個(gè)進(jìn)程不斷put或者delete到同步的集群上

比較適合小集群的熱備

使用replication需要在hbase-site.xml文件中配置以下選項(xiàng):

HBase如何實(shí)現(xiàn)集群管理

配置完畢之后在hbase shell中設(shè)置replication的信息:

add_peer '1','目標(biāo)zk-ip:zk-port:hbase在zk中的根目錄'

之后可以通過list_peer命令查看設(shè)置的replication

集群遷移方法對(duì)比

HBase如何實(shí)現(xiàn)集群管理

改變?nèi)罩炯?jí)別

默認(rèn)HBase的日志是DEBUG級(jí)別的,這在安裝和設(shè)計(jì)階段比較有用

它可以讓用戶在系統(tǒng)出現(xiàn)問題的時(shí)候在日志文件中搜尋到比較多的信息

生產(chǎn)環(huán)境中用戶可以根據(jù)需要修改日志的級(jí)別為INFO或者WARN

修改方式如下:

編輯conf目錄下的log4j.properties文件

將log4j.logger.org.apache.hadoop.hbase=INFO

以上是“HBase如何實(shí)現(xiàn)集群管理”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前題目:HBase如何實(shí)現(xiàn)集群管理
新聞來源:http://weahome.cn/article/popcgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部