主页 > 新闻资讯 > 大数据培训:Hbase常用数据导入工具

大数据培训:Hbase常用数据导入工具

作者:张老师 浏览次数: 2021-04-08 17:37
Hbase作为Hadoop生态圈的常用数据库,常常需要从外部数据源导入其他的数据进来,而数据导入的几种方式,之前已经为大家做了基本的介绍。同时,为了提升工作效率,也有一些工具可用。今天的大数据培训分享,我们就来介绍一下Hbase常用数据导入工具。

大数据培训:Hbase常用数据导入工具

HBase提供了几种数据迁移工具,其中基于API调用的有CopyTable,Export&Import。基于写HDFS的有distcp,snapshot。

从性能角度来说,CopyTable足以支撑10T以下的数据迁移,这里我们也就以CopyTable为例来具体说明:

CopyTable是HBase提供的一个数据同步工具,可以用于同步表的部分或全部数据。CopyTable通过运行Map-Reduce任务从源表读出数据再写入到目标表。

CopyTable使用只需要运行一个命令即可,命令示例:

./bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable-Dhbase.client.scanner.caching=200-Dmapreduce.local.map.tasks.maximum=16-Dmapred.map.tasks.speculative.execution=false--peer.adr=$ZK_IP1,$ZK_IP2,$ZK_IP3:/hbase$TABLE_NAME

Hbase CopyTable操作示例

1.安装HBase

CopyTable依赖于hadoop mapreduce。如果源HBase集群中开启了mapreduce则可以直接在源集群上运行。否则可以在另一个hadoop集群上安装HBase客户端并将hbase-site.xml文件中的zk地址指向源集群。

也可以单机运行,单机运行时,不需要安装hadoop,只要安装了HBase就可以使用hadoop的本地模式运行CopyTable。

2.创建目标表

使用CopyTable同步数据前,需要确保目标表存在。如果不存在需要先创建目标表。强烈建议根据数据的分布情况对目标表进行预分裂,这样能够提高写入速度。

3.其他准备工作

需要将运行CopyTable的机器ip加入HBase的ip白名单,确保可以访问到HBase。

需要修改hbase-site.xml文件中的zk地址指向源集群。

准备工作完成后,就可以运行CopyTable进行数据同步了。

命令示例

./bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable-Dhbase.client.scanner.caching=200-Dmapreduce.local.map.tasks.maximum=16-Dmapred.map.tasks.speculative.execution=false--peer.adr=$ZK_IP1,$ZK_IP2,$ZK_IP3:/hbase$TABLE_NAME

参数说明

CopyTable常用选项说明如下:

startrow开始行。

stoprow停止行。

starttime时间戳(版本号)的最小值。

endtime时间戳的最大值。如果不指定starttime,endtime不起作用。

peer.adr目标集群的地址。格式为:hbase.zookeeer.quorum:hbase.zookeeper.client.port:zookeeper.znode.parent

families要同步的列族。多个列族用逗号分隔。

all.cells删除标记也进行同步。

更多参数参见官方文档:http://hbase.apache.org/book.html#copy.table

除copytable的参数外,以下选项也建议在命令中进行设置:

(1)对于单机运行的情况,需要指定mapreduce.local.map.tasks.maximum参数,表示并行执行的最大map个数。不指定的话默认是1,所有任务都是串行执行的。(2)hbase.client.scanner.caching建议设置为大于100的数。这个数越大,使用的内存越多,但是会减少scan与服务端的交互次数,对提升读性能有帮助。

(3)mapred.map.tasks.speculative.execution建议设置为false,避免因预测执行机制导致数据写两次。

另外,如果是在E-mapreduce集群上执行CopyTable,需要注意E-mapreduce默认的hbase-site.xml文件中配置了phoenix,所以需要导入phoenix的jar包,否则运行时会报错:

-libjars$HBASE_HOME/lib/phoenix-$PhoenixVersion-HBase-$HBaseVersion-server.jar

关于大数据培训,Hbase常用数据导入工具,以上就为大家做了简单的介绍了。在Hbase的几种数据导入工具当中,CopyTable算是操作简便也高效的方式之一,10T以下的任务都可以尝试。成都加米谷大数据,专业大数据培训机构,大数据开发、数据分析与挖掘,零基础班本月正在招生中,课程大纲及学习资料可联系客服获取!
热点排行
推荐文章
立即申请>>