前言
文章中所有的路径,均是演示所用.
实际情况请自行斟酌
首先介绍一下什么是Sqoop
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 —-来自百度百科
Sqoop的优势
- 高效、可控的利用资源
- 支持多种数据库
Sqoop架构
1.x版本中Sqoop与服务端在同一个服务器上
客户端将命令提交给Sqoop,Sqoop会将这条命令自动生成多个Map Reduce作业,在hadoop和其它地方进行读写操作只有Map任务没有Reduce任务
HDFS(hadoop)上的数据可以通过Map Task读取 存储到数据仓库,文件系统或者关系型数据库中
反之也可以将数据仓库,文件系统或者关系型数据库中的数据存储到hadoop上
RDBMS与HDFS/Hive之间的转换通常是双向的,但是与HBase之间通常是单向的
sqoop2相对于sqoop1来说中间多了一个服务层
sqoop2.x和1.x的目标都是hadoop和其它数据存储工具中间的传输
但是2.x相对于1.x来说使用起来简单一些
由客户端提交的请求,都由服务层去执行
这样有几点好处首先就是安全性提高,其次可以多用户同时访问
准备工作
- Sqoop
- Hadoop
- RDBMS驱动
首先去官方网站下载sqoop安装包
Sqoop官网
作者下载的是Sqoop2_1.99.5的版本
在要运行Sqoop服务器的机器上复制Sqoop工件。本机必须安装并配置Hadoop。您不需要在那里运行任何与Hadoop相关的服务,但是该机器必须能够充当Hadoop客户端。您应该可以列出HDFS,例如:
$ hadoop dfs -ls
安装Sqoop:
将安装包解压缩:
$ tar -xvf sqoop- <version> -bin-hadoop <hadoop-version> .tar.gz
#例:
$ tar -vxf sqoop-1.99.5-bin-hadoop200.tar.gz
由于Sqoop压缩出来文件的名字非常的长,所以为了以后使用方便,将其路径更改的短一些,比如:
$ mv sqoop- <version> -bin-hadoop <hadoop version> .tar.gz / usr / lib / sqoop
#例:
$ mv sqoop-1.99.5-bin-hadoop200 /home/hadoop/sqoop2
#因为本人的用户是hadoop所以大家不要误认为是放在hadoop目录中了
*注意,这里非常重要
进入sqoop的bin目录
这里有一些脚本是没有执行权限的所以要赋予其执行权限
使用如下命令:
$ chmod a+x *
添加环境变量
export SQOOP_HOME=/home/hadoop/sqoop2
export PATH=$PATH:$SQOOP_HOME/bin
修改配置文件
配置文件的目录在
~/sqoop2/server/conf
catalina.properties
找到关于jar包目录的部分
叫做common.loader
将图片中文件夹中所有的jar包路径追加在common.loader中;
#例如
/home/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/*.jar
#common.loader=${
catalina.base}/lib,${
catalina.base}/lib/*.jar,${
catalina.home}/lib,${
</