Sqoop概念及安装配置

1、sqoop在hadoop中应用较多,由于spark有外部数据源的概念,故spark中不太使用sqoop。

      sqoop是一个数据采集与数据交换的工具,用来处理RDBMS和hadoop (hive/hbase/hdfs/....      基于hadoop 之上的存储都可以)之间的数据的导入导出。

      sqoop底层就是一系列简单的读取操作。

 

2、  Sqoop1:  1.4.x   

        只有map,没有reduce。文件输出数取决于map数
Sqoop2: 1.99.x

        有map,有reduce 

        两个版本彼此之间不兼容

 

3、sqoop 中的map数量如何设置呢?设置依据是?

100个count   10个map

一个map10个count,map 依据表主键拆分count

若表没有主键,则需要导入导出是需要主动指定一个column为主键(--split-by emp.name)

若没有主键且不指定一个column为主键,则报错

 

4、数据从RDBMS到hadoop叫导入 数据从hadoop到RDBMS叫导出

 

5、sqoop1 架构图分析

Sqoop概念及安装配置_第1张图片

版本号为1.4.x为sqoop1 

在架构上:sqoop1使用sqoop客户端直接提交的方式 
访问方式:CLI控制台方式进行访问 
安全性:命令或脚本中指定用户数据库名及密码

 

6、sqoop2架构图分析

Sqoop概念及安装配置_第2张图片

版本号为1.99.x为sqoop2 

在架构上:sqoop2引入了sqoop server,对connector实现了集中的管理 
访问方式:REST API、 JavaAPI、 WEB UI以及CLI控制台方式进行访问 
CLI方式访问,会通过交互过程界面,输入的密码信息不被看到,同时Sqoop2引入基于角色的安全机制,Sqoop2比Sqoop1多了一个Server端。

 

7、sqoop1与sqoop2优缺点及对比

sqoop1:

支持数据从 RDBMS 传输至 Hive 或 HBase

支持数据从 Hive 或 HBase 传输至 RDBMS

 

sqoop2:

不支持数据从 RDBMS 传输至 Hive 或 HBase
解决办法:将数据从 RDBMS 导入 HDFS ,在 Hive 中使用相应的工具和命令(例如   LOAD DATA   语句),手动将数据载入 Hive 或 HBase

不支持数据从 Hive 或 HBase 传输至 RDBMS

解决办法:从 Hive 或 HBase 将数据提取至 HDFS (作为文本或 Avro 文件)使用 Sqoop 将上一步的输出导出至 RDBMS

 

sqoop1与sqoop2优缺点比较 : 

sqoop1:

sqoop1的架构,仅仅使用一个sqoop客户端

sqoop1优点架构部署简单

sqoop1的缺点命令行方式容易出错,格式紧耦合,无法支持所有数据类型,安全机制不够完善,例如密码暴漏,  
安装需要root权限,connector必须符合JDBC模型  

sqoop2:

 sqoop2的架构,引入了sqoop server集中化管理connector,以及rest api,web,UI,并引入权限安全机制。

 sqoop2的优点多种交互方式,命令行,web UI,rest API,conncetor集中化管理,所有的链接安装在sqoop server上,完善权限管理机制,connector规范化,仅仅负责数据的读写。  
    sqoop2的缺点,架构稍复杂,配置部署更繁琐。

在生产上,sqoop1占到绝大多数

 

安装配置sqoop1

1、下载安装

下载与hadoop版本对应的sqoop安装包,如本机hadoop版本为hadoop-*-cdh5.7.0.tar.gz,对应下载的sqoop为sqoop-1.4.*-cdh5.7.0.tar.gz,在将其解压到对应目录即可(注意解压后文件的属主与属组)

sqoop-1.4.*-cdh5.7.0为该版本对应的文档

 

2、配置文件

cp sqoop-env-template.sh sqoop-env.sh

vi sqoop-env.sh

 

#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop
配置hadoop的家目录

#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop
配置hadoop的家目录

#set the path to where bin/hbase is available
export HBASE_HOME=


#Set the path to where bin/hive is available
export HIVE_HOME=/home/hadoop/apps/hive
配置hive的家目录

#Set the path for where zookeper config dir is
#export ZOOCFGDIR=

 

sqoop-site.xml暂时就不配了,目前够用了

 

3、将sqoop家目录加入系统环境变量

vi /etc/profile

 

export SQOOP_HOME=/home/hadoop/apps/sqoop-1.4.6-cdh5.7.0

export PATH=$SQOOP_HOME/bin:$PATH

 

 

 

 若泽数据交流群:707635769 

【来自@若泽大数据】

 

 

你可能感兴趣的:(Sqoop,hadoop周边生态)