HBase——Snapshot(快照)

2024-04-02 11:58
文章标签 快照 snapshot hbase

本文主要是介绍HBase——Snapshot(快照),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. 基于Hbase snapshot数据快速备份方法
1)创建快照(查看快照->查看快照snapshot命令相关参数->创建快照—>查看快照)

查看snapshot

hbase(main):002:0> list_snapshots
SNAPSHOT                                                              TABLE + CREATION TIME
0 row(s) in 0.0290 seconds

查看help:

hbase(main):003:0> snapshotERROR: wrong number of arguments (0 for 2)
Here is some help for this command:
Take a snapshot of specified table. Examples:hbase> snapshot 'sourceTable', 'snapshotName'hbase> snapshot 'namespace:sourceTable', 'snapshotName', {SKIP_FLUSH => true}

创建snapshot 例子:

hbase(main):004:0> snapshot 'emp','emp_snapshot'0 row(s) in 0.3730 secondshbase(main):005:0> list_snapshots
SNAPSHOT                                                              TABLE + CREATION TIME
emp_snapshot                                                         emp (Wed May 16 09:44:53 +0800 2018)
1 row(s) in 0.0190 seconds=> ["emp_snapshot"]

2)删除并查看快照

hbase(main):006:0> delete_snapshot 'emp_snapshot'
0 row(s) in 0.0390 secondshbase(main):007:0> list_snapshots
SNAPSHOT                                                              TABLE + CREATION TIME
0 row(s) in 0.0040 seconds=> []

3)基于快照,clone一个新表

hbase(main):011:0> clone_snapshot 'emp_snapshot','new_emp'
0 row(s) in 0.5290 secondshbase(main):013:0> scan 'new_emp'
ROW                                                                   COLUMN+CELL
1                                                                    column=personal data:city, timestamp=1526269334560, value=hyderabad
1                                                                    column=personal data:name, timestamp=1526269326929, value=raju
1                                                                    column=professional data:designation, timestamp=1526269345044, value=manager
1                                                                    column=professional data:salary, timestamp=1526269352605, value=50000
1 row(s) in 0.1050 seconds
hbase(main):014:0> desc 'new_emp'
Table new_emp is ENABLED
new_emp
COLUMN FAMILIES DESCRIPTION
{NAME => 'personal data', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE
=> '0'}
{NAME => 'professional data', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_S
COPE => '0'}
2 row(s) in 0.0370 seconds

4)基于快照恢复表(原hbase表emp需要删除)

hbase(main):027:0> list
TABLE
new_emp
t1
test
3 row(s) in 0.0130 seconds=> ["new_emp", "t1", "test"]hbase(main):028:0> list_snapshots
SNAPSHOT                                                              TABLE + CREATION TIME
emp_snapshot                                                         emp (Wed May 16 09:45:25 +0800 2018)
1 row(s) in 0.0130 seconds=> ["emp_snapshot"]
hbase(main):029:0> restore_snapshot 'emp_snapshot'
0 row(s) in 0.3700 secondshbase(main):030:0> list
TABLE
emp
new_emp
t1
test
4 row(s) in 0.0240 seconds=> ["emp", "new_emp", "t1", "test"]

5)基于快照将数据导出到另外一个集群中的本地文件中

利用mapreduce job将emp_snapshot这个snapshot 导出到本地目录usr/hdp/2.5.3.0-37/hbase/hbasedata

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'emp_snapshot' -copy-to file:usr/hdp/2.5.3.0-37/hbase/hbasedata -mappers 16

6)基于快照将数据导出到另外一个集群中的hdfs上

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'emp_snapshot' -copy-to hdfs:///hbase/bak_emp_snapshot -mappers 16

这篇关于HBase——Snapshot(快照)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/869924

相关文章

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

通用内存快照裁剪压缩库Tailor介绍及源码分析(一)

