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

UI设计

当前位置:主页 > UI设计 >

技术干货分享:HBase数据迁移到Kafka实战

发布时间:2019/09/16标签:   数据    点击量:

原标题:技术干货分享:HBase数据迁移到Kafka实战
1.概述在现实的利用场景中,数据存储在HBase集群中,然而因为一些特别的起因,须要将数据从HBase迁徙到Kafka。畸形情形下,个别都是源数据到Kafka,再有花费者处置数据,将数据写入HBase。然而,假如逆向处置,怎样将HBase的数据迁徙到Kafka呢?明天笔者就给各人来分享一下详细的完成流程。技术干货分享:HBase数据迁移到Kafka实战2.内容个别营业场景以下,数据泉源发生数据,进入Kafka,而后由花费者(如Flink、Spark、Kafka API)处置数据落后入到HBase。这是一个很典范的及时处置流程。流程图以下:

技术干货分享:HBase数据迁移到Kafka实战
上述这类及时处置流程,处置数据都比拟轻易,究竟数据流向是次序处置的。然而,假如将这个流程逆向,那末就会碰到一些成绩。2.1 海量数据HBase的散布式特征,集群的横向拓展,HBase中的数据每每都是百亿、千亿级别,或许数目级更大。这类级其余数据,关于这类逆向数据流的场景,会有个很费事的成绩,那就是取数成绩。怎样将这海量数据从HBase中掏出来?2.2 没无数据分区咱们晓得HBase做数据Get或许List很快,也比拟轻易。而它又没有相似Hive这类数据堆栈分区的观点,不能供给某段时光内的数据。假如要提取近来一周的数据,能够全表扫描,经过过滤时光戳来猎取一周的数据。数目小的时间,能够成绩不大,而数据量很大的时间,全表去扫描HBase很艰苦。3.处理思绪关于这类逆向数据流程,怎样处置。实在,咱们能够应用HBase Get和List的特征来完成。由于HBase经过RowKey来构建了一级索引,关于RowKey级其余取数,速率是很快的。完成流程细节以下:
技术干货分享:HBase数据迁移到Kafka实战
数据流程如上图所示,上面笔者为各人来分析每个流程的完成细节,以及留神事项。3.1 Rowkey抽取咱们晓得HBase针对Rowkey取数做了一级索引,以是咱们能够应用这个特征来开展。咱们能够将海量数据中的Rowkey从HBase表中抽取,而后依照咱们制订的抽取规矩和存储规矩将抽取的Rowkey存储到HDFS上。这里须要留神一个成绩,那就是对于HBase Rowkey的抽取,海量数据级其余Rowkey抽取,倡议采纳MapReduce来完成。这个得益于HBase供给了TableMapReduceUtil类来完成,经过MapReduce义务,将HBase中的Rowkey在map阶段依照指定的时光范畴停止过滤,在reduce阶段将rowkey拆分为多个文件,最初存储到HDFS上。这里能够会有同窗有疑难,都用MapReduce抽取Rowkey了,为啥不间接在扫描处置列簇下的列数据呢?这里,咱们在启动MapReduce义务的时间,Scan HBase的数据时只过滤Rowkey(应用FirstKeyOnlyFilter来完成),错误列簇数据做处置,如许会快许多。对HBase RegionServer的压力也会小许多。 RowColumnrow001info:namerow001info:agerow001info:sexrow001info:sn这里举个例子,比方上表中的数据,实在咱们只要要掏出Rowkey(row001)。然而,现实营业数据中,HBase表描写一条数据能够有许多特点属性(比方姓名、性别、年纪、身份证等等),能够有些营业数据一个列簇下有十几个特点,然而他们却只要一个Rowkey,咱们也只要要这一个Rowkey。那末,咱们应用FirstKeyOnlyFilter来完成就很适合了。/***AfilterthatwillonlyreturnthefirstKVfromeachrow.*<p>*Thisfiltercanbeusedtomoreefficientlyperformrowcountoperations.*/

版权信息Copyright © 银河官网 版权所有    ICP备案编号:鲁ICP备09013610号