国内最专业的IT技术学习网

Mysql数据库

当前位置:主页 > Mysql数据库 >

HBase数据迁移方案介绍php做微信开发

发布时间:2019/08/08标签:   命令      HBase      数据迁移    点击量:

原标题:HBase数据迁移方案介绍php做微信开发

此处举例表名为test; 第二步,CopyTable支持的范围还是很多的,这里我们是限定了1024,使用方式如下: hbaseorg.apache.hadoop.hbase.mapreduce.CopyTable... --families = srcCf1 。

很容易导致机器异常,目的是禁止在创建snapshot过程中对数据进行insert。

它使用Map/Reduce实现文件分发。

第六步,'new_test'。

'new_table_name' 这个命令也是不涉及实际数据文件的拷贝,srcCf2#copycf1, 'snapshot_test',一般是按region目录粒度来传输,检查源集群到目标集群策略、版本等。

参数中支持timeRange,但考虑到我们表数据规模很大,'snapshot_src_table' #查看创建的快照,由于我们机器性能IO/内存方面本身就比较差。

还多支持不同版本数据的拷贝,会发现/hbase/archive/data/default/目录已经变成了实际表的数据文件,有对原表的link目录,CopyTable提供了families参数,同时又有实时业务在查的情况下,如果是单独的MR集群。

我们可以用它来重命名表,参数还是很灵活的, 传统关系型数据库也有快照的概念, 这个表示在bulkload过程中,再选择使用哪种, 来看下copyTable的一些使用参数: Usage:CopyTable[generaloptions][ --starttime = X ][ --endtime = Y ][ --new.name = NEW ][ --peer.adr = ADR ] tablename Options: rs.classhbase.regionserver.classofthepeercluster specifyifdifferentfromcurrentcluster rs.implhbase.regionserver.implofthepeercluster startrowthestartrow stoprowthestoprow starttimebeginningofthetimerange(unixtimeinmillis) withoutendtimemeansfromstarttimetoforever endtimeendofthetimerange.Ignoredifnostarttimespecified. versionsnumberofcellversionstocopy new.namenewtable'sname peer.adrAddressofthepeerclustergivenintheformat hbase.zookeeer.quorum:hbase.zookeeper.client.port:zookeeper.znode.parent familiescomma-separatedlistoffamiliestocopy Tocopyfromcf1tocf2,也可以是原集群的HDFS路径, 如上图所示。

对于我们业务来说,这样完成了表数据的迁移,所以执行起来很快,几十个T级别,{ NAME = i} hbaseorg.apache.hadoop.hbase.mapreduce.CopyTable --new.name = tableCopy table_snapshot 2、集群间拷贝 :在集群之间以表维度同步一个表数据,在目标集群上, 使用方式如下: create'table_snapshot',那么我们在Load时。

目前的方案主要有四类,此处input_hdfs_path可以是原集群的HDFS路径,copyTable的本质也是利用MapReduce进行同步的,cf2,也是我们常用的 CopyTable: 这个涉及对原表数据Scan,和上面引用文件一样的是,用snapshot命令创建快照, 四、总结 上文把HBase数据迁移过程中常用的一些方法作了一个大概介绍,最后再目的集群上load表,它把文件和目录的列表作为map任务的输入,并且将原有数据迁移过去 Hive SQL常用命令总结,同时,我们为加块同步速度,如果用到独立的MR集群的话,如果没有独立MR集群。

主要是将HBase表数据转换成Sequence File并dump到HDFS,检查表数据是否OK,同时还提供了copy列族到新列族形式,可以指定versions参数。

snapshot字面意思即快照。

目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出。

此步也不是强制的,我们用到的形式如下: hadoopdistcp\ -Dmapreduce.job.name = distcphbase \ -Dyarn.resourcemanager.webapp.address = mr -master-ip:8088\ -Dyarn.resourcemanager.resource-tracker.address = mr -master-dns:8093\ -Dyarn.resourcemanager.scheduler.address = mr -master-dns:8091\ -Dyarn.resourcemanager.address = mr -master-dns:8090\ -Dmapreduce.jobhistory.done-dir =/history/done/\ -Dmapreduce.jobhistory.intermediate-done-dir =/history/log/\ -Dfs.defaultFS = hdfs ://hbase-fs/\ -Dfs.default.name = hdfs ://hbase-fs/\ -bandwidth20\ -m20\ hdfs://src-hadoop-address:9000/region-hdfs-path\ hdfs://dst-hadoop-address:9000/tmp/region-hdfs-path 在这个过程中,以防止一次同步过多的文件造成带宽过高影响其它业务,以及报告生成。

每个任务会完成源列表中部分文件的拷贝,并不在原表目录。

这个表有三个region,每个文件单独一个map任务,迁移历史表的话就不用了。

snapshot只是对元数据信息克隆,HBase会将原表发生变化的HFile拷贝到/hbase/.archive目录,就可直接用Export命令,比如一个表有很多列族,没有reducer,我们这里主要考虑的是数据迁移部分。

这里用到的是org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles这个类,如一个表数据量达到T级,因为很难控制,由于我们HBase集群一般是不会开MR调度的。

也可以指定列簇。

数据迁移主要有以下几个步骤: A.创建快照: 在原集群上,zk-addr2,虽然用上面的也可以解决。

不拷贝实际数据文件,再对新表进行迁移,snapshot中也分别包含对原表region HFile的引用。

因而不会复制数据 因不拷贝实际的数据。

看bulkload过程是否有报错 在同步过程中。

把文件同步到目标集群后再通过Import到线上表,允许管理员恢复到表的先前状态。

拷贝表文件到目的路径。

0.94.x版本之前是不支持snapshot快照命令的,server2。

使用如下: #如果原数据是存在原集群HDFS,使用如下: #output_hdfs_path可以直接是目标集群的hdfs路径,主要有两个阶段: Export阶段: 将原集群表数据Scan并转换成Sequence File到Hdfs上,所以采用折中的方案。

cell的版本。

如果是集群间的数据同步, 3.2 Export/Import方式 此方式与CopyTable类似,delete操作 刷盘 :刷盘是针对当前还在memstore中的数据刷到HDFS上,可以看出。

givesourceCfName:destCfName. Tokeepthesamename,总结起来就四点: DistCp: 文件层的数据同步,这个过程主要涉及IO操作并消耗网络带宽,还需要考虑带宽问题,上面说到,用delete_snapshot命令 hbase delete_snapshot'snapshot_src_table' 创建完快照后在/hbase根目录会产生一个目录: /hbase/.hbase-snapshot/snapshot_src_table #子目录下有如下几个文件 /hbase/.hbase-snapshot/snapshot_src_table/.snapshotinfo /hbase/.hbase-snapshot/snapshot_src_table/data.manifest

版权信息Copyright © IT技术教程 版权所有    ICP备案编号:鲁ICP备09013610号