概述
以下内容来自百度百科:
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
Sqoop安装
集群规划:三台服务器上部署ZooKeeper集群,基于前面的文章中已经部署的Hadoop环境的三台虚拟机,并且安装了Hadoop、ZooKeeper、Hbase、Hive环境。
打开Sqoop官方网站http://sqoop.apache.org/:
选择版本进行下载即可,此处选择的是sqoop-1.4.7版本:
将压缩包使用Xftp上传hadoop-1的/usr目录下:
进入/usr目录,使用tar命令将压缩包进行解压,执行命令:
# tar zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
解压完成后会在/usr目录下生成sqoop-1.4.7.bin__hadoop-2.6.0目录:
由于目录名繁冗,使用如下命令,将该目录重新命名:
# mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop-1.4.7
Sqoop配置
进入Sqoop的配置文件目录,并查看该目录下的文件:
# cd sqoop-1.4.7/conf/
# ll
该目录下有示例配置文件sqoop-env-template.sh,将其拷贝为sqoop-env.sh:
# cp sqoop-env-template.sh sqoop-env.sh
使用vim编辑配置文件sqoop-env.sh:
# vim sqoop-env.sh
更改配置文件内容:
保存退出,配置Sqoop环境变量:
# vim /etc/profile
在打开的文件最后添加如下内容:
export SQOOP_HOME=/usr/sqoop-1.4.7/
export PATH=$SQOOP_HOME/bin:$PATH
为使环境变生效,执行如下命令:
# source /etc/profile
此处为了将hive中的表同步到hadoop-1服务器的MySQL 5.7数据库中,所以拷贝前面安装的hive的lib目录下的MySQL的驱动包到Sqoop的lib目录下(前文连接:https://www.jianshu.com/p/5c5d57dc2084):
# cp /usr/apache-hive-2.3.6-bin/lib/mysql-connector-java-5.1.46.jar /usr/sqoop-1.4.7/lib/
测试验证:
使用如下命令测试Sqoop是否配置完成可以使用:
# sqoop help
为去掉Warning,使用vim编辑配置文件configure-sqoop:
# vim /usr/sqoop-1.4.7/bin/configure-sqoop
注释掉没有用到的设置内容:
if [ ! -d "${HCAT_HOME}" ]; then
echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."
echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
fi
if [ ! -d "${ACCUMULO_HOME}" ]; then
echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."
echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'
fi
至此,Sqoop的安装配置就完成了。