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

HBase集群管理

大數(shù)據(jù)
如何在集群運(yùn)行的時(shí)候以最小的代價(jià)來執(zhí)行這些操作呢?下面總結(jié)一下HBase集群的相關(guān)運(yùn)維和管理知識(shí)點(diǎ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í)行:

  1. 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:

  1. 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ù)的工具

使用方式為:

  1. 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中,使用方式如下:

  1. hadoop jar hbase-server-*.jar import -D <propertyproperty=value>* 表名 生成文件路徑 

其中-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)

使用方式如下:

  1. hadoop jar hbase-server-*.jar copytable -D <propertyproperty=value>

-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ù)文件可以是由程序生成的

使用

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

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

使用方式2

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

之后使用

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

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

注意,該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 shell中設(shè)置replication的信息:

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

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

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

改變?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

責(zé)任編輯:趙寧寧 來源: 小黑的博客
相關(guān)推薦

2022-09-06 14:23:53

zookeeperHbase

2020-09-08 13:25:52

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

2017-01-17 10:25:06

HBase集群運(yùn)維

2015-07-15 14:38:38

HBase集群崩潰恢復(fù)Hadoop

2018-08-29 14:45:47

VMware協(xié)助管理

2021-04-13 18:17:48

Hbase集群配置

2017-07-04 10:39:21

hadoop hbas數(shù)據(jù)塊啟動(dòng)

2020-07-08 08:03:37

KubernetesLens集群

2016-09-06 19:21:58

青云QingCloudHBase

2013-11-22 09:57:03

hadoop1.2.1zookeeper-3hbase-0.94.

2022-01-17 11:05:11

CFSSLKubernetesLinux

2023-03-01 13:52:00

TerraformOpenStack運(yùn)維

2017-01-11 16:57:51

大數(shù)據(jù)大數(shù)據(jù)集群監(jiān)控

2020-04-09 11:56:10

Elasticsear集群硬件

2022-05-24 09:00:00

云計(jì)算Kubernetes安全

2021-02-07 08:00:00

Kubernetes集群云原生

2020-06-15 14:31:26

Google容器Kubernets

2021-10-19 07:27:07

邊緣集群管理

2022-08-09 09:10:43

Kubernetes容器

2022-05-18 07:30:51

OperatorprometheusVM 集群
點(diǎn)贊
收藏

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