前言
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'