HBase常见运维工具整理

作者: 7a5709742101 | 来源:发表于2019-12-24 18:45 被阅读0次

HBase自带许多运维工具,为用户提供管理、分析、修复和调试功能,这些工具一部分的入口是hbase shell 客户端,另一部分是在hbase的Jar包中。

大多数可通过执行以下形式的命令实现:

hbase [<options>] <command> [<args>]

本文将列举一些常用HBase工具,开发人员和运维人员可以参考本文内容,利用这些工具对HBase进行日常管理和运维。

Canary

HBase Canary 是检测HBase 系统状态的工具,检测粒度可以是列族、Region或RegionServer等。Canary 会对指定表的每一个Region 抓取一行,通过探测失败或者延迟来判断集群当前情况。

该工具有三个常见使用场景:

检查集群中所有Region是否可查:

sudo -u hbase hbase org.apache.hadoop.hbase.tool.Canary

sudo -u hbase hbase org.apache.hadoop.hbase.tool.Canary -t 60000

-t <N> :该选项用于指定检测超时,默认为600000 (milisecs)

检查集群中某些特定表的所有Region是否可查:

sudo -u hbase hbase org.apache.hadoop.hbase.tool.Canary table_name1 table_name2 ...

sudo -u hbase hbase org.apache.hadoop.hbase.tool.Canary -t 60000 table_name1 table_name2 ...

检查RegionServer的服务状态:

sudo -u hbase hbase org.apache.hadoop.hbase.tool.Canary -regionserver

sudo -u hbase hbase org.apache.hadoop.hbase.tool.Canary -t 60000 -regionserver

hbck工具

hbck工具用于检查HBase集群一致性。命令为:

sudo -u hbase hbase hbck

这条命令输出的末尾,会打印出 OK 或者 INCONSISTENCY 信息。若返回OK,说明保持一致。如果报出INCONSISTENCY ,说明处于不一致状态,需要解决问题,此时可通过 -details 来查看更多细节。

对大数据以及人工智能概念都是模糊不清的,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系 。从java和linux入手,其后逐步的深入到HADOOP-hive-oozie-web-flume-python-hbase-kafka-scala-SPARK等相关知识一一分享!

注意,当出现INCONSISTENCY 时,可以重复执行 hbck 工具若干次以确认。因为INCONSISTENCY 可能只是暂时的,例如集群正在启动或者某个Region正在被拆分时会报INCONSISTENCY ,但不意味着稳定时也不一致。

HFile查看工具

当需要查看HFile内容的文本化版本时,可以使用 org.apache.hadoop.hbase.io.hfile.HFile 工具实现,执行语句如下:

$ ${HBASE_HOME}/bin/hbase org.apache.hadoop.hbase.io.hfile.HFile

例如,查看文件 hdfs://10.81.47.41:8020/hbase/TEST/1418428042/DSMP/4759508618286845475 中的内容,可敲入以下命令:

sudo -u hbase hbase org.apache.hadoop.hbase.io.hfile.HFile -v -f hdfs://10.81.47.41:8020/hbase/TEST/1418428042/DSMP/4759508618286845475

选项-v表示查看详细内容,如果去掉则只返回简化过的摘要内容。

CopyTable

CopyTable 可以用来拷贝部分或者全部的表的内容,无论表是在同一集群或是不同集群。待操作的表必须存在,才能执行 CopyTable 操作。用法如下:

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.CopyTable --help

/bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable --help

Usage: CopyTable [general options] [--starttime=X] [--endtime=Y] [--new.name=NEW] [--peer.adr=ADR] <tablename>

其中<tablename>表示待拷贝的表的名称。

例如我们可以将 TestTable 拷贝到某个集群,该集群是1小时时间窗口区间段的备份:

hbase org.apache.hadoop.hbase.mapreduce.CopyTable -Dhbase.client.scanner.caching=100 -Dmapred.map.tasks.speculative.execution=false --startrow=rk1 --stoprow=rk4 --starttime=1265875194289 --endtime=1265878794289 --peer.adr=transwarp-perf1,transwarp-perf2,transwarp-perf3:2181:/hyperbase1 --new.name=TestTableNew --families=cf1:cf2 TestTable

该命令中各选项的含义如下:

startrow:起始行;

stoprow:结束行;

starttime:起始时间(毫秒级unixtime),如果没有设定结束时间意味着永远执行;

endtime:结束时间,若没有明确指定起始时间,可忽略该选项;

new.name:新的表名;

peer.adr:目标对等集群地址(实为Zookeeper地址),采用如下格式:

【hbase.zookeeper.quorum:hbase.zookeeper.client.port:zookeeper.znode.parent;】

families:需拷贝的列族列表,如有多个用逗号分隔。此处cf1:cf2表示从cf1拷贝到cf2。

Export

Export 用来将表中的内容转储到HDFS上面的序列文件,可指定时间戳(timestamp),命令如下:

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]]

例如,如下命令用export指定时间戳(timestamp)导出表member5,到集群master24的HDFS:

hbase org.apache.Hadoop.hbase.mapreduce.Export member5 hdfs://master24:9000/user/hadoop/dump2 1 1401938590466 1401938590467

