Snapshot:
(1) take a snapshot
table是在enable状态,那么使用EnabledTableSnapshotHandler
table是在disable状态,使用DisabledTableSnapshotHandler,在HMaster端完成所有操作
(2) getCompletedSnapshots
获得已完成的snapshot,正在进行中的被忽略
(3) deleteSnapshot
直接删除snapshot对应的目录
(4) isSnapshotDone
查看snapshot是否完成,从snapshotHandlers队列中获得信息
(5) restoreSnapshot
table是否存在
存在,必须是disable状态,RestoreSnapshotHandler,restore到相应的状态
不存在,CloneSnapshotHandler,clone一个table。大部分利用CreateTableHandler的代码,把handleCreateHdfsRegions这块替换掉
(6) isRestoreSnapshotDone
查看restore是否完成,从restoreHandlers队列中获得信息
MasterSnapshotVerifier是验证用的
(1) SnapshotDescription is readable
(2) Table info is readable
(3) Regions
- <li>Matching regions in the snapshot as currently in the table</li>
- <li>{@link HRegionInfo} matches the current and stored regions</li>
- <li>All referenced hfiles have valid names</li>
- <li>All the hfiles are present (either in .archive directory in the region)</li>
- <li>All recovered.edits files are present (by name) and have the correct file size</li>
在take a snapshot时,table在enable状态下使用 EnabledTableSnapshotHandler
HMaster做为master,执行Procedure
RegionServer做为slave执行Subprocedure,负责snapshot region
通过zk通信,完成任务的协商,slave什么时候开始执行任务(master发起一个任务,slave接收到通知后告诉master可以开始,等所有 slave都ok后就可以开始这次snapshot了),执行什么任务(snapshot那个表的region),slave任务结束后告知master 已完成,等所有slave都完成后就表明本次snapshot完成。
Master端zk处理是在ZKProcedureCoordinatorRpcs.java
Slave端的zk处理是ZKProcedureMemberRpcs.java
通过zk事件来触发相关任务和进度往下执行
EnabledTableSnapshotHandler
ZKProcedureCoordinatorRpcs
ZKProcedureMemberRpcs
Master 端启动一个 Procedure
(1) Master Procedure.sendGlobalBarrierAcquire
Notify the members to acquire barrier for the procedure
创建zk节点,类型是acquire znode,比如snapshot名字是t1-s2,那么节点是/hbase/online-snapshot/acquired/t1-s2
等待各个Subprocedure(HRegionServer上面)收到zk事件,并创建相应的zk节点
(2) HRegionServer监听到zk事件,发现是acquiredZnode节点
启动一个Subprocedure,Subprocedure.acquireBarrier
在acquire znode节点下创建一个子节点
等待本次Procedure到达reached状态,Subprocedure.waitForReachedGlobalBarrier
(3) Master收到acquire znode节点下面有子节点创建的消息,进行计数
当收到所有节点创建了子节点后就可以往后执行了,也就是达成一致
(4) Master Procedure.sendGlobalBarrierReached
- Notify members that all members have acquired their parts of the barrier and that they can now execute under the global barrier.
创建zk节点,类型是reached znode,/hbase/online-snapshot/reached/t1-s2
等待所有成员完成任务,wait for all members to report barrier release
(5) HRegionServer监听到zk事件,发现是reachedZnode节点,触发Subprocedure的receiveReachedGlobalBarrier
Subprocedure往下执行,Subprocedure.insideBarrier,这里的Subprocedure是FlushSnapshotSubprocedure
在Subprocedure.insideBarrier里面执行HRegion的flush和snapshot
完成任务后,Subprocedure在reachedZnode节点下创建子节点说明他已经完成了任务,并且结束Subprocedure
(6) Master端收到reachedZnode节点下面有子节点创建的消息,进行计数
当收到所有Subprocedure创建子节点的消息后,就可以说明所有任务都执行完成了,往下继续执行
(7) Procedure.sendGlobalBarrierComplete
本次Procedure结束
Snapshot的目录结构见SnapshotDescriptionUtils
* Snapshots are laid out on disk like this:
*
* <pre>
* /hbase/.snapshots
* /.tmp <---- working directory
* /[snapshot name] <----- completed snapshot
* </pre>
*
* A completed snapshot named 'completed' then looks like (multiple regions, servers, files, etc.
* signified by '...' on the same directory depth).
*
* <pre>
* /hbase/.snapshots/completed
* .snapshotinfo <--- Description of the snapshot
* .tableinfo <--- Copy of the tableinfo
* /.logs
* /[server_name]
* /... [log files]
* ...
* /[region name] <---- All the region's information
* .regioninfo <---- Copy of the HRegionInfo
* /[column family name]
* /[hfile name] <--- name of the hfile in the real region
* ...
* ...
* ...
相关推荐
hbase-hbck2-1.1.0-SNAPSHOT.jar
2. **增量备份**:HBase支持基于时间戳的快照功能,可以通过`hbase snapshot`命令创建快照,然后将这些快照导出到另一个集群或HDFS位置。 3. **压缩备份**:在备份过程中,可以对数据进行压缩,减少存储空间。HBase...
HBCK是HBase1.x中的命令,到了HBase2.x中,HBCK命令不适用,且它的写功能(-fix)已删除; HBCK2已经被剥离出HBase成为了一个单独的项目,如果你想要使用这个工具,需要根据自己HBase的版本,编译源码。其GitHub地址...
参考:https://blog.csdn.net/yangbutao/article/details/12911487
建造mvn clean package跑步创建快照并立即导出到S3 hadoop jar target/snapshot-s3-util-1.0.0.jar ... BackupUtil [-a] -b <arg> -c | -e | -i | -x [-d ] -k <arg> [-l ] [-m ] [-n ] [-p ] -s <arg> [-t <arg>
3. 配置环境变量:在系统环境变量中添加Geomesa-HBase的路径,如`export GEOMESA_HBASE_HOME=/path/to/geomesa-hbase-2.1.0-SNAPSHOT`。 4. 链接HBase:在HBase的conf/hbase-site.xml中配置Geomesa的相关属性,如`...
该文件为hbase hbck2 jar;适用于hbase 2.x维护,hbase 1.x不适用;对于HBase跨集群HD集群迁移,当HDFS文件迁移后,...当前版本:hbase-hbck2-1.3.0.jarhbase hbck -j /opt/software/hbase-hbck2-1.3.0-SNAPSHOT.jar
【标题】中的 "apache_hbase_reference_guide-3.0.0-SNAPSHOT" 指出了这是一份关于 HBase 版本 3.0.0 的快照版官方参考指南。这意味着它可能包含了 3.0.0 版本即将发布的特性以及可能的不稳定因素。参考指南通常详细...
* hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'snap_test' -copyto /data/huang_test:将快照导出到 HDFS * clone_snapshot 'snap_test', 'test':将快照恢复到 HBase 表中 五、手动修复 ...
/usr/hdp/2.3.4.7-4/hbase/bin/hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot snapshot 'snap_table_test1' copy-to hdfs://10.106.1.165:8020/apps/hbase/data --overwrite ``` #### 三、目标集群操作...
在描述中提到的 "atlas hbase 编译好的 hook 包" 指的是这个 `apache-atlas-hbase-hook-2.0.0-SNAPSHOT` 文件,这是一个已经编译完成的可部署组件,可以直接在运行中的 Atlas 和 HBase 集群上使用。SNAPSHOT 版本...
在下载并解压“ranger-2.0.0-SNAPSHOT-hbase-plugin.tar.gz”文件后,我们得到了“ranger-2.0.0-SNAPSHOT-hbase-plugin”目录,这包含了所有必要的组件和服务。安装过程通常包括以下几个步骤: 1. **系统准备**:...
赠送jar包:phoenix-core-4.7.0-HBase-1.1.jar; 赠送原API文档:phoenix-core-4.7.0-HBase-1.1-javadoc.jar; 赠送源代码:phoenix-core-4.7.0-HBase-1.1-sources.jar; 赠送Maven依赖信息文件:phoenix-core-4.7.0...
hbase(main):003:0> snapshot 'test', 'test_snapshot' ``` 上述命令会在几秒内完成,并且对整个集群的性能影响几乎可以忽略不计。 2. **查看快照**:使用`list_snapshots`命令可以列出当前所有的快照信息,包括...
HBase是Apache的一个开源非关系型分布式数据库(NoSQL),它是建立在Hadoop文件系统(HDFS)之上,适用于需要快速读/写访问大量随机数据的场景。HBase采用了Google的Bigtable数据模型,底层物理存储采用了列存储的...
hbase hbck2 jar; 完整打包;...使用命令:hbase hbck -j hbase-hbck2-1.3.0-SNAPSHOT.jar fixMeta,最后两个参数分别代表 hbck2 jar包路径,维护命令(hbase-hbck2-1.3.0-SNAPSHOT.jar fixMeta)
- **修订历史**:版本 0.97.0-SNAPSHOT 发布于 2013 年 4 月 7 日,由周海汉完成中文版翻译整理工作。与之前的 0.90 版本相比,文档内容进行了较大的补充和更新。 #### 二、HBase 快速入门 - **介绍**:HBase 被...
hive0.8.1和hbase0.92.0集成的hive-hbase-handler.Jar包,里面包含:hbase-0.92.0.jar、hbase-0.92.0-tests.jar、hive-hbase-handler-0.9.0-SNAPSHOT.jar。经测试没有问题。
它支持多种数据存储和服务,包括Hadoop、Hive、HBase等。Ranger 的一个重要功能是为这些组件提供细粒度的访问控制,确保数据的安全性。在这个场景中,我们关注的是Ranger与HBase的集成,即“ranger-2.0.0-hbase-...
/hbase/archive (1) 进行snapshot或者升级的时候使用到的归档目录。compaction删除hfile的时 候,也会把旧的hfile归档到这里等。 /hbase/corrupt (2) splitlog的corrupt目录,以及corrupt hfile的目录。