关键字:Linux CentOS Sqoop Hadoop Hive Java
版本号:CetOS7.6 Sqoop1.4.7 Hadoop2.7.5 Hive2.1.0
Sqoop简介
Apache Sqoop是在Hadoop生态体系和RDBMS体系之间传送数据的一种工具。来自于Apache软件基金会提供。
Hadoop生态系统包括:HDFS、Hive、Hbase等
RDBMS体系包括:Mysql、Oracle、DB2等
Sqoop可以理解为:“SQL 到 Hadoop 和 Hadoop 到SQL”。
项目中会用到sqoop导入导出数据,对于导出数据来说,我们将数据导出到mysql数据库中,便于后续的应用,比如结果指标的可视化。本文就介绍一下Sqoop1.4.7的安装方法。和hive一样,sqoop只需要在hadoop的namenode上安装即可。本例安装sqoop的机器上已经安装了hdoop2.7.5和hive2.1.0,hadoop2.7的安装请参考我的另外2篇博文:
大数据分析学习第二课 Hadoop集群安装与配置_猫头鹰数据的专栏-CSDN博客
hive3.0的安装请参考博文:
大数据分析学习第七课 数据仓库HIVE基础学习_猫头鹰数据的专栏-CSDN博客
1、下载Sqoop
我们打开官网:Sqoop -http://sqoop.apache.org/
如图
我们点击链接下载
这里选择1.4.7最新稳定版
这里注意,千万一定必须要选择
sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
否则会踩坑,缺少很多java的包文件,不要担心hadoop版本问题,新版本会兼容老版本的
2、上传和解压缩
我们用xshell的rz命令上传到node1服务器
解压
tar -xzvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz并改名为sqoop-1.4.7
3、配置环境变量
编辑/etc/profile文件,添加SQOOP_HOME变量,并且将$SQOOP_HOME/bin添加到PATH变量中
添加内容如下
export JAVA_HOME=/export/server/jdk1.8.0_241
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/export/server/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export MYSQL_HOME=/export/server/mysql-5.7.29
export PATH=$PATH:$MYSQL_HOME/bin
export HIVE_HOME=/export/server/hive-2.1.0
export PATH=:$HIVE_HOME/bin:$PATH
export SPARK_HOME=/export/server/spark-2.3.0-bin-hadoop2.7
export PATH=${SPARK_HOME}/bin:$PATH
export PATH=/usr/local/python/bin/:$PATH
export SQOOP_HOME=/export/server/sqoop-1.4.7
export PATH=:$SQOOP_HOME/bin:$PATH
# KETTLE
export KETTLE=/export/server/data-integration
export PATH=${KETTLE}:$PATH
/etc/profile文件编辑完成后,执行命令使环境配置生效:
source /etc/profile
4、Sqoop配置文件修改
进入到sqoop-1.4.7目录下的conf文件夹
我们将sqoop-env-template.sh复制一份,取名为sqoop-env.sh,也就是执行命令
cp sqoop-env-template.sh sqoop-env.sh
编辑这个新建的sqoop-env.sh文件,在文件结尾加入
export HADOOP_COMMON_HOME=/export/server/hadoop-2.7.5
export HADOOP_MAPRED_HOME=/export/server/hadoop-2.7.5
export HIVE_HOME=/export/server/hive-2.1.0
5、上传MySQL驱动包到Sqoop的lib目录下
6、测试
进入 /export/server/sqoop-1.4.7目录
执行连接mysql数据库命令
bin/sqoop list-databases \
--connect jdbc:mysql://192.168.88.100:3306/ \
--username root \
--password 123456
如果不报错的话,我们会看到mysql数据库的所有库名
到这里,我们就可以使用sqoop做数据的导入导出了,以后我会专门介绍下sqoop的导入导出操作。
总结
感谢能看到这里的朋友😉
本次的分享就到这里,猫头鹰数据致力于为大家分享技术干货😎
如果以上过程中出现了任何的纰漏错误,烦请大佬们指正😅
受益的朋友或对技术感兴趣的伙伴记得点赞关注支持一波🙏
也可以扫描二维码或搜索关注我的微信公众号【猫头鹰数据分析】,留言交流🙏