Import

Import 工具用来将之前被 Export 的数据载入HBase中。命令如下:

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>

例如,用import将集群master24的HDFS中的表member5导入至HBase,实现命令如下:

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.Import member5 hdfs://master24:9000/user/hadoop/dump2

ImportTsv

ImportTsv 工具的作用是把数据以TSV格式载入到HBase中。

它有以下两个典型的用途:

通过 Puts 操作将数据从HDFS中的TSV格式载入到HBase中。

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c <tablename> <hdfs-inputdir>

第二种用途是和completebulkload 配合使用,为要载入的StoreFiles做准备。

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c -Dimporttsv.bulk.output=<outputdir> <tablename> <hdfs-data-inputdir>

其中各选项的含义如下:

Dimporttsv.columns:指定原数据对应映射到HBase中的哪些列。如果该列包括的是行键,那么则用 HBASE_ROW_KEY 来表示该列的列名。

Dimporttsv.bulk.output:指定HFiles的存放目录;若不指定该项,数据会直接存放在HBase对应的表中。

CompleteBulkload

completebulkload 工具会将产生的StoreFiles移动到HBase表中。这个工具通常与 ImportTsv 的输出配合使用。

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles <hdfs://storefileoutput> <tablename>

<hdfs://storefileoutput>通常表示经过ImportTsv 载入到HDFS上的StoreFiles的路径。

RowCounter和CellCounter

RowCounter 是用来计算表行数的MapReduce工程。通常,当用户对元数据的一致性有疑问时,RowCounter 可以作为一个比较实用的工具来全面检查HBase是否读取了表的所有block。它可以通过 --starttime=[starttime] 和 --endtime=[endtime] 标签来限定数据的时间范围。

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.RowCounter <tablename> [<column1> <column2>...]

HBase还有另一个具有诊断作用的MapReduce工程,叫做 CellCounter 。它和 RowCounter 类似,但会收集和表相关的更细节的统计数据,包括:表的行数、所有行的列族数、所有行的qualifier数、每个列族出现的次数、每个qualifier出现的次数、每个qualifier的版本总数。

该工具也可以通过 --starttime=[starttime] 和 --endtime=[endtime] 来限定扫描表的时间范围,还可以用行的正则表达式或前缀来限定待分析的行。

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.CellCounter <tablename> <outputDir> [regex or prefix]

hbase clean 工具

hbase clean 命令是用于清除ZooKeeper或HDFS上的HBase相关数据的工具。它适合用于测试或者铲除HBase集群时对ZooKeeper或HDFS的清理。

sudo -u hbase hbase clean (--cleanZk|--cleanHdfs|--cleanAll)

cleanZk:清除Zookeeper上的HBase数据。

cleanHdfs:清除HDFS上的HBase数据。

cleanAll:清除Zookeeper和HDFS上的HBase数据。

更多工具

本文介绍的都是HBase自带的常用运维工具,多用于状态检查和数据迁移。除此之外,还有一些HBase工具实现了更高级易用的功能,例如分布式存储运维工具DSTools,用于修复常见异常情况;Bulkload工具,用于批量的向HBase导入大量数据;以及雅虎开源的通用的更灵活的性能测试工具ycsb等。之后我们还会对这些更多的工具进行整理,与大家一起分享。

相关文章

  • HBase常见运维工具整理

    HBase自带许多运维工具,为用户提供管理、分析、修复和调试功能,这些工具一部分的入口是hbase shell 客...

  • 10大HBase常见运维工具整理

    摘要:HBase自带许多运维工具,为用户提供管理、分析、修复和调试功能。本文将列举一些常用HBase工具,开发人员...

  • 2018-04-04 HBase常见的运维工具

    HBase自带许多运维工具,为用户提供管理、分析、修复和调试的功能,这些工具一部分的入口是hbase shell客...

  • 无标题文章

    ###1.监控系列运维工具 | 运维工具名称 | 访问地址 | | ---------------...

  • 【HBase运维】利用开源工具搭建HBase监控系统

    不管是作为运维还是开发,在排查故障或者进行性能调优的时候,监控都是必不可少的。一般我们讲监控,其实包括了metri...

  • ansible简介

    一、简介 在Linux自动化运维中,常见的自动化运维工具可分为需要安装终端的puppet、func和不需要安装终端...

  • 十二、HBase运维

    1、HBase监控指标 1.1、指标收集:http://master_ip:port/jmx;http://reg...

  • 2019-02-24

    运维人员必须熟悉的运维工具汇总: Bootstrapping:Kickstart、Cobbler、rpmbuild...

  • ansible 自动化运维工具

    什么是ansible ansible是目前最受运维欢迎的自动化运维工具,基于Python开发,集合了众多运维工具(...

  • 【hbase-维护】hbase日常运维

    1. 备份 执行HBase备份有两种主要策略:完全关闭集群进行备份(离线),以及在运行集群上进行备份(在线)。ht...

网友评论

    本文标题:HBase常见运维工具整理

    本文链接:https://www.haomeiwen.com/subject/ytbfoctx.html