前言
HDP 2.5默认只有Sqoop 1,而sqoop 1只有客户端,没有服务端,也不能通过Java Api来进行操作,所以需要集成一下Sqoop2,其实这里我们只需要启动Sqoop2的Server端即可。
环境
- CentOS 7.x
- HDP 2.5
- JDK 1.8
- Sqoop1.99.7
注:sqoop 1.99.7其实就是Sqoop2
配置
配置很简单,下载好sqoop2后,解压到一个路径,如:/usr/lib/
进入解压后的bin目录中,编辑sqoop.sh文件:
找到function sqoop_server_classpath_set
函数,将其中的环境变量该一下就可以了,如下:
function sqoop_server_classpath_set {
HADOOP_COMMON_HOME=${HADOOP_COMMON_HOME:-${HADOOP_HOME}/share/hadoop/common}
HADOOP_HDFS_HOME=${HADOOP_HDFS_HOME:-${HADOOP_HOME}/share/hadoop/hdfs}
HADOOP_MAPRED_HOME=${HADOOP_MAPRED_HOME:-${HADOOP_HOME}/share/hadoop/mapreduce}
HADOOP_YARN_HOME=${HADOOP_YARN_HOME:-${HADOOP_HOME}/share/hadoop/yarn}
将这些环境变量都注释掉,改为下面的内容即可:
function sqoop_server_classpath_set {
HDP=/usr/hdp/2.5.0.0-1245
HADOOP_COMMON_HOME=$HDP/hadoop
HADOOP_HDFS_HOME=$HDP/hadoop-hdfs
HADOOP_MAPRED_HOME=$HDP/hadoop-mapreduce
HADOOP_YARN_HOME=$HDP/hadoop-yarn
启动Server
进入sqoop的bin目录下,执行以下命令启动服务端:
# ./sqoop.sh server start
查看是否启动成功
# jps
20611 SqoopJettyServer
如出现SqoopJettyServer进程则表示已启动成功,后面我们就可以通过Java API接口来进行相应的数据导入导出操作了。