hbase备份还原opentsdb数据之Export/Import(增量+全量)

前言

  本文基于伪分布式搭建 hadoop+zookeeper+hbase+opentsdb之后,文章链接:https://www.cnblogs.com/yybrhr/p/11128149.html,对于Hbase数据备份和恢复的几种方法已经有很多大神说明了很多(https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html对hbase迁移数据的4种机制都做了说明),我就不做过多描述。本文主要实战Export 本地备份还原opentsdb数据,以及数据的迁移。

opentsdb在hbase中生成4个表(tsdb, tsdb-meta, tsdb-tree, tsdb-uid),其中tsdb这个表最重要,数据迁移时,备份还原此表即可。

1、全量备份

本文测试本地备份服务器hostname:hbase3,ip为192.168.0.214。

# 备份表:tsdb,本地存放路径/opt/soft/hbase/hbase_bak/hbase_bak_1562252298
hbase org.apache.hadoop.hbase.mapreduce.Export -Dhbase.export.scanner.batch=2000 -D mapred.output.compress=true  tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak_1562252298

2、跟踪进度

#根据提示:可以通过 http://hbase3:8088 跟踪进度

http://hbase3:8088

#问题:但是无法访问 http://hbase3:8088,但http://192.168.0.214:8088/cluster则访问
http://192.168.0.214:8088
#解决:配置hosts,映射hbase3(WIN+R——>输入:drivers——>进入子路径:/etc/hosts——>添加 192.168.0.214   hbase3)
 192.168.0.214   hbase3


# 问题

# 解決:状态与进度跟踪

# 验证

3、错误解决:

is running 17037824B beyond the ‘VIRTUAL‘ memory limit. Current usage: 207.8 MB of 1 GB physical memory used; 2.1 GB of 2.1 GB virtual memory used. Killing container

Container killed on request. Exit code is 143 

Container exited with a non-zero exit code 143

【1】错误log日志

后台日志:提示可以在web上查看
 
web日志:

【2】异常分析

我们在后台日志可以看到,is running 17037824B beyond the ‘VIRTUAL‘ memory limit. Current usage: 207.8 MB of 1 GB physical memory used; 2.1 GB of 2.1 GB virtual memory used. Killing container.这句话其实就告诉了原因:

207.8 MB: 任务所占的物理内存

1 GB  : 是hadoop的mapred-site.xml配置文件中设置的mapreduce.map.memory.mb 的值。

2.1 GB : 第一个2.1GB是程序占用的虚拟内存

2.1 GB : 是hadoop的mapred-site.xml配置文件中设置的mapreduce.map.memory.mb 的值 乘以 yarn.nodemanager.vmem-pmem-ratio 的值得到的。

其中yarn.nodemanager.vmem-pmem-ratio 是 虚拟内存和物理内存比例,在yarn-site.xml中设置,默认是2.1GB,

很明显,这句话的意思是:分配给container虚拟内存只有2.1GB,但是目前container已经占用了2.1GB。所以kill掉了这个container。

上面只是map中产生的报错,当然也有可能在reduce中报错,如果是reduce中,那么就是对应mapreduce.reduce.memory.mb 和 yarn.nodemanager.vmem-pmem-ratio。

【3】解决方案

参考网址:

 https://blog.csdn.net/T1DMzks/article/details/78818874 https://www.cnblogs.com/missie/p/4370135.html
# 进入目录
cd /opt/soft/hadoop/hadoop-3.1.2/etc/hadoop/
# 进入编辑
vim mapred-site.xml
# 添加以下内容

<!--任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1。-->
<property>
  <name>yarn.nodemanager.vmem-pmem-ratio</name>
  <value>2048</value>
</property>
# 添加重启hadoop、hbase:注意先停habse,并且不要要kill,因为hadoop在不断的切割,用stop停止,它会记录下来,下次启动继续切割 stop-hbase.sh  stop-all.sh start-all.sh start-hbase.sh


【4】结果验证

## 验证:
# 1、先删除本地之前的备份文件
 rm -fr /opt/soft/hbase/hbase_bak/hbase_bak1562252298
# 2、再次备份
hbase org.apache.hadoop.hbase.mapreduce.Export -Dhbase.export.scanner.batch=2000 -D mapred.output.compress=true  tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak1562252298

# 3、结果查看:进入备份文件路径查看内容(一般成功会生成_SUCCESS和若干part-m-文件)
cd /opt/soft/hbase/hbase_bak/hbase_bak1562252298
ll
   

在web上可以查看进度和状态:

在运行的时候会生成两个YarnChild进程

4、还原

【1】停止写入程序

【2】清空表

# 进入到shell命令
hbase shell
# 清空要还原的表,只留表结构
truncate ‘tsdb‘
# 查看表
scan ‘tsdb‘

【3】还原

# 此步骤在非shell命令下执行,因此需要exit退出shell命令,我这里重开一个窗口做

hbase org.apache.hadoop.hbase.mapreduce.Driver import  tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak1562252298

查看进度


【4】验证

  当进度达到100%时,检查数据。

(1)hbase shell进行验证

# 进入shell命令
hbase shell

# 查看数据
scan ‘tsdb‘

(2)grafana验证


5、数据迁移:从一台服务器迁移到另一台服务器

本文从hbase3(ip:192.168.0.214)迁移到hbase1(ip:192.168.0.211),这两台服务器搭建的环境一样,并且做了互相免密登录。

【1】将刚刚hbase3备份的数据复制给hbase1

scp -r hbase3:/opt/soft/hbase/hbase_bak/hbase_bak1562252298/ hbase1:/opt/soft/hbase/hbase_bak/

