HBase的Snapshots功能介绍
hbase的snapshot功能还是挺有用的,本文翻译自cloudera的一篇博客,希望对想了解snapshot?的朋友有点作用,如果翻译得不好的地方,请查看原文 Introduction to Apache HBase Snapshots? 对照。 在之前,备份或者拷贝一个表只能用copy/export表,或者disable
hbase的snapshot功能还是挺有用的,本文翻译自cloudera的一篇博客,希望对想了解snapshot?的朋友有点作用,如果翻译得不好的地方,请查看原文 Introduction to Apache HBase Snapshots? 对照。
在之前,备份或者拷贝一个表只能用copy/export表,或者disable表后,从hdfs中拷贝出所有hfile。copy/export表用的是MapReduce来scan和copy表,这会对Region Server产生直接的性能影响,而用disable后拷贝文件则是直接不能访问了。
以此相反,HBase的snapshots功能可以让管理员不用拷贝数据的情况下轻松拷贝table,并且只会对RS造成很小影响。导出snapshots到另一个集群不会直接作用于RS,只是添加一些额外的逻辑。
下面是一些实用snapshots的场景:
- 从用户/app错误中恢复
- 从某个已知的安全状态恢复/还原。
- 查看之前的snapshots并选择性地从merge到产线中。
- 在重大升级或者修改之前保存snapshots。
- 审查和/或报告指定时间的数据视图
- 有目的性地按月采集数据。
- 运行每天/每月/一刻时间报表。
- 应用测试
- 用snapshots在产线测试schema或者程序改变对数据相似度的影响,然后丢弃它。例如,获取一个snapshot,然后用该snapshot的内容创建一个表,然后对该表进行操作。
- 离线作业
- 获取一个snapshot,导到另外一个集群并用MapReduce作业来分析它。由于导出snapshot的操作发生在HDFS级别,你不会像拷贝表那样拖慢HBase。
什么是Snapshot?
一个snapshot其实就是一组metadata信息的集合,它可以让管理员将表恢复到以前的一个状态。snapshot并不是一份拷贝,它只是一个文件名的列表,并不拷贝数据。一个全的snapshot恢复以为着你可以回滚到原来的表schema和创建snapshot之前的数据。
操作
- 获取:该操作尝试从指定的表中获取一个snapshot。该操作在regions作balancing,split或者merge等迁移工作的时候可能会失败。
- 拷贝:该操作用指定snapshot的schema和数据来创建一个新表。该操作会不会对 原表或者该snapshot造成任何影响。
- 恢复:?该操作将一个表的schema和data回滚到创建该snapshot时的状态。?
- 删除:该操作将一个snapshot从系统中移除,释放磁盘空间,不会对其他拷贝或者snapshot造成任何影响。
- 导出:该操作拷贝这个snapshot的data和metadata到另一个集群。该操作仅影响HDFS,并不会和hbase的Master或者Region Server通信(这些操作可能会导致集群挂掉)。
零拷贝snapshot,恢复,克隆
snapshot和CopyTable/ExportTable最大的区别是snapshot仅涉及metadata,不涉及数据拷贝。
Hbase一个重要的设计就是一旦写到一个文件就不会修改了。有不可修改的文件意味着一个snapshot仅需保持当前文件的使用相关信息就可以了, 并且,当compaction发生的时候,snapshot通知hbase系统仅把这些文件归档而不要删除它。
同样,当克隆或者恢复操作发生的时候,由于这些不变的文件,当用snapshot创建新表的时候仅需链接向这些不变的文件就行了。
导出snapshot是唯一需要拷贝数据的操作,这是因为其它的集群并没有这些数据文件。
导出Snapshot vs Copy/Export Table
除去更加好的一致性保证外,和Copy/Export作业相比,最大的不同是导出snapshot操作是在HDFS层级进行的。这就意味着hbase的master和Region Server是不参与该操作的,因此snapshot导出不会创建一些不必要的数据缓存,并且也不会因为由于很多scan操作导致的GC。snapshot导出操作产生的网络和磁盘开销都被HDFS的datanode分摊吸收了。
HBase Shell: Snapshot 操作
要想使用snapshot功能,请确认你的hbase-site.xml中的hbase.snapshot.enabled
配置项为true,如下:
? ??? hbase.snapshot.enabled ??? true ?
?创建一个snapshot用如下命令,该操作没有文件拷贝操作:
hbase> snapshot ‘tableName’, ‘snapshotName’
要想知道系统中创建了哪些snapshot,可以用list_snapshot命令,它会显示snapshot名,源表和创建时间日期。
?
hbase> list_snapshots SNAPSHOT TABLE + CREATION TIME TestSnapshot TestTable (Mon Feb 25 21:13:49 +0000 2013)
要想移除snapshot,用delete_snapshot命令,移除snapshot不会对已经克隆好的表胡总和随后发生的snapshot造成任何影响。
hbase> delete_snapshot ‘snapshotName’
?要想使用snapshot来创建一个新表,用clone_snapshot命令。该操作也无任何数据拷贝操作发生。
hbase> clone_snapshot ‘snapshotName’, ‘newTableName’
要是想恢复或者替换当前表的schema和数据,用restore_snapshot命令。
hbase> restore_snapshot ‘snapshotName’
要想导出一个snapshot到另外的集群,用ExportSnapshot工具。导出操作不会对Region server造成额外的负担。因为它工作在HDFS层级,你仅需指定HDFS的位置(其它集群的hbase.rootdir)即可,如下。
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot SnapshotName -copy-to hdfs:///srv2:8082/hbase
当前存在的限制
Snapshots依赖于一些想当然的地方,当前还有很多新特性并没有完全集成到工具里:
- 做snapshot或者克隆表时如果发生Merging region操作时数据可能丢失。
- 恢复表的时候,由于是对一个replication进行的,这可能导致两个集群数据不同步。
总结
当前的snapshot特性以及包括了所有基本功能,但是依然还有很多工作要做,例如质量(metrics),Web UI集成,磁盘使用优化等。
要想了解更多snapshot相关信息,请看官方文档的snapshot一节。
非特别说明,均为原创文章,转载请注明: 转载自邓的博客
本文链接地址: HBase的Snapshots功能介绍

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

