admin 管理员组

文章数量: 887019

Sqoop,Flume 安装,配置

下载安装包

sqoop

Index of /dist/sqoop/1.4.7

 flume

Apache Downloads

导入, 解压 安装包

我这里使用mobaxterm导入虚拟机/opt/software/ 下

 解压

tar -zxvf /opt/software/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local/src
 
tar -zxvf /opt/software/apache-flume-1.11.0-bin.tar.gz -C /usr/local/src/

 解压之后我这里重命名文件为,sqoop,flume,不这样做的记得环境变量配置要注意路径名

配置环境变量

export SQOOP_HOME=/usr/local/src/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
export CLASSPATH=$CLASSPATH:$SQOOP_HOME/lib

export FLUME_HOME=/usr/local/src/flume
export PATH=$PATH:$FLUME_HOME/bin

修改配置文件

配置sqoop配置文件

cd /usr/local/src/sqoop/conf/  cp sqoop-env-template.sh sqoop-env.sh#进入/sqoop/conf/,复制模板并重命名为sqoop-env.sh

 修改配置文件中如下配置,保证路径与实际安装路径一致

export HADOOP_COMMON_HOME=/usr/local/src/hadoopexport HADOOP_MAPRED_HOME=/usr/local/src/hadoopexport HBASE_HOME=/usr/local/src/hbaseexport HIVE_HOME=/usr/local/src/hive

 为了sqoop能够连接mysql数据库,所以要将mysql-connector-java-5.1.47.jar放入./sqoop/lib/ 下

 为了sqoop能够连接hive,要将/usr/local/src/hive/lib/hive-common-3.1.3.jar 放入./sqoop/lib/ 下

配置flume配置文件

cd /usr/local/src/flume/conf/  cp flume-env.sh.template flume-env.sh#进入/flume/conf/,复制模板并重命名为flume-env.sh

修改jdk安装路径

 启动sqoop,flume

启动sqoop

start-all.sh       #需要启动hadoop集群

jps                  #查看hadoop是否启动成功

 sqoop list-databases --connect jdbc:mysql://localhost:3306/?useSSL=false --username root --password

#sqoop查看mysql中所有数据库,?useSSL=false非常重要

报错处理:

1. ERROR manager.CatalogQueryManager: Failed to list databases
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

2.ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

3.The last packet successfully received from the server was 484 milliseconds ago.  The last packet sent successfully to the server was 450 milliseconds ago.

如果你遇到了上面的问题,是因为你没有设置useSSL=false,这个设置在mysql中默认开启的,但是你的sqoop没有useSSL连接,所以当你尝试使用sqoop查看mysql中所有数据库,mysql会默认使用useSSL连接sqoop,所以会产生报错,所以在使用sqoop查看mysql时,要加上useSSL=false,让msyql直接关闭useSSL连接。

4. INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

这是因为/sqoop/lib中commons-lang3-3.4.jar,Sqoop1.4.7默认只加载了commons-lang3-3.4.jar的jar包,里面的StringUtils类的package为:org/apache/commons/lang3/StringUtils,所以直接使用sqoop命令时报上述错误。

所以需要手动获取旧版的jar包,上传至sqoop的lib目录,比如:commons-lang-2.6.jar,之后再使用sqoop命令,就不会显示上述错误了。

这是一个commons-lang-2.6.jar的下载链接,下载放入/sqoop/lib即可。

//commons/lang/binaries/commons-lang-2.6-bin.zip

启动flume

flume-ng version  #验证flume是否安装成功

 

 如果出现该问题,那么就修改/hbase/hbase-env.sh,中

 注释掉HIVE_CONF_DIR即可,这并不会影响hbase

本文标签: Sqoop,Flume 安装 配置