sqoop下载地址:https://share.weiyun.com/woVbfnfS
或者 https://archive.apache.org/dist/sqoop/1.99.7/
Sqoop简介
sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。
核心的功能有两个:导入、导出
导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统
导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等
sqoop本质是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序
hive本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序
Sqoop的安装
(1) 解压到指定目录:
tar -zxvf /bigData/software/sqoop-1.99.7-bin-hadoop200.tar.gz -C /bigData/install/
(2) 修改mapreduce.configuration.directory的目录
cd /bigData/install/sqoop-1.99.7-bin-hadoop200/conf/
修改sqoop.properties文件 修改org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/bigData/install/hadoop-3.1.4/etc/hadoop/配置
(3)配置环境变量
添加export SQOOP_HOME=/bigData/install/sqoop-1.99.7-bin-hadoop200,在PATH路径下添加$SQOOP_HOME/bin路径。
(4)添加mysql驱动 将mysql驱动包放在sqoop安装目录的server/lib目录下。
ll |grep mysql
(5) 验证配置
① sqoop2-tool upgrade
若出现“Caused by: java.lang.SecurityException: sealing violation: package org.apache.derby.impl.jdbc.authentication is sealed”错误。
需要查看/bigData/install/sqoop-1.99.7-bin-hadoop200/bin目录下的derby版本信息和hive目录下的版本信息做对比。
将sqoop目录下的derby重命名
cd /bigData/install/sqoop-1.99.7-bin-hadoop200/server/lib/
mv derby-10.8.2.2.jar derby-10.8.2.2.jar.back
hive目录下的derby库复制过来。
cp /bigData/install/apache-hive-3.1.2-bin/lib/derby-10.14.1.0.jar ./
使用 如下命令查看 版本是否正确
ll *derby*
再次输入如下命令,验证
sqoop2-tool upgrade
② 继续验证 sqoop2-tool verify
若出现“Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V”错误,
需要对比hive与sqoop目录下的guava库的版本:
cd /bigData/install/apache-hive-3.1.2-bin/lib
ll *guava*
查看sqoop下的guava版本,发现当前sqoop使用的guava版本均为11.0.2,需要修改:
cd /bigData/install/sqoop-1.99.7-bin-hadoop200
find . -name *guava*
将名称修改掉:mv ./tools/lib/guava-11.0.2.jar xxxxxxxxx/guava-11.0.2.jar.back
然后将hive下的guava复制到sqoop目录下:cp ./server/lib/guava-27.0-jre.jar xxx/
② 继续验证 sqoop2-tool verify
启动服务端/客户端
- 启动命令
sqoop2-server start
-
关闭命令 sqoop2-server stop
查看进程信息:
打开cli客户端命令:sqoop2-shell