使用Hbase快照将数据输出到互联网区测试环境的临时Hbase集群
通过snapshot对内网测试环境Hbase生产集群的全量数据(包括原始数据和治理后数据)复制到互联网Hbase临时集群。
工具及原理:
1) Hbase自带镜像导出工具(snapshot和ExportSnapshot)
2) ExportSnapshot将执行一个MapReduce的Job ,它工作在HDFS层级,不会对Region server造成额外的负担,仅需指定HDFS的位置(即:输出集群的hbase.rootdir)。
步骤:
1) 先确认Hbase的配置项(hbase-site.xml)是否打开, 在0.95之后的版本都是默认开启的,本次测试采用的是0.98的版本。
2) 对表(如:exmaple_table)创建一个快照
$ bin/hbase shell
hbase> snapshot ‘exmaple_table’, ‘snapshot_example_table’
快照目录:
/hbase/.hbase-snapshot:存储快照的元数据
3) 使用ExportSnapshot命令导出快照到临时集群,使用8个mapper(可根据自身设备内存及数据大小大小进行具体的划分),因为为内网环境,忽略带宽的影响,一般的外网环境则带宽限定在200 MB内(megabytes per second)根据实际情况设定来看。对内存的限制可以在yarn.stie.xml文件中进行具体的限制,主要有两项:
$ bin/hbaseorg.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snapshot_example_table -copy-to hdfs://server8:8082/test -mappers 4 -bandwidth 200
ð -copy-to后面可以是任意HDFS目录,这里是把快照直接导入到Hbase目的集群的根目录下
ð 导出目录的/archive目录下存放实际的数据。
ð 导出目录的/.hbase-snapshot目录下存放实际的数据。
ð 该操作要用hbase的账户执行,并且在hdfs当中要有hbase的账户建立的临时目录(hbase.tmp.dir参数控制)
注:
ð snapshot是针对表的,需要写脚本对所有表创建snapshot。
ð 根据实际网络配置来调整带宽参数
4) 查看所有快照:
$hbase> list_snapshots
统计表中的行数:
$hbase> count example_lable
统计表的大小:
$hbase> hadoop fs --count /test/archive
通过hadoop层级将快照文件拷贝出来:
$hbase> hadoop fs --copyToLocal /test /tmp
将此文件导入到其他hbase集群的主机任意目录之后,再运行一下命令把相关的文件导入到hdfs文件系统
$hadoop fs -copyFromLocal /opt/hbase/hadoop/tmp/test/archive /hbase
$hadoop fs -copyFromLocal /opt/hbase/hadoop/tmp/test/.hbase-snapshot /hbase
5) 在临时集群上恢复快照
$hbase> restore_snapshot 'snapshot_example_table'
6) 确认表是否恢复成功
$hbase> list
$hbase> scan 'example_table',{LIMIT=>5}
$bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter ‘example_table’ (比count效率高)
注:主要步骤已加粗显示
使用Hbase快照将数据输出到互联网区测试环境的临时Hbase集群的更多相关文章
- HBase快照迁移数据失败原因及解决办法
目录 目录 1 1. 背景 1 2. 环境 1 3. 执行语句 1 4. 问题描述 1 5. 错误信息 2 6. 问题原因 3 7. 解决办法 4 1. 背景 机房裁撤,需将源HBase集群的数据迁移 ...
- 15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...
- 搭建互联网架构学习--006--duboo准备之zk集群部署安装
dubbo集群部署安装依赖于zookeeper,所以先安装zookeeper集群. 1.准备三台机器做集群 2.配置 配置java环境 ,2,修改操作系统的/etc/hosts文件,添加IP与主机名 ...
- 流式大数据计算实践(3)----高可用的Hadoop集群
一.前言 1.上文中我们已经搭建好了Hadoop和Zookeeper的集群,这一文来将Hadoop集群变得高可用 2.由于Hadoop集群是主从节点的模式,如果集群中的namenode主节点挂掉,那么 ...
- 大数据学习笔记03-HDFS-HDFS组件介绍及Java访问HDFS集群
HDFS组件概述 NameNode 存储数据节点信息及元文件,即:分成了多少数据块,每一个数据块存储在哪一个DataNode中,每一个数据块备份到哪些DataNode中 这个集群有哪些DataNode ...
- 大数据学习之旅2——从零开始搭hadoop完全分布式集群
前言 本文从零开始搭hadoop完全分布式集群,大概花费了一天的时间边搭边写博客,一步一步完成完成集群配置,所以相信大家按照本文一步一步来完全可以搭建成功.需要注意的是本文限于篇幅和时间的限制,也是为 ...
- 大数据之虚拟机配置和环境准备及hadoop集群搭建
一.VMnet1和VMnet8路由器 VMware-workstation软件选择默认安装时,会自动创建VMnet1和VMnet8路由器设备.(安装失败使用CCleaner清理vm软件) VMnet1 ...
- 新闻网大数据实时分析可视化系统项目——3、Hadoop2.X分布式集群部署
(一)hadoop2.x版本下载及安装 Hadoop 版本选择目前主要基于三个厂商(国外)如下所示: 1.基于Apache厂商的最原始的hadoop版本, 所有发行版均基于这个版本进行改进. 2.基于 ...
- HBase高速导入数据--BulkLoad
Apache HBase是一个分布式的.面向列的开源数据库.它能够让我们随机的.实时的訪问大数据.可是如何有效的将数据导入到HBase呢?HBase有多种导入数据的方法.最直接的方法就是在MapRed ...
随机推荐
- Ceres Solver: 高效的非线性优化库(二)实战篇
Ceres Solver: 高效的非线性优化库(二)实战篇 接上篇: Ceres Solver: 高效的非线性优化库(一) 如何求导 Ceres Solver提供了一种自动求导的方案,上一篇我们已经看 ...
- HDU 2586——How far away ?——————【LCA模板题】
How far away ? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- mysql连接error,Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection .....
完整error Establishing SSL connection without server's identity verification is not recommended. Accor ...
- vuex文档(附加个人理解)
Vuex是什么? Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到Vue 的 ...
- 在 Angularjs 中 ui-sref 和 $state.go 如何传递单个多个参数和将对象作为参数
一: 如何传递单个参数 首先,要在目标页面定义接受的参数: 传参, 接收参数, 在目标页面的controller里注入$stateParams,然后 "$stateParams.参数名&qu ...
- 在MFC对话框中快速集成三维控件
在MFC的对话框中可以方便的集成AnyCAD三维控件(c++版本),遵循一下几步: 1.在对话框资源中增加一个Static控件,ID为IDC_STATIC_3D,并且把它的Notify属性设置为Tru ...
- ASP Session的功能的缺陷以及解决方案
转http://www.cnblogs.com/jhy55/p/3376925.html 目前ASP的开发人员都正在使用Session这一强大的功能,但是在他们使用的过程中却发现了ASP Sessio ...
- POJ3233Matrix Power Series(矩阵快速幂)
题意 题目链接 给出$n \times n$的矩阵$A$,求$\sum_{i = 1}^k A^i $,每个元素对$m$取模 Sol 考虑直接分治 当$k$为奇数时 $\sum_{i = 1}^k A ...
- 【Python】python2 html safe string
import cgi s = '<>&' s += u'哈哈' print type(s) print s r = cgi.escape(s) print type(r) prin ...
- javascript动态修改对象的属性名
在做东钿业务系统的时候,经常碰到写很多重复的ajax对接,于是就想封装一个方法,但是接收data的字段名不一样,所以就需要用到动态对象属性名这个写法了.其实很简单.直接看一下代码吧.