Sqoop安装指导
版本描述
操作系统:centos 6.5 64 bit
Hadoop:Hadoop 2.4.0
Sqoop: 1.4.5
网络规划
前提条件是已经安装了hadoop和hive,hive如果用不到也可以不用装
用户创建
和hadoop共用一个账户,这里就不要单独创建账户了,我这里配置是:
hadoop用户:hadoop
用户目录:home/hadoop
HADOOP_HOME:/home/hadoop/hadoop-2.4.0
这里注意如果不安装这个用户下,在其他目录下 就要在安装后chown,修改用户ower给hadoop用户
安装jdk
这个我就不再多说了,网上资料大把,jdk版本是 1.7.0_45
安装sqoop
在我写这篇文档的时候在hadoop 2.4.0的环境下直接使用sqoop 1.4.5 b会报错,因此需要编译sqoop
编译sqoop
编译sqoop需要安装如小软件
apache ant
asciidoc
make
python 2.5+
xmlto
tar
gzip
安装ant
1、下载ant
从http://ant.apache.org/ 下载ant版本,我这里使用的是 apache-ant-1.9.4-bin.tar.gz
2、把 apache-ant-1.9.4-bin.tar.gz上传到/usr/local中
用户FTP工具上传即可
3、tar开包
执行命令; tar -zxvf apache-ant-1.9.4-bin.tar.gz
4、配置环境变量
a、执行 : vi /etc/profile
b、在profile中添加
ANT_HOME=/usr/local/apache-ant-1.9.4
c、在文件的PATH中添加
:$ANT_HOME/bin
d、生效配置: source /etc/profile
5、检查安装是否成功
输入命令 ant -version
如果输出:Apache Ant(TM) version 1.9.4
表示安装成功
安装 asciidoc
执行: yum -y install asciidoc
安装 make
执行:yum -y install make
安装 python 2.7
1)下载源码:http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
2)安装,一般来说不会出现太大的问题吧,可能有权限的问题,只要在命令前添加sudo就可以解决了。
把Python-2.7.3 传入 /usr/local中 按顺序执行如下命令
· $ tar –jxvf Python-2.7.3.tar.bz2
· $ cd Python-2.7.3
· $ ./configure
· $ make
· $ make install
3)测试,在终端输入python ,如果出现 python 2.7.3的输出表示成功
安装 xmlto
yum -y install xmlto
安装 tar
yum -y install tar
安装 gzip
yum -y install gzip
下载Sqoop
1、下载sqoop-1.4.5.bin__hadoop-1.0.0.tar.gz
下载地址:http://www.apache.org/dyn/closer.cgi/sqoop/1.4.5
2、上传包sqoop
把安装包上传到 /home/sqoop中(这个目录是临时建立用来编译用的)
3、解压sqoop包
tar -xvf sqoop-1.4.5.bin__hadoop-1.0.0.tar.gz
修改配置文件
打开 sqoop-1.4.5.bin__hadoop-1.0.0中的build.xml文件
1、修改如下配置:
<elseif>
<equals arg1="${hadoopversion}" arg2="200" />
<then>
<property name="hadoop.version" value="2.4.0" />
<property name="hbase94.version" value="0.94.2" />
<property name="zookeeper.version" value="3.4.2" />
<property name="hadoop.version.full" value="2.4.0" />
<property name="hcatalog.version" value="0.13.0" />
<property name="hbasecompatprofile" value="2" />
<property name="avrohadoopprofile" value="2" />
</then>
</elseif>
2、修改:/home/sqoop/sqoop-1.4.5.bin__hadoop-1.0.0/src/test/org/apache/sqoop/TestExportUsingProcedure.java文件
vi /home/sqoop/sqoop-1.4.5.bin__hadoop-1.0.0/src/test/org/apache/sqoop/TestExportUsingProcedure.java
在命令模式下输入:set nu 显示行号,大概在245行的位置,修改内容如下:
sql.append(StringUtils.repeat("?", ", ",
修改为如下:
sql.append(StringUtils.repeat("?,",
编译sqoop
1、在sqoop-1.4.5.bin__hadoop-1.0.0中执行: ant package
就会开始自动下载编译
这个过程需要一段时间请耐心等待
出现如下输出表示编译成功
编译成功后,在/home/sqoop/sqoop-1.4.5.bin__hadoop-1.0.0/build下生成sqoop-1.4.5.bin__hadoop-2.4.0文件,这个文件就是安装文件
2、安装文件打包
tar -cvf sqoop-1.4.5.bin__hadoop-2.4.0.tar.gz ./sqoop-1.4.5.bin__hadoop-2.4.0
安装sqoop
1、解压到安装目录
将sqoop-1.4.5.bin__hadoop-2.4.0.tar.gz解压并cp到/home/hadoop
tar -xvf sqoop-1.4.5.bin__hadoop-2.4.0.tar.gz
重命名
mv /home/hadoop/sqoop-1.4.5.bin__hadoop-2.4.0 /home/hadoop/sqoop_1.4.5
chown -R hadoop:hadoop /home/hadoop/sqoop_1.4.5/
2、配置环境变量
进入环境变量配置目录
cd /etc/profile.d
创建配置文件
touch sqoop.sh
打开配置文件
vi sqoop.sh
配置环境变量
#sqoop
export SQOOP_HOME=/home/sqoop/sqoop_1.4.5
export PATH=${SQOOP_HOME}/bin:$PATH
保存退出
:wq!
立即生效
source /etc/profile
3、修改配置文件
cd /home/sqoop/sqoop_1.4.5/conf
cp sqoop-env-template.sh sqoop-env.sh
修改sqoop-env.sh
vi sqoop-env.sh
修改如下:
export HADOOP_COMMON_HOME=/home/hadoop/hadoop-2.4.0
export HADOOP_MAPRED_HOME=/home/hadoop/hadoop-2.4.0/share/hadoop/mapreduce
export HIVE_HOME=/home/hive/hive-0.13.1
HIVE_HOME如果没有就不用配置了
添加驱动包
这个驱动包是根据你需要获取数据源的数据库和写入的系统,如果你从mysql中获取数据,你就要把mysql的jdbc驱动包添加进来,如果你是从oracle中获取数据你就要把oracle的jdbc驱动包添加进来,如果你写入的用hive,hbase、hadoop你就要把对应的驱动包添加进来,我这里数据源是mysql,就添加mysql的驱动包。写入用的是hive就添加hive的驱动包
1、下载驱动包
我用的mysql是mysql 5.6.15 版本,配套的jdbc是 mysql-connector-java-5.1.24-bin.jar
这个jar在网上一大把,自己在网上下载就可以了,一定要根据mysql版本选择配套的版本
2、添加驱动包
把驱动包放到 $SQOOP_HOME/lib 目录下
3、同上放置hive的驱动包 hive-common-0.13.1.jar
测试
测试很简单,执行(命令参数请执行修改):
sqoop list-databases --connect jdbc:mysql://10.20.96.234:3306/ --username root --password 123456
如果输出数据库列表表示成功