hbase 的数据 怎么导出到 一个文件或者mysql里面

hbase 的数据 怎么导出到 一个文件或者mysql里面,第1张

数据导入HBase中有如下几种方式

使用HBase的API中的Put方法

使用HBase 的bulk load 工具

使用定制的MapReduce Job方式

使用HBase的API中的Put是最直接的方法,用法也很容易学习。但针对大部分情况,它并非都是最高效的方式。当需要将海量数据在规定时间内载入HBase中时,效率问题体现得尤为明显。待处理的数据量一般都是巨大的,这也许是为何我们选择了HBase而不是其他数据库的原因。在项目开始之前,你就该思考如何将所有能够很好的将数据转移进HBase,否则之后可能面临严重的性能问题。

主要有三种方法:

1、Put API

Put API可能是将数据快速导入HBase表的最直接的方法。但是在导入【大量数据】时不建议使用!但是可以作为简单数据迁移的选择,直接写个代码批量处理,开发简单、方便、可控强。

2、MapReduce Job

推荐使用sqoop,它的底层实现是mapreduce,数据并行导入的,这样无须自己开发代码,过滤条件通过query参数可以实现。

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将MySQL中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到Mysql中。

参考Index of /docs。

采用如下命令:sqoop import

--connect jdbc:mysql://localhost/db

--username root -P

--table mysql_order

--columns "id,name"

--hbase-table hbase_order

--column-family f

--hbase-row-key id

--query "select id,name from mysql_order where..."

-m 1

3、采用Bulk load装载数据

bulk-load的作用是用mapreduce的方式将hdfs上的文件装载到hbase中,对于海量数据装载入hbase非常有用。

需要将MySQL的表数据导出为TSV格式(因为后面使用Import TSV工具),还需要确保有一个字段可以表示HBase表行的row key。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6179916.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存