Sqoop1.4.7适配MRS 3.x集群
Sqoop是专为Apache Hadoop和结构化数据库(如关系型数据库)设计的高效传输大量数据的工具。客户需要在MRS中使用sqoop进行数据迁移,MRS旧版本中未自带Sqoop,客户可参考此文档自行安装使用。MRS 3.1.0及之后版本已支持创建集群时勾选Sqoop组件,请创建集群时勾选即可。
本章节仅适用于MRS 3.0.2及MRS 3.0.5版本。
前提条件
已安装MRS客户端的节点,且已安装 jdk环境。
Sqoop1.4.7适配步骤
- 下载开源sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz包(下载地址http://archive.apache.org/dist/sqoop/1.4.7/)。
- 将下载的sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz包放入已安装MRS客户端的节点的“/opt/Bigdata/client”目录并解压。
tar zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
- 从MySQL官网下载MySQL jdbc驱动程序“mysql-connector-java-xxx.jar”,具体MySQL jdbc驱动程序选择参见下表。
表1 版本信息 jdbc驱动程序版本
MySQL版本
Connector/J 5.1
MySQL 4.1、MySQL 5.0、MySQL 5.1、MySQL 6.0 alpha
Connector/J 5.0
MySQL 4.1、MySQL 5.0 servers、distributed transaction (XA)
Connector/J 3.1
MySQL 4.1、MySQL 5.0 servers、MySQL 5.0 except distributed transaction (XA)
Connector/J 3.0
MySQL 3.x、MySQL 4.1
- 将MySQL 驱动包放入Sqoop的lib目录下(/opt/Bigdata/client/sqoop-1.4.7.bin__hadoop-2.6.0/lib)并修改jar包的属组和权限,参考图1的omm:wheel 和755的属组和权限。
- 使用MRS客户端中Hive的lib目录下(/opt/Bigdata/client/Hive/Beeline/lib)的jackson开头的jar包替换Sqoop的lib下的相应jar包。
图2 jackson开头的jar
- 将MRS Hive客户端中(/opt/Bigdata/client/Hive/Beeline/lib)的jline的包,拷贝到Sqoop的lib下。
- 执行vim $JAVA_HOME/jre/lib/security/java.policy增加如下配置:
permission javax.management.MBeanTrustPermission "register";
- 执行如下命令,进入Sqoop的conf目录并增加配置:
cd /opt/Bigdata/client/sqoop-1.4.7.bin__hadoop-2.6.0/conf
cp sqoop-env-template.sh sqoop-env.sh
- 执行vim sqoop-env.sh 设置Sqoop的环境变量,Hadoop、Hive的目录根据实际目录修改。
export HADOOP_COMMON_HOME=/opt/Bigdata/client/HDFS/hadoop export HADOOP_MAPRED_HOME=/opt/Bigdata/client/HDFS/hadoop export HIVE_HOME=/opt/Bigdata/MRS_1.9.X/install/FusionInsight-Hive-3.1.0/hive(请按照实际路径填写) export HIVE_CONF_DIR=/opt/Bigdata/client/Hive/config export HCAT_HOME=/opt/Bigdata/client/Hive/HCatalog
图3 设置Sqoop的环境变量
- 编写Sqoop脚本 例如:
/opt/Bigdata/FusionInsight_Current/1_19_SqoopClient/install/FusionInsight-Sqoop-1.4.7/bin/sqoop import --connect jdbc:mysql://192.168.0.183:3306/test --driver com.mysql.jdbc.Driver --username 'root' --password 'xxx' --query "SELECT id, name FROM tbtest WHERE \$CONDITIONS" --hcatalog-database default --hcatalog-table test --num-mappers 1