使用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 ...
随机推荐
- java字符串与二进制的相互转化
public class StrBinaryTurn { // 将Unicode字符串转换成bool型数组 public boolean[] StrToBool(String input) { boo ...
- Quartz.NET实现作业调度(3.0版本实现)定时执行一个任务
2.0版本请参考https://www.cnblogs.com/best/p/7658573.html这里的文章很详细: 我们现在想每5秒钟往txt文件夹里存储一个时间 首先:定义一个类,实现Quar ...
- Windows下使用beego遇到的问题
一.解决:cc1.exe: sorry, unimplemented: 64-bit mode not compiled in: 参考链接:http://blog.csdn.net/mecho/art ...
- 使用SpringSession管理分布式会话时遇到的反序列化问题
关于SpringSession相关的介绍和使用指南,可移步如下网址: [SpringSession管理分布式系统的会话Session] https://www.cnblogs.com/captaina ...
- Hibernate笔记6-JPA-注解
一.JPA简介--Java Persistence API. 是SUN公司推出的一套基于ORM的规范.hibernate框架中提供了JPA的实现.JPA通过JDK5.0注解或XML描述对象-关系表的映 ...
- Python开发环境Wing IDE搜索工具介绍
Wing IDE编辑器的搜索工具提供了一个基于友好GUI的搜索和替换工具. 某些情况下搜索可能会跨越整个文件,也有可能被限制到当前所选择的区域:可以区分大小写,也可以设置为不区分:可以被限制为只匹配整 ...
- C# 常见的字符串操作
例1: 遍历字符串中的每一个字符: string src = "aa-b - c-a - d-e- d-e- a- a-b-cc"; foreach(char c in src) ...
- WPF创建SignalR服务端(转)
在网上看到了一个帖子,比较详细,博主写的很好. 地址:http://blog.csdn.net/lordwish/article/details/51786200
- C#开发android应用实战 源码
原书名: Professional Android Programming with Mono for Android and .NET/C# Download Title Size Down ...
- 【extjs6学习笔记】1.10 初始: 定义类
http://www.extjs-tutorial.com/extjs/define-new-class-in-extjs