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 高可用性的更多相关文章

  1. [转]HBase高可用性的新阶段

    From:http://m.csdn.net/article_pt.html?arcid=2823943 Apache HBase是一个面向线上服务的数据库,其原生支持Hadoop的特性,使其成为那些 ...

  2. HBase 实战(2)--时间序列检索和面检索的应用场景实战

    前言: 作为Hadoop生态系统中重要的一员, HBase作为分布式列式存储, 在线实时处理的特性, 备受瞩目, 将来能在很多应用场景, 取代传统关系型数据库的江湖地位. 本篇主要讲述面向时间序列/面 ...

  3. 大数据组件原理总结-Hadoop、Hbase、Kafka、Zookeeper、Spark

    Hadoop原理 分为HDFS与Yarn两个部分.HDFS有Namenode和Datanode两个部分.每个节点占用一个电脑.Datanode定时向Namenode发送心跳包,心跳包中包含Datano ...

  4. HBase与MongDB等NoSQL数据库对照

    HBase概念学习(十)HBase与MongDB等NoSQL数据库对照 转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数 ...

  5. Hadoop 面试题之Hbase

    Hadoop 面试题之九 16.Hbase 的rowkey 怎么创建比较好?列族怎么创建比较好? 答: 19.Hbase 内部是什么机制? 答: 73.hbase 写数据的原理是什么? 答: 75.h ...

  6. HBase概念学习(十)HBase与MongDB等NoSQL数据库对照

    转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储. MySQL因为开源,而且生态 ...

  7. 【转】HBase 超详细介绍

    ---恢复内容开始--- http://blog.csdn.net/frankiewang008/article/details/41965543 1-HBase的安装 HBase是什么? HBase ...

  8. HBASE架构解析(二)

    http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell( ...

  9. Hbase多master

    单台master的配置 hbase.master master:60000 这是我们通常配置的,这样就定义了master是的ip和端口. 但是当我们需要配置多台master进行,我们只需要提供端口,因 ...

随机推荐

  1. linux简介及虚拟机安装

    1.简介 计算机组成

  2. Object C学习笔记20-结构体(转)

    在学习Object C中的过程中,关于struct的资料貌似非常少,查阅了C方面的资料总结了一些学习心得! 一. 定义结构 结构体是一种数据类型的组合和数据抽象.结构体的定义语法如下: struct ...

  3. iOS之一个iOS开发人员完整的学习路线

    iOS开发能力 掌握(最好是精通)OC语言和runtime各种细节(读过相关的clang源码和runtime源码为佳).精通基本的framework(Foundation,UIKit等,平时干活用得最 ...

  4. python中and,or

    在很多逻辑语句中,常常会出现and,or这两个逻辑运算符. 下面直接上代码 print(0 or None) #None ''' or比较运算符: 当or旁两边都是真的话,那么会取第一个值 当or两边 ...

  5. 【模板】tarjan算法

    tarjan求强连通分量 #include<bits/stdc++.h> #define MAX 10005 using namespace std; int dfn[MAX],low[M ...

  6. 蓝图(Blueprint)详解

    Blueprint 模块化 随着flask程序越来越复杂,我们需要对程序进行模块化的处理,针对一个简单的flask程序进行模块化处理 举例来说: 我们有一个博客程序,前台界面需要的路由为:首页,列表, ...

  7. mysql的数据操作和内置功能总结

    一.数据的增删改查 1.插入数据 a.插入完整数据(顺序插入) INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); INSERT INTO 表名 ...

  8. dedecms左侧导航栏不显示问题

    dedecms左侧导航栏不显示问题 在做织梦项目时,经常会碰到后台左侧导航栏不显示的问题,如下所示: ​ 这主要是由于文件权限不足造成的.有两种方法 第一种:把 /data 文件夹全部改成 777 权 ...

  9. mybatis报错:查询一对多或多对多时只返回一条数据的问题

    问题: 使用映射文件实现查询一对多或多对多时只返回一条数据问题 解决方法: 导致这种情况出现的问题是因为两个表中的主键是一样所以出现了数据覆盖问题. 解决方式一:修改数据库表中的主键(这种方法比较麻烦 ...

  10. Leecode刷题之旅-C语言/python-53.最大子序和

    /* * @lc app=leetcode.cn id=53 lang=c * * [53] 最大子序和 * * https://leetcode-cn.com/problems/maximum-su ...