【2】清空hbase1原本tsdb的数据

hbase1原本数据

清空

# 进入到shell命令
hbase shell
# 清空要还原的表,只留表结构
truncate ‘tsdb‘
# 查看表
scan ‘tsdb‘

【3】还原

【4】验证

6、增量备份

增量备份跟全量备份操作差不多,只不过要在后面加上时间戳。需要借助时间戳转换工具http://tool.chinaz.com/Tools/unixtime.aspx

开始时间:2019-07-10 00:00:00             对应时间戳:1562616000

结束时间:2019-07-10 14:00:00             对应时间戳:1562652000

hbase org.apache.hadoop.hbase.mapreduce.Export -Dhbase.export.scanner.batch=2000 -D mapred.output.compress=true  tsdb file:///opt/soft/hbase/hbase_bak/hbase_bak_1562601600-1562652000 1562601600 1562652000


原文地址:https://www.cnblogs.com/yybrhr/p/11156792.html

时间: 2024-10-10 07:16:23

hbase备份还原opentsdb数据之Export/Import(增量+全量)的相关文章

MySQL数据的备份还原及数据修复

在日常的生产环境中为什么要进行备份??备份可以使生产中的数据进行有效的灾难恢复:硬件故障.软件故障.自然灾害.误操作测试等数据丢失场景. 备份注意要点能容忍最多丢失多少数据恢复数据需要在多长时间内完成需要恢复哪些数据还原要点做还原测试,用于测试备份的可用性还原演练备份类型完全备份.不分备份完全备份:整个数据集部分备份:只备份数据子集,如部分库或表增量备份.差异备份增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂差异备份:仅备份最近一次完全备份以来变化的

xtrabackup 备份mysql数据库三: innobackupex 测试一个全量和两个增量的备份恢复测试

## 查看当前库中表的数据 ([email protected]) [test]>select count(*) from t_innodb; +----------+ | count(*) | +----------+ |        0 | +----------+ 1 row in set (0.00 sec) ## 执行插入数据操作,该操作在全备之后执行完成 ([email protected]) [test]>call addTest(100000,0); ## 执行全库备份 #

mysql备份脚本,一天执行一次全量备份,三次增量备份

线上一个小业务的mysql备份 全量备份 #!/bin/bash #crete by hexm at 2016-10-02 #scripte name : full_backup.sh #descriptioni : mysql full backup. oneday at a time. #time info date=`date +%Y%m%d` #time_now1=`date +%Y%m%d-%H:%M:%S` #dir info BACKUP_DIR="/app/dbbackup/fu

MySQL5.7.18 备份、Mysqldump,mysqlpump,xtrabackup,innobackupex 全量,增量备份,数据导入导出

粗略介绍冷备,热备,温暖,及Mysqldump,mysqlpump,xtrabackup,innobackupex 全量,增量备份 --备份的目的 灾难恢复:意外情况下(如服务器宕机.磁盘损坏等)对损坏的数据进行恢复和还原保证数据不丢失,最小程度地丢失需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 --备份与恢复概述 根据备份的方法可以分为: 1.Hot Backup(热备) 2.Cold Backup(冷备) 3.Warm Backup(温备) Hot Backup是指

监控服务器Cacti之四 用户授权及备份还原

本篇主要介绍下Cacti的用户授权和备份还原,这是最常用也是最重要的东西哦! 一.用户授权 Console---User Management---Add--Create Create后在当前页有相应的权限的设置 图中为只允许用户在相应的监控的机器上查看负载(Load Average) Add后的视图 最后Save即可. 用jacken账户登录 提示没有视图权限(取决于设置) 点右上角红色按钮即可看到指定监控的项目 二.备份还原 Cacti数据无非就存储在两个地方,一个是Mysql数据库,一个是

Centos 6.9 安装xtrabackup-2.4.8 通用包,yum安装,全量备份,增量备份

xtrabackup-2.4.8的安装及使用 ---Yum安装 官网地址:https://www.percona.com/doc/percona-xtrabackup/LATEST/installation/yum_repo.html [[email protected] ~]# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm [[

赋能云HBase备份恢复 百T级别数据量备份恢复支持

云HBase发布备份恢复功能,为用户数据保驾护航.对大多数公司来说数据的安全性以及可靠性是非常重要的,如何保障数据的安全以及数据的可靠是大多数数据库必须考虑的.2016 IDC的报告表示数据的备份(data-protection)和数据恢复(retention)是Nosql的最基础的需求之一. 为什么需要云HBase备份恢复???我们希望云HBase支持备份和恢复功能,主要原因: 用户直接访问操作数据库,可能存在安全风险:项目存在合规以及监管的强需求:对数据库恢复数据到任意时间点(归档到任意时间

mysql innobackupex xtrabackup 大数据量 备份 还原(转)

原文:http://blog.51yip.com/mysql/1650.html 作者:海底苍鹰 大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 一.Xtrabackup介绍 1,Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtra

用Mysqldump实现全库备份+binlog的数据还原

随着业务量的增长,数据库也是成倍增长,原来一直使用的全库备份不再适合现在的数据库了,动辄就备份10G-20G,太占用磁盘空间,所以就考虑用更简洁更快速更节省磁盘空间的备份方法,这就想到了使用binlog日志来进行备份和恢复,下面是具体实施的方法: 环境介绍: 操作系统:Centos 7.2 数据库:Mysql 5.6 一.安装Mysql和改配置文件 安装就不具体介绍了,网上教程很多,配置文件需要添加以下选项: vim /etc/my.cnf log_bin = mysql-binlog    #