ETL工具sqoop
文章目录
sqoop简介
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
Sqoop是一个在(MySQL、Oracle)等关系型数据库和大数据平台之间进行批量数据迁移的工具。Sqoop底层能实现将关系型数据库中的数据迁移到大数据平台上是因为sqoop的底层是采用MapReduce程序实现抽取、转换、加载,MapReduce本身就并行化和高容错率,能很好的保证数据的迁移,而且与Kettle等传统ETL工具相比,Sqoop的任务跑在Hadoop集群上,能有效减少ETL服务器资源的使用情况
sqoop安装
一、安装包的获取:
sqoop安装包:
官网:http://archive.apache.org/dist/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
mysql驱动:
网盘链接:https://pan.baidu.com/s/1-xksqP7DhP3wWIQeKgVi7A
提取码:1111
二、上传安装包到服务器
将sqoop安装包和mysql驱动器上传到集群中

三、进行安装配置
①解压sqoop压缩包
tar -zvxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/
②修改名字
mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop
③修改配置文件
在sqoop/conf/目录下修改sqoop-env-template.sh的名字
mv sqoop-env-template.sh sqoop-env.sh
向sqoop-env.sh中最后添加如下配置:
export HADOOP_COMMON_HOME=/opt/module/hadoop-2.7.2
export HADOOP_MAPRED_HOME=/opt/module/hadoop-2.7.2
export HIVE_HOME=/opt/module/hive
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10
export ZOOCFGDIR=/opt/module/zookeeper-3.4.10/conf
export HBASE_HOME=/opt/module/hbase
④将jdbc驱动拷贝到sqoop/lib/目录下
cp mysql-connector-java-5.1.27-bin.jar 到 /sqoop/lib/目录下
四、验证sqoop
使用一个command命令检查sqoop是否安装完成
bin/sqoop help
出现一下内容便是安装完成:

测试是否能连接上mysql数据库
bin/sqoop list-databases --connect jdbc:mysql://bigdata01:3306/ --username root --password 123456
如果连接成功会获取到当前mysql数据库中的数据库

sqoop常用命令
sqoop import 导入
--connect jdbc:mysql://127.0.0.1:3306/$db_name 连接数据库
--username root 数据库用户名
--password root 数据库密码
--target-dir /origin_data/$db_name/db/$1/$db_date HDFS地址
--table db_table 源头数据表
--delete-target-dir HDFS地址存在删除
--num-mappers $2 \--split-by $3 maptask数量
--input-null-strin

最低0.47元/天 解锁文章

1587

被折叠的 条评论
为什么被折叠?



