ITPub博客

首页 > 大数据 > > hbase表的备份方法

hbase表的备份方法

作者:浪花小雨滴 时间:2020-05-22 15:57:50 0 删除 编辑

在实际的开发工作中,数据开发人员会进行一些数据的迁移或者数据的备份工作,本文主要介绍hbase的备份方法

hbase提供了很简单的一种通过snapshot方式进行打快照和恢复快照.同时也可以通过这种方式定期的备份hbase数据,以防数据丢失.

一、hbase表级备份原理

对当前表做快照,可以使用恢复快照命令将表到某个时间点。

Snapshot 命令通常在秒级即可完成、快照只生成一些元数据,不会对文件本身产生影响。HBase 提供导出快照功能,可以将快照文件导出到另外的HBase集群进行恢复。也可以在原集群进行恢复。恢复在秒级完成。目前仅支持对当前时间点做全量快照,无法增量备份。

HBase 配置支持快照功能:

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

启动hbase shell

bin/hbase shell

执行快照命令

snapshot 'myTable','myTable20200220'

列出快照

list_snapshots

删除快照

delete_snapshot 'myTable20200220'

恢复某一个快照

restore_snapshot 'myTable20200220'

也可以很方便的将快照导出到另外一个集群

bin/hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot MySnapshot -copy-to hdfs://hadoop-data-2:8082/hbase -mappers 16


二、定期的备份hbase表脚本

最后提供一个定期备份的脚本

#!/bin/sh
export HBASEPATH=/usr/local/hdp/hbase/lib
export BACKUP_DIR=/home/hbasebackup/
export DATE=`date +"%Y%m%d"`
export DATE_2=`date -d "-7 day" +"%Y%m%d"`
export hbase_table_backup_log=hbase.bak.$DATE.log
export hbase_table_backup_shell=hbase.bak.sh
if [ -f $BACKUP_DIR/$hbase_table_backup_log ] ; then
echo " Today's(`date +"%Y-%m-%d %H:%M:%S"`) BACKUP job has done"
else
echo " `date +"%Y-%m-%d %H:%M:%S"` backup hbase start...."
echo "snapshot  'hbase_','hbase_xx_$DATE' " > $BACKUP_DIR/$hbase_table_backup_shell
echo "delete_snapshot 'hbase_xxx_$DATE_2' " >> $BACKUP_DIR/$hbase_table_backup_shell
echo "exit" >> $BACKUP_DIR/$hbase_table_backup_shell
sleep 10
$HBASEPATH/hbase shell $BACKUP_DIR/$hbase_backup_shell > "$BACKUP_DIR/$hbase_backup_log"
fi


希望本文对你有帮助!

感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3163886/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    40229