Sqoop的安装

来源:互联网 发布:网络打鱼算赌博吗 编辑:程序博客网 时间:2024/06/08 11:30
说明:由于Sqoop的运行需要借助于Hadoop的MapReduce,所以在安装Sqoop之前,应确保Hadoop集群已安装完毕并运行(Hadoop集群的安装请参考:http://blog.csdn.net/u010476994/article/details/71479584)。另外,本文以Mysql数据库为例,介绍Sqoop的使用方法,所以Mysql数据库也要提前安装好(mysql 的安装本文不作介绍)。

具体安装步骤:
1、上传安装包,并解压到/home/目录下(路径自己定义)
     sqoop文件夹的名字太长了,此处重命名一下。
[root@hadoop1 home]# tar zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz  -C /home/
[root@hadoop1 home]# cd /home
[root@hadoop1 home]# mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.6
2、修改环境变量,编辑/etc/profile , 在文档末尾添加如下配置:
export SQOOP_HOME=/home/sqoop-1.4.6
export PATH=$PATH:$SQOOP_HOME/bin
     保存退出,使用resource命令将/etc/profile文件的配置重新读入内存:
[root@hadoop1 sqoop-1.4.6]# source /etc/profile
3、sqoop在导入/导出时,需要与关系型数据库(本文以mysql为例)进行交互,因此需要将关系型数据库的驱动包拷贝到sqoop的lib目录下,即/home/sqoop-1.4.6/lib下。
4、关于sqoop的配置文件。sqoop在conf文件夹下提供了配置文件的模板sqoop-env-template.sh ,把该文件重命名为sqoop-env.sh。在该文件中可以配置关于Hadoop、HBase、Hive等一些环境变量信息,可以进行配置,也可以不配置。如果此处进行配置,路径需要与系统环境变量中配置的Hadoop、HBase、Hive的路径保持一致。如果不配置,sqoop会自动从系统环境变量中读取相应的路径。此处我们不进行配置,由sqoop去系统环境变量中取值。
5、sqoop的配置已经完成,可以使用sqoop version命令查看sqoop版本信息:
[root@hadoop1 conf]# sqoop version
Warning: /home/sqoop-1.4.6/../hbase does not exist! HBase imports will fail.
Please set $HBASE_HOME to the root of your HBase installation.
Warning: /home/sqoop-1.4.6/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /home/sqoop-1.4.6/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
17/05/15 15:49:54 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
Sqoop 1.4.6
git commit id c0c5a81723759fa575844a0a1eae8f510fa32c25
Compiled by root on Mon Apr 27 14:38:36 CST 2015
     在打印出的日志,可以看出我们的sqoop版本为 1.4.6。  同时,打印的信息中有类似的信息:HBase imports will fail. 这是因为当前主机的环境变量中并没有HBase/HCatalog/Accumulo的值(因为当前主机没有安装)。但是并不影响sqoop的正常使用,可忽略这些提示。可以采用如下方式,取消提示信息的输出:在sqoop安装根目录下的bin文件夹里,有一个名为configure-sqoop的文件,将该文件夹中的如下代码全部注释即可:
## 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

## Moved to be a runtime check in 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

测试验证成功:
[root@hadoop1 bin]# sqoop list-databases --connect jdbc:mysql://192.168.152.101:3306/ --username root --password 123456
17/05/15 17:18:43 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
17/05/15 17:18:43 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
17/05/15 17:18:43 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
information_schema
mysql
test
[root@hadoop1 bin]#

原创粉丝点击