背景 我们知道内存快照是治理 OOM 问题及其他类型的内存问题的重要数据源,内存快照中保存了进程虚拟机的完整的堆内存数据,很多时候也是调查其他类型异常的重要参考。但是dump出来的堆转储文件.hprof往往很大,以 LargeHeap 应用为例,其 OOM 时的内存快照大小通常在512M左右,要有效的存储和获取都是一个问题。 线下拿到hprof文件相对容易,也可以预防OOM,但覆盖的场景十分有

Hive和Hbase的区别

Hive 和 HBase 都是 Hadoop 生态系统中的重要组件,它们都能处理大规模数据,但各自有不同的适用场景和设计理念。以下是两者的主要区别: 1. 数据模型 Hive:Hive 类似于传统的关系型数据库 (RDBMS),以表格形式存储数据。它使用 SQL-like 语言 HiveQL 来查询和处理数据,数据通常是结构化或半结构化的。HBase:HBase 是一个 NoSQL 数据库,基

简单Hbase 分页方案

简单Hbase分页方案 网上大多数分页方案分为从服务端分页或者从客户端分页 服务端分页方式主要利用PageFilter过滤器,首先太复杂,其次针对集群的兼容性不是很好,作者利用服务端分页+客户端分页结合方式给出一种简单易行的中间方案。 1.利用PageFilter过滤器从服务端分页,过滤出所需要的最大条数, 注:作者认为大多数用户不会进行太深的翻页,假设pageSize=5,客户饭100页一共

Hbase Filter+Scan 查询效率优化

Hbase Filter+Scan 查询效率问题 众所周知,Hbase利用filter过滤器查询时候会进行全表扫描,查询效率低下,如果没有二级索引,在项目中很多情况需要利用filter,下面针对这种情况尝试了几种优化的方案,仅供参考,欢迎交流。 根据业务要求,作者需要根据时间范围搜索所需要的数据,所以作者设计的rowKey是以时间戳为起始字符串的。 正确尝试: 1.scan 设置 开始行和结

Hbase 查询相关用法

Hbase 查询相关用法 public static void main(String[] args) throws IOException {//Scan类常用方法说明//指定需要的family或column ,如果没有调用任何addFamily或Column,会返回所有的columns; // scan.addFamily(); // scan.addColumn();// scan.se

【Hbase 数据操作】HBase基础和数据导入

创建表hbase_test有两个列族CF1和CF2 向表中添加数据,在向HBase的表中添加数据的时候,只能一列一列的添加,不能同时添加多列。 create 'hbase_test',{NAME=>'cf1'},{NAME=>'cf2'}put 'hbase_test', '001','cf1:name','liz';put 'hbase_test', '001','cf1:age','1

【Hive Hbase】Hbase与Hive的区别与联系

问题导读: Hive与Hbase的底层存储是什么? hive是产生的原因是什么? habase是为了弥补hadoop的什么缺陷? 共同点: 1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储 区别: 2.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目

HBase实践 | 数据人看Feed流-架构实践

背景 Feed流:可以理解为信息流,解决的是信息生产者与信息消费者之间的信息传递问题。我们常见的Feed流场景有: 手淘,微淘提供给消费者的首页商品信息,用户关注店铺的新消息等微信朋友圈,及时获取朋友分享的信息微博,粉丝获取关注明星、大V的信息头条,用户获取系统推荐的新闻、评论、八卦 关于Feed流的架构设计,包括以上场景中的很多业内专家给出了相应的思考、设计和实践。本人是大数据方向出身的技术人

HBase实践 | HBase TB级数据规模不停机迁移最佳实践

背景 有关HBase集群如何做不停服的数据迁移一直都是云HBase被问的比较多的一个问题,目前有许多开源的工具或者HBase本身集成的方案在性能、稳定性、使用体验上都不是很好,因此阿里云提供了BDS迁移服务,可以帮助云上客户实现TB级数据规模不停机迁移 支持场景 HBase大版本升级, 1.x升级2.x集群配置升级,8核16G升级为16核32G集群网络环境变更,经典网络迁移到VPC异地跨机房迁