• HBase Snapshot功能介绍


    HBase在0.94之后提供了Snapshot功能,一个snapshot其实就是一组metadata信息的集合,它可以让管理员将表恢复到以前的一个状态。snapshot并不是一份拷贝,它只是一个文件名的列表,并不拷贝数据。一个全的snapshot恢复以为着你可以回滚到原来的表schema和创建snapshot之前的数据。在0.95之后默认开启snapshot功能,之前版本的需要手动开启对snapshot的支持,修改hbas-site.xml文件添加

    <property>    
        <name>hbase.snapshot.enabled</name>    
        <value>true</value>
    </property>

    主要提供了以下几个操作(目前只是对单个表进行这样的操作):

    #take snapshot
    hbase> snapshot 'tableName', 'snapshotName'
     
    #list snapshots
    hbase> list_snapshots 
    #delete snapshot
    hbase> delete_snapshot 'snapshotName'
     
    #clone snapshot
    hbase> clone_snapshot 'src_snapshot','dest_snapshot'
     
    #restore snapshot, 首先必须将表disable掉
    hbase> restore_snapshot 'snapshotName'

    实践的问题

    目前我们线上的集群是hbase-0.94的,开启了snapshot功能,实践了一下,有以下几个问题:

    • 元数据存在不一致状态时,一般的hbase一做split的时候就会出现暂态的元数据不一致
    • 需要做restore的时候它会先对表的当前状态做一下snapshot,成功之后才会去restore,这个有点没必要,有时候我们正是因为元数据不一致才会去做restore,这样就会没办法去做
    • 生成snapshot的时候只能是一张表一张表去做,不知道后面的hbase版本会不会一个操作解决所有表的snapshot
     
    后期计划升级hbase,尝试新版本的snapshot会不会更实用可靠一些。
  • 相关阅读:
    python之路_socketserver模块
    java 字符串String操作工具类
    maven常用插件
    查杀oracle锁表
    正则表达式汇总
    javascript 数组操作
    javascript中sleep等待实现
    js获取服务端IP及端口及协议
    log4j中的MDC和NDC
    如何设置(修改)jetty(maven插件maven-jetty-plugi)的端口
  • 原文地址:https://www.cnblogs.com/nexiyi/p/hbase_snapshot_094.html
Copyright © 2020-2023  润新知