本节书摘来异步社区《Hadoop海量数据处理:技术详解与项目实战(第2版)》一书中的第2章,第2.6节,作者: 范东来 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.6 安装Sqoop
Sqoop是一个开源工具,它允许用户将数据从关系型数据库抽取到Hadoop中,用于进一步的处理。抽取出的数据可以被MapReduce作业使用,也可以被其他类似于Hive的工具使用。一旦形成分析结果,Sqoop便可以将这些结果导回数据库,供其他客户端使用。
Sqoop的版本同样选择CDH5,完整的版本号为sqoop-1.4.5-cdh5.6.0,安装Sqoop的步骤非常简单,主要就是修改配置文件,并且Sqoop和Hive作为Hadoop的客户端,也只有一种运行方式,Sqoop可以被安装至集群任意一个节点(以主节点为例)。
将Sqoop安装包上传到/opt文件夹下,执行命令(hadoop用户,主节点执行):
tar -zxvf /opt/sqoop-1.4.5-cdh5.6.0.tar.gz
Sqoop的配置文件同样存放在/opt/sqoop-1.4.5-cdh5.6.0/conf目录下,但是安装过程中并不需要修改配置文件。我们需要修改/opt/sqoop-1.4.5-cdh5.6.0/bin目录下的configure-sqoop文件(hadoop用户执行),将其中关于Zookeep和HBase的行都注释掉,除非集群已经安装了Zookeeper和HBase。
例如:
…
#if [ -z "${HBASE_HOME}" ]; then
# HBASE_HOME=/usr/lib/hbase
#fi
…
## Moved to be a runtime check in sqoop.
#if [ ! -d "${HBASE_HOME}" ]; then
# echo "Warning: $HBASE_HOME does not exist! HBase imports will fail."
# echo 'Please set $HBASE_HOME to the root of your HBase installation.'
#fi
...
全部注释掉即可。
最后修改环境变量(root用户,主节点执行),在/etc/profile文件末尾追加:
export SQOOP_HOME=/opt/sqoop-1.4.5-cdh5.6.0
export PATH=$PATH:$SQOOP_HOME/bin
追加后执行命令使环境变量立即生效:
source /etc/profile
验证安装是否成功的方式很简单,执行命令(以hadoop用户在主节点执行):
sqoop list-databases --connect jdbc:mysql://master:3306/ --username root
执行完成后,屏幕上会显示MySQL数据库中的所有数据库实例,例如在上一节新建的数据库Hive。