HBase复制

HBase复制是一种在不同HBase部署中复制数据的方法。它能够作为一种故障恢复的方法,并提供HBase层次的高可用性。在实际应用中,比如。能够将数据从一个面向页面的集群拷贝到一个MapReduce集群,后者能够同一时候处理新数据和历史数据。然后再自己主动将数据传回面向页面请求的集群。

HBase复制中最主要的架构模式是“主推送”(master-push),由于每一个region server都有自己的WAL(或HLog)。所以非常easy保存如今正在复制的位置。正如众所周知的解决方式-Mysql的主/从复制,仅仅使用二进制文件来跟踪改动。一个主集群能够将数据拷贝到随意数目的从集群,每一个region server都会參与复制自己的改动。很多其它的关于主/从复制或其它类型的复制,能够參考文章《How Google Serves Data From Multiple Datacenters》。

复制是异步进行的,意味着集群能够是地理上彼此远离的,它们之间的连接能够在某个时刻断开,在主集群上的改动不能立即在从集群上进行同步(终于一致性)。

这里使用的复制格式从概念上和《MySQL’s statement-based replication》类似。

和SQL语句不同,全部的WALEdits(包含来自client的Put和Delete产生的多单元格操作)都会被复制以保证原子性。

来自每一个region server的HLog是HBase复制的基础。而且仅仅要它们须要将数据拷贝到从集群,它们就必须被保存到HDFS上。每一个region server从它须要的最老的日志開始复制。同一时候在zookeeper中保存当前恢复的位置来简化错误恢复。每一个从集群恢复的位置可能不同。但它们处理的HLog队列内容是同样的。

參与复制的集群的规模能够不正确等。

主集群会通过随机分配尽量均衡从集群的负载。

从0.92版本号起,HBase还支持另外的两种模式的复制:主<->主和循环复制。

下图展示了复制的工作流程和架构。


集群复制架构图

HBase复制部署

1)编辑集群中全部机器的${HBASE_HOME}/conf/hbase-site.xml文件,添加例如以下配置:

<property>
  <name>hbase.replication</name>
  <value>true</value>
</property>
改动完毕后,重新启动HBase集群。使配置生效。

2)在HBase shell中执行例如以下命令:

hbase(main):003:0> add_peer 'ID' 'CLUSTER_KEY'
hbase(main):004:0> start_replication

第一条命令是为从集群设置zookeeper集群信息,这样能够使得改动被同步到从集群上。第二条命令真正将改动过的记录公布到从集群上。为了保证工作能依照预期进行,用户必须保证已经在从集群上建立了一个同样的表的副本,表能够为空。但必须有同样的模式和表名。

注意:hbase-0.96和hbase-0.98已经没有了start_replication命令和stop_replication命令。hbase-0.98相较hbase-0.96,新增了set_peer_tableCFs、show_peer_tableCFs命令。在设定复制时,hbase-0.98须要使用set_peer_tableCFs设置。详细的有相应的帮助命令可供參考。

ID必须是一个短整数。CLUSTER_KEY的内容请參考下面模板:

hbase.zookeeper.quorum:hbase.zookeeper.property.clientPort:zookeeper.znode.parent
比方,zk.server.com:2181:/hbase

注意:假设两个集群使用同样的zookeeper集群。你不得不使用不同的 zookeeper.znode.parent,由于它们不能写入同样的目录中。


3)一旦你有一个对等(从)集群。你须要在你的列簇上使复制可用,要想达到这种效果,能够在HBase shell中运行例如以下命令:

hbase(main):005:0> disable 'your_table'
hbase(main):006:0> alter 'your_table', {NAME => 'family_name', REPLICATION_SCOPE => '1'}
hbase(main):007:0> enable 'your_table'
scope值为0(默认值)意味着它不会被复制。而scope值为1意味着它将被复制。

4)执行例如以下命令能够列出全部配置的对等(从)集群:

hbase(main):008:0> list_peers
5)执行例如以下命令将使对等(从)集群不可用:

hbase(main):009:0> disable_peer 'ID'
执行完命令后,HBase将停止将向对等(从)集群发送改动,可是它将一直跟踪全部新的WALs文件。以便当从集群可用时继续复制。

6)能够执行例如以下命令将使之前设置为不可用的对等(从)集群可用:

hbase(main):010:0> enable_peer 'ID'
7)执行以下的命令,能够移除一个从集群:

hbase(main):011:0> stop_replication
hbase(main):012:0> remove_peer 'ID'
须要注意的是。停止复制仍会完毕全部已在队列里的改动的复制。可是之后全部的处理都被停止了。为了确认你的配置都正常工作,你能够查看不论什么一个region server的日志文件。看是否有类似以下几行的内容:

Considering 1 rs, with ratio 0.1
Getting 1 rs from peer cluster # 0
Choosing peer 10.10.1.49:62020
这个样例表示有一个region server被选择做复制。

和复制有关的其它一些配置项:

<property>
	<name>replication.source.nb.capacity</name>
	<value>5000</value>
<description> 主集群每次像备集群发送的entry最大的个数,推荐5000.可依据集群规模做出适当调整,slave集群服务器假设较多,可适当增大,默认是25000</description>
</property>

<property>
	<name>replication.source.size.capacity</name> 
	<value>4194304</value> 
	<description> 主集群每次像备集群发送的entry的包的最大值大小,不推荐过大,默认是64MB(64*1024*1024)</description>
</property>

<property>
	<name>replication.source.ratio</name>
	<value>1</value>
	<description> 主集群里使用slave服务器的百分比。默认是0.1</description>
</property>

<property>
	<name>hbase.regionserver.wal.enablecompression</name>
	<value>false</value>
	<description> 主集群关闭hlog的压缩</description>
</property>

<property>
	<name> replication.sleep.before.failover</name>
	<value>5000</value>
	<description> 主集群在regionserver当机后几毫秒開始运行failover</description>
</property>

转载请注明出处: http://blog.csdn.net/iAm333

转载于:https://www.cnblogs.com/wzzkaifa/p/6724089.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通信号基本的数字调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、相对(差分)相移键控(DPSK)在接收端可以基于想干解调或非相干解调还原数字基带信号+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值