豆包app里会有很多ai创作的功能,那么豆包app有什么功能呢?用户们可以通过这个软件来创作绘画,和ai进行聊天,还能够为用户生成文章,帮助大家搜索歌曲等。这篇豆包app功能介绍就能够告诉大家具体的操作方法,下面就是具体内容,赶紧看看吧!豆包app有什么功能答:可以绘画、聊天、写文、找歌。功能介绍:1、问题查询:可以通过ai来更快的找到问题的答案,什么样的问题都是可以询问。2、图片生成:可以有ai来为大家创建不同的图片,只需要告诉大家大概的要求。3、ai聊天:能够为用户们创建一个可以聊天的ai,

vivox100s和x100手机都是vivo手机产品线中的代表机型,它们分别代表了vivo在不同时间段内的高端技术水平,因此这两款手机在设计、性能和功能上均有一定区别。本文将从性能对比和功能解析两个方面对这两款手机进行详细比较,帮助消费者更好地选择适合自己的手机。首先,我们来看vivox100s和x100在性能方面的对比。vivox100s搭载了最新的

《探索Discuz:定义、功能及代码示例》随着互联网的迅猛发展,社区论坛已经成为人们获取信息、交流观点的重要平台。在众多的社区论坛系统中,Discuz作为国内较为知名的一种开源论坛软件,备受广大网站开发者和管理员的青睐。那么,什么是Discuz?它又有哪些功能,能为我们的网站提供怎样的帮助呢?本文将对Discuz进行详细介绍,并附上具体的代码示例,帮助读者更

随着互联网的快速发展,自媒体这个概念已经深入人心。那么,自媒体到底是什么?它有哪些主要特点和功能呢?接下来,我们将一一探讨这些问题。一、自媒体到底是什么?自媒体,顾名思义,就是自己就是媒体。它是指通过互联网平台,个人或者团队可以自主创建、编辑、发布和传播内容的信息载体。不同于传统媒体,如报纸、电视、电台等,自媒体具有更强的互动性和个性化,让每个人都能成为信息的生产者和传播者。二、自媒体的主要特点和功能有哪些?1.低门槛:自媒体的崛起降低了进入媒体行业的门槛,不再需要繁琐的设备和专业的团队,一部手

PHP技巧:快速实现返回上一页功能在网页开发中,经常会遇到需要实现返回上一页的功能。这样的操作可以提高用户体验,让用户更加方便地在网页之间进行导航。在PHP中,我们可以通过一些简单的代码来实现这一功能。本文将介绍如何快速实现返回上一页功能,并提供具体的PHP代码示例。在PHP中,我们可以使用$_SERVER['HTTP_REFERER']来获取上一页的URL

随着小红书在年轻人中的流行,越来越多的人开始利用这一平台分享各方面的经验和生活见解。如何有效管理多个小红书账号成为一个关键问题。在本文中,我们将讨论一些小红书账号管理软件的功能,并探讨如何更好地经营小红书账号。随着社交媒体的发展,许多人发现自己需要管理多个社交账号。对于小红书用户来说,这也是一个挑战。一些小红书账号管理软件可以帮助用户更轻松地管理多个账号,包括自动发布内容、定时发布、数据分析等功能。通过这些工具,用户可以更高效地管理他们的账号,提高账号的曝光率和关注度。另一、小红书账号管理软件有

Linux下GDM的功能和作用详解在Linux操作系统中,GDM(GNOMEDisplayManager)是一种图形化登录管理器,它提供了用户在系统中登录和注销的界面。GDM通常是GNOME桌面环境的一部分,但也可以被其他桌面环境所使用。GDM的作用不仅仅是提供一个登录界面,还包括用户会话管理、屏幕保护、自动登录等功能。GDM的功能主要包括以下几个方面:

在花亦山心之月中鹿蜀是一名SSR名士,定位是单体后排,拥有很可观的暴击率,有不少玩家对鹿蜀还不太了解,下面小编就带来了花亦山心之月鹿蜀技能属性介绍,快来看看吧。名士属性名士技能1、鹿鸣蜀中技能描述:鹿蜀出身蜀中的穷奇会,自幼习武,武艺超群。对敌方后排单体造成攻击力100%的普攻伤害,并降低目标10点怒气。技能属性:等级2:普攻伤害提升至105%。等级2:普攻伤害提升至110%,并降低目标15点怒气。等级2:普攻伤害提升至115%。等级2:普攻伤害提升至120%,并降低目标20点怒气。等级2:普攻
