目录
1、Sqoop的产生背景
原来的大量结构化数据的存储是集中式存储(传统的关系型数据库进行存储的),随着数据的不断扩增,传统的关系数据库无法承载这么庞大的数据,这个时候出现了大数据平台hadoop,但是面临一个问题:关系型数据库的数据如何转移到大数据平台上呢?于是Sqoop就产生了。
2、Sqoop的作用
Sqoop是用来做数据迁移的,将数据在传统的关系型数据库和大数据平台之间进行数据相互迁移。
进行数据迁移分为两个方向:
1)数据导入:传统的关系型数据库--->大数据平台
2)数据导出:大数据平台--->传统的关系型数据库
大数据平台分析的结果数据一般存储在关系型数据库,因为查询快嘛。
3、Sqoop的本质
Sqoop本质将Sqoop的命令转换为MR任务。
数据导入:传统的关系型数据库--->大数据平台
map端的:数据来源 传统关系型数据库的 DBInputFormat,一条数据一条数据读取,将数据写出到hadoop平台就可以了,相当于自定义了数据输入(传统的关系型数据库的输入)。
数据导出:大数据平台--->传统的关系型数据库
map端:数据来源 大数据平台,一条数据一条数据读取,将数据写出到关系型数据库 DBOutputFormat,相当于自定义了输出
Sqoop的本质就是将Sqoop命令翻译MR,并自定输入或输出,只需要maptask。
4、Sqoop的安装
版本:
sqoop1 sqoop1.4
sqoop2 sqoop1.99
sqoop1版本比较受欢迎
安装要求:
hadoop
jdk
hive
mysql
Sqoop和hive在一个节点上 hadoop02上
安装步骤:
1)上传
2)解压
tar -xvzf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
ln -s sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop
3)修改环境变量
sudo vi /etc/profile
export SQOOP_HOME=/home/hadoop/apps/sqoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$SQOOP_HOME/bin
source /etc/profile
验证:sqoop version
4)修改sqoop的配置文件
/home/hadoop/apps/sqoop/conf
mv sqoop-env-template.sh sqoop-env.sh
vi sqoop-env.sh
配置hadoop的common模块环境变量
#Set path to where bin/hadoop is available
#export HADOOP_COMMON_HOME=
配置的hadoop的mapreduce模块的位置
#Set path to where hadoop-*-core.jar is available
#export HADOOP_MAPRED_HOME=
hbase的安装目录
#set the path to where bin/hbase is available
#export HBASE_HOME=
hive的安装目录
#Set the path to where bin/hive is available
#export HIVE_HOME=
zookeeper的myid目录
#Set the path for where zookeper config dir is
#export ZOOCFGDIR=
这里配置2个hadoop的环境变量:
安装原生的开源的 Apache hadoop的时候 common mapreduce就一个安装包。
商业版的hadoop安装的时候,可以选择安装模块,不同的安装模块在不同的目录下,比如 CDH、HDP
5)将mysql的驱动包放在Sqoop的lib下
6)测试
sqoop list-databases \
--connect jdbc:mysql://hadoop02:3306/ \
--username root \
--password 123456
sqoop list-tables \
--connect jdbc:mysql://hadoop02:3306/mianshi \
--username root \
--password 123456
5、Sqoop操作练习
具体查看:https://blog.csdn.net/qq_1018944104/article/details/85306524