HBase备份容灾常用命令

标签: hbase 备份 命令 | 发表时间:2020-09-09 02:04 | 作者:think123
出处:https://juejin.im/backend

灾难恢复是个令人神经紧张的话题,但必须面对.HBase虽然是一个分布式的数据库,但是有时候容灾以及数据备份仍然是需要考虑的,而掌握常用的命令正是写这篇文章的意义所在。 本文主要通过案例来讲解CopyTable,Import,Export,Snapshot,希望大家对它们的使用有一个直观的认识。

CopyTable

  • 支持时间区间,row区间,改变表名称,改变列族名称,指定是否copy已经被删除的数据等功能
  • CopyTable工具采用scan查询,写入新表时采用put和delete API,全是基于hbase的client api进行读写
  1. 首先需要新建好备份表,保证columnFamily一致

hbase-copytable-ready.png

  1. 在另外一个窗口中,进入hbase/bin目录下,执行以下命令(fileTableNew是备份的表,fileTable是原始表)
   hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=fileTableNew fileTable
复制代码

hbase-copytable-result.png

Export/Import

  1. Export可导出数据到目标集群,然后可在目标集群Import导入数据,Export支持指定开始时间和结束时间,因为可以做增量备份
  2. Export导出工具与CopyTable一样是依赖hbase的scan读取数据

Export语法

   bin/hbase org.apache.hadoop.hbase.mapreduce.Export  hdfs://namenode:9000/table_bak   
复制代码

Import语法

   bin/hbase -Dhbase.import.version=0.94 org.apache.hadoop.hbase.mapreduce.Import  
复制代码
  1. 查看hbase数据库,只存在fileTable表 hbase-export-ready.png
  1. 执行导出语句
   #这里存储的路径是存储在hdfs上面的
./hbase org.apache.hadoop.hbase.mapreduce.Export fileTable /usr/local/hbase/fileTable.db
复制代码

hbase-export-table.png

  1. 新建需要导入的表,确保导入之前的表和导入后的表结构一致(相同的列簇)
   create 'fileTableNew','fileInfo','saveInfo'
复制代码
  1. 执行导入语句
   ./hbase org.apache.hadoop.hbase.mapreduce.Import fileTableNew /usr/local/hbase/fileTable.db
复制代码

查看导入的数据

快照的处理

创建快照

   snapshot 'myTable','myTableSnapshot-181210'
复制代码

克隆快照

   clone_snapshot 'myTableSnapshot-181210', 'myNewTestTable'
复制代码

列出快照

   list_snapshots
复制代码

删除快照

   delete_snapshot 'myTableSnapshot-181210'
复制代码

恢复数据

   disable 'myTable'
restore_snapshot 'myTableSnapshot-181210'
复制代码

创建快照

恢复快照

查看Hadoop集群信息

  1. http://ip:50070 http://ip:50070/jmx可以看到json格式的消息,也可以通过编码获取值,http://ip:50070/jmx?qry=,比如 http://192.168.239.134:50070/jmx?qry=java.lang:type=MemoryPool,name=Survivor%20Space

查看hbase集群信息

  1. http://ip:16010 http://ip:16010/jmx,同样也可以通过qry进行过滤

相关 [hbase 备份 命令] 推荐:

HBase备份容灾常用命令

- - 掘金后端
灾难恢复是个令人神经紧张的话题,但必须面对.HBase虽然是一个分布式的数据库,但是有时候容灾以及数据备份仍然是需要考虑的,而掌握常用的命令正是写这篇文章的意义所在. 本文主要通过案例来讲解CopyTable,Import,Export,Snapshot,希望大家对它们的使用有一个直观的认识. 支持时间区间,row区间,改变表名称,改变列族名称,指定是否copy已经被删除的数据等功能.

HBASE shell 常用命令大全

- - CSDN博客云计算推荐文章
      HBase是一个分布式的、面向列的开源数据库,源于google的一篇论文《bigtable:一个结构化数据的分布式存储系统》. HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务.

hbase数据备份或者容灾方案

- - 数据库 - ITeye博客
    HBase的数据备份或者容灾方案有这几种:Distcp,CopyTable,Export/Import,Snapshot,Replication,以下分别介绍(以下描述的内容均是基于0.94.20版本).    在使用distcp命令copy hdfs文件的方式实现备份时,需要禁用备份表确保copy时该表没有数据写入,对于在线服务的hbase集群,该方式不可用,而且在一些文章中可以看到通过distcp文件恢复hbase表时需使用:.

tar命令高级用法——备份数据

- - SegmentFault 最新的文章
Linux上有功能强大的tar命令,tar最初是为了制作磁带备份(tape archive)而设计的,它的作用是把文件和目录备份到磁带中,然后从磁带中提取或恢复文件. 现在我们可以使用tar来备份数据到任何存储介质上. 它是文件级备份,不必考虑底层文件系统类别,并且支持增量备份. -z, --gzip:使用gzip工具(解)压缩,后缀一般为 .gz.

hbase介绍

- AreYouOK? - 淘宝数据平台与产品部官方博客 tbdata.org
hbase是bigtable的开源山寨版本. 是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统. 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作). 主要用来存储非结构化和半结构化的松散数据.

Riak对比HBase

- - NoSQLFan
文章来自 Riak官方wiki,是一篇Riak与HBase的对比文章. Riak官方的对比通常都做得很中肯,并不刻意偏向自家产品. 对比的Riak版本是1.1.x,HBase是0.94.x. Riak 与 HBase 都是基于 Apache 2.0 licensed 发布. Riak 的实现是基于 Amazon 的 Dynamo 论文,HBase 是基于 Google 的 BigTable.

[转]HBase简介

- - 小鸥的博客
   Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能. 其目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表. Hbase可以直接使用本地文件系统或者Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥Hbase处理大数据量等功能,需要使用Hadoop作为文件系统.

HBase表设计

- - 互联网 - ITeye博客
默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据, 直到这 个region足够大了才进行切分. 一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按 照 region分区情况,在集群内做数据的负载均衡.

HBase Memstore配置

- - 行业应用 - ITeye博客
HBase Memstore配置. 本文为翻译,原英文地址:http://blog.sematext.com/2012/07/16/hbase-memstore-what-you-should-know/.     当regionserver(以下简称RS)收到一个写请求,会将这个请求定位到某个特定的region.

hbase原理

- - CSDN博客云计算推荐文章
1.hbase利用hdfs作为其文件存储系统,利用mapreduce来处理数据,利用zookeeper作为协调工具. 2.行键(row key),类似于主键,但row key是表自带的. 3.列族(column family) ,列(也称作标签/修饰符)的集合,定义表的时候指定的,列是在插入记录的时候动态增加的.