通过sqoop把mysql数据导入到hbase中

444 阅读2分钟

前言

Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。

特征:

Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 对于某些NoSQL数据库它也提供了连接器。Sqoop,类似于其他ETL工具,使用元数据模型来判断数据类型并在数据从数据源转移到Hadoop时确保类型安全的数据处理。Sqoop专为大数据批量传输设计,能够分割数据集并创建Hadoop任务来处理每个区块。


环境准备

1、hadoop环境

2、确保zookeeper、HDFS组件可用

3、mysql_jdbc驱动

4、sqoop_tar包(用CDH装的小伙伴添加一下就行了,集成了这个工具)

部署

一、添加sqoop组件

在shell中输入:

[root@CDH1 /]# sqoop version

导入jdbc驱动至SQOOPlib目录下:

[root@cdh3 data]# cd /
[root@cdh3 /]# cd /tmp/
[root@cdh3 tmp]# cp mysql-connector-java-5.1.26-bin.jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/sqoop/lib/mysql-connector-java-5.1.26-bin.jar

二、编写导入脚本

sqoop import --connect jdbc:mysql://172.18.15.218/yunnan --username root --password 123456 --table tbl_bw_fpzxx --hbase-table tbl_bw_fpzxx --column-family infos --hbase-create-table --hbase-row-key ID

三、在hbase中创建一张表

[root@CDH1 /]# hbase shell

hbase(main):001:0> create 'tbl_bw_fpzxx','infos'
hbase(main):002:0> list
hbase(main):002:0> exit

四、执行导入

[root@CDH1 /]#sqoop import --connect jdbc:mysql://172.18.15.218/yunnan --username root --password 123456 --table tbl_bw_fpzxx --hbase-table tbl_bw_fpzxx --column-family infos --hbase-create-table --hbase-row-key ID

五、对hbase的数据进行查看是否完整

hbase(main):002:0>scan 'tbl_bw_fpzxx'

六、

Sqoop一些常用命令及参数