Sqoop架构介绍
1、Sqoop的概念
Sqoop:SQL–to–Hadoop
正如Sqoop的名字所示:Sqoop是一个用来将关系型数据库和Hadoop中的数据进行相互转移的工具,可以将一个关系型数据库(例如mysql、Oracle)中的数据导入到Hadoop.
2.Sqoop1和Sqoop2的异同
两个不同的版本的sqoop完全不兼容! 版本号划分区别,Apache版本:1.4.x(Sqoop1); 1.99.x(Sqoop2) CDH版本 : Sqoop-1.4.3-cdh4(Sqoop1) ; Sqoop2-1.99.2-cdh4.5.0 (Sqoop2)Sqoop2比Sqoop1的改进 引入Sqoop server,集中化管理connector等 多种访问方式:CLI,Web UI,REST API 引入基于角色的安全机制
Sqoop1与Sqoop2的优缺点
比较 | Sqoop1 | Sqoop2 |
架构 | 仅仅使用一个Sqoop客户端 | 引入了Sqoop server集中化管理connector,以及rest api,web,UI,并引入权限安全机制 |
部署 | 部署简单,安装需要root权限,connector必须符合 JDBC模型 | 架构稍复杂,配置部署更繁琐 |
使 | 命令行方式容易出错,格式紧耦合,无法支持所有数据 类型,安全机制不够完善,例如密码暴漏 | 多种交互方式,命令行,web UI,rest API,conncetor集中化管理,所有的链接安装在Sqoop s erver上,完善权限管理机制,connector规范化,仅仅负责数据的读写 |
sqoop1的安装部署:
安装环境:
hadoop:hadoop-2.5.0-cdh5.3.6.tar
hive:hive-0.13.1-cdh5.3.6.tar
sqoop:sqoop-1.4.5-cdh5.3.6.tar
配置环境变量和配置文件
${SQOOP_HOME}/conf/
$ cp sqoop-env-template.sh sqoop-env.sh //拷贝模板生成配置环境目录
=============修改sqoop-env.sh 配置文件==============================
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6
#set the path to where bin/hbase is available
#export HBASE_HOME=
#Set the path to where bin/hive is available
export HIVE_HOME=/opt/modules/cdh/hive-0.13.1-cdh5.3.6
#Set the path for where zookeper config dir is
export ZOOCFGDIR=/opt/modules/cdh/zookeeper-3.4.5-cdh5.3.6/conf
================================================================
==============拷贝mysql的jdbc驱动包到${SQOOP_HOME}/lib================
$ cp mysql-connector-java-5.1.34-bin.jar /opt/modules/cdh/sqoop-1.4.5-cdh5.3.6/lib/
=====================================================================
测试连接--MySQL
bin/sqoop list-databases \
--connect jdbc:mysql://[hostname]:3306 \
--username root \
--password [password]