HBase 高可用性
1、Replication 之 Master <--> Master 互备
Master1 (所用zookeeper所处节点 hadoop[01-05] ):
-- add_peer '1',"hadoop01,hadoop02,hadoop03,hadoop04,hadoop05:2181:/hbase"
-- create 'test1',{NAME => 'cf1',REPLICATION_SCOPE => '1'}
-- put 'test1','rowkey001','cf1:col1','value01'
Master2 (所用zookeeper所处节点NM-304-SA5212M4-BIGDATA-1[06-10] ):
-- add_peer '1',"hadoop06,hadoop07,hadoop08,hadoop09,hadoop10:2181:/hbase"
-- create 'test1',{NAME => 'cf1',REPLICATION_SCOPE => '1'}
-- put 'test1','rowkey002','cf1:col1','value02'
[注]:如果使用同一zookeeper集群,那么hbase在zookeeper中应使用不同的znode
2、Replication 之 Master --> Slave
Master集群1(hadoop01):
-- add_peer '1',"hadoop01,hadoop02,hadoop03,hadoop04,hadoop05:2181:/hbase"
-- create 'test1',{NAME => 'cf1',REPLICATION_SCOPE => '1'}
-- put 'test1','rowkey001','cf1:col1','value01'
Slave集群2(hadoop06):
-- create 'test1',{NAME => 'cf1'}
hbase org.apache.hadoop.hbase.mapreduce.replication.VerifyReplication --families=cf1 1 test_xbk
如果有多个families,以逗号分隔。
3、CopyTable
执行命令前,需先创建表。
支持时间区间、row 区间,改变表名称,改变列簇名称,指定是否copy删除数据等功能。
A、同一个集群不同表名称
-- hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=tableCopy srcTable
B、跨集群 copy 表
-- hbase org.apache.hadoop.hbase.mapreduce.CopyTable --starttime=1453445763941 --endtime=1453445797041 -- peer.adr="hadoop01,hadoop02,hadoop03,hadoop04,hadoop05:2181:/hbase" --peerId=1 --families=ct:ct --new.name=copytable copytable
MR 的 map 数量与表的 region 数相同,与 HFile 文件个数无关。
CopyTable 工具采用 scan 查询,写入新表时采用 put 和 delete API,全是基于 hbase 的 client api 进行读写,无法使用 Import 工具的 bulk 导入。
4、HBase Snapshots
对于 hbase 数据备份及数据复制来说,以往会采用 CopyTable 或 ExportTable 或在禁用 hbase 表后在HDFS中复制所用 hfiles 。
但 CopyTable 和 ExportTable 会降低 region server 的性能,禁用表代表着不能写也不能读。
HBase Snapshots 允许你克隆一个表没有创建数据副本,并且最小限度的影响 Region Servers 。导出表到另一个集群不应该对 Region Servers 产生影响。
在创建snapshot后,可以通过ExportSnapshot工具把快照导出到另外一个集群,实现数据备份或者数据迁移。
操作步骤:
A、创建快照: hbase snapshot -n xbk_snapshot -t xbk
或 hbase shell> snapshot 'test1', 'xj_snapshot'
B、把快照导出到另外一个集群: hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot xj_snapshot -copy-to hdfs://hadoop01:8020/hbase (-chuser MyUser -chgroup MyGroup -chmod 700 -mappers 16)
C、把快照copy成一个新的表: clone_snapshot 'test_snapshot','testsnapshot'
5、Export/Import
通过Export导出数据到目标集群的hdfs,再在目标集群执行import导入数据,Export支持指定开始时间和结束时间,因此可以做增量备份。
hbase org.apache.hadoop.hbase.mapreduce.Export
Export工具参数如下:


HBase 高可用性的更多相关文章
- [转]HBase高可用性的新阶段
From:http://m.csdn.net/article_pt.html?arcid=2823943 Apache HBase是一个面向线上服务的数据库,其原生支持Hadoop的特性,使其成为那些 ...
- HBase 实战(2)--时间序列检索和面检索的应用场景实战
前言: 作为Hadoop生态系统中重要的一员, HBase作为分布式列式存储, 在线实时处理的特性, 备受瞩目, 将来能在很多应用场景, 取代传统关系型数据库的江湖地位. 本篇主要讲述面向时间序列/面 ...
- 大数据组件原理总结-Hadoop、Hbase、Kafka、Zookeeper、Spark
Hadoop原理 分为HDFS与Yarn两个部分.HDFS有Namenode和Datanode两个部分.每个节点占用一个电脑.Datanode定时向Namenode发送心跳包,心跳包中包含Datano ...
- HBase与MongDB等NoSQL数据库对照
HBase概念学习(十)HBase与MongDB等NoSQL数据库对照 转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数 ...
- Hadoop 面试题之Hbase
Hadoop 面试题之九 16.Hbase 的rowkey 怎么创建比较好?列族怎么创建比较好? 答: 19.Hbase 内部是什么机制? 答: 73.hbase 写数据的原理是什么? 答: 75.h ...
- HBase概念学习(十)HBase与MongDB等NoSQL数据库对照
转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储. MySQL因为开源,而且生态 ...
- 【转】HBase 超详细介绍
---恢复内容开始--- http://blog.csdn.net/frankiewang008/article/details/41965543 1-HBase的安装 HBase是什么? HBase ...
- HBASE架构解析(二)
http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell( ...
- Hbase多master
单台master的配置 hbase.master master:60000 这是我们通常配置的,这样就定义了master是的ip和端口. 但是当我们需要配置多台master进行,我们只需要提供端口,因 ...
随机推荐
- 史上最简单的 SpringCloud 教程 | 第十四篇: 服务注册(consul)
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2017/07/12/sc14-consul/ 本文出自方志朋的博客 这篇文章主要介绍 s ...
- 【转】opatch学习
[转自:https://yq.aliyun.com/articles/28007,仅作学习用途] Opatch 是oracle公司开发的安装,卸载,检测patch冲突的工具,管理oracle所有已经安 ...
- QT基于model/view数据库编程2
Qt中数据编程主要分为以下两点:1.利用qt提供类 访问数据库或者成为简单的数据库编程2.数据库编程中引入model/view编程模型 基于model/view数据库编程: qt提供model类: Q ...
- Percona-Tookit工具包之pt-table-checksum
Preface The master-slave replication is commonly used in our product evironment.On account o ...
- [原]解决phpstudy下的nginx无法运行的问题
一直在用phpstudy下的apache,今天忽然想切换到nginx,出现了一些错误,最终还是解决了. 之前是php 5.3 + apache 现在是php 5.3n + nginx 问题就出在这n上 ...
- pig分组统计例子
1.选取数据样本 在pig安装目录下有一个文件tutorial/data/excite-small.log,其中的数据分为3列,中间用制表符分隔,第一列为用户ID,第二列为Unix时间戳,第三列为查询 ...
- Python学习笔记:第一天python基础
目录 1. python简介 2. python的安装 3. 编写第一个helloword 4. 变量和常量 5. 数据类型 6. 输入 7. if语句 1. python简介 python是在198 ...
- ruby mysql2
1. mysql2连接选项 Mysql2::Client.new( :host, :username, :password, :port, :database, :socket = '/path/to ...
- unity独立游戏开发日记2018/09/27
今天优化了下昨天的代码,并且添加了树木和其他资源的生成.还修复了接近石头后,挖掘图标不出现的bug.目前可以在unity中稳定60-70fps. 详看文章:https://www.cnblogs.co ...
- Linux C语言结构体-学习笔记
Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...