sqoop mysql 实时同步_使用sqoop将数据从mysql同步到hbase

本文介绍了如何使用Sqoop版本1.4.6将数据从MySQL数据库实时同步到HBase。 Sqoop是一个在Hadoop和关系数据库之间迁移数据的工具,支持通过MapReduce进行并行导入和导出。示例中展示了如何配置和运行Sqoop命令,包括指定数据库连接信息、查询条件、HBase表、列族以及行键。特别提到了--hbase-row-key选项用于设置行键,并讨论了在HBase表不存在时自动创建的选项。
摘要由CSDN通过智能技术生成

- sqoop

- 数据同步

- hbase

目前机器使用的sqoop版本

# sqoop version

Warning: /usr/hdp/2.5.3.0-37/accumulo does not exist! Accumulo imports will fail.

Please set $ACCUMULO_HOME to the root of your Accumulo installation.

17/12/13 22:34:23 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6.2.5.3.0-37

Sqoop 1.4.6.2.5.3.0-37

git commit id 16c017e90fdde118be73d46eff10cf2c068387e9

Compiled by jenkins on Wed Nov 30 02:29:18 UTC 2016

sqoop1.4.6文档 https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html

Sqoop是用来在Hadoop和关系数据库或者大型机之间做数据迁移的一个工具。

可以使用Sqoop从关系型数据库管理系统如MySQL、Oracle中将数据导入到Hadoop分布式文件系统(HDFS)中,也可以从HDFS导出数据到RDBMS中。

RDBMS需要提供数据所在的schema(数据库连接和用户名密码等信息),Sqoop使用MapReduce导入和导出数据,MR提供了容错机制和并行运算。

Sqoop是Apache基金会开源的软件产品,官网http://sqoop.apache.org

Github地址 https://github.com/apache/sqoop

使用实例

sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \

--driver com.mysql.jdbc.Driver \

--connect jdbc:mysql://host:3306/databasename \

--username root \

--password root \

--query "select a.id, a.create_date from table_a a WHERE 1=1 AND \$CONDITIONS" \

--hbase-table test_sqoop \

--column-family 'fts' \

--hbase-row-key id --split-by create_date -m 3

7.2.13. Importing Data Into HBase

--hbase-table 指定HBase表。

每一行输入的数据都会转换为HBase的Put操作作为输出到HBase表的行。

默认情况下,Sqoop会使用--split-by的列[上面的create_date]作为rowkey。

也可以通过--hbase-row-key指定作为rowkey的列。

每一个输出行都会放在同一个列族中,必须通过--column-family指定列族。

不能使用--direct【会冲突】。

--hbase-row-key也可以指定复合行健,中间使用逗号隔开。

默认如果HBase表和列族不存在,Sqoop会直接报错退出,所以需要在Sqoop执行之前创建好HBase表和列族。

如果指定--hbase-create-table和列族,HBase表不存在则会自动创建。

Sqoop会序列化所有的值,以字符串形式转化为utf-8的字节数组存到HBase中。

Sqoop会跳过除了行健之外所有为MULL的列。

指定--hbase-bulkload可以采用大批量加载来替代直接写入HBase。

3a4a54d34c1d1827c4c0e3895146532f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值