首先,为防止报错,将两个驱动包装在sqoop中:commons-lang-2.6.jar和hive-common-3.1.2.jar
一般hive中都会有这两个驱动包,因此可执行如下命令:
cp /opt/installs/hive/lib/commons-lang-2.6.jar /opt/installs/sqoop/lib/
cp /opt/installs/hive/lib/hive-common-3.1.2.jar /opt/installs/sqoop/lib/
第一步:在hive中创建数据库
在hive中创建一个数据库:
create database finance;
第二步:复制MySQL中表的名字
在mysql数据库,查询目标数据库下的所有表名,复制到你指定的文件中(如:/root/tables.txt)
select table_name from information_schema.`TABLES` where table_schema = '数据库名称'
第三步:编辑运行脚本
在home目录下,创建目录
mkdir scripts
cd scripts
编写脚本: import.sh
指定权限:chmod 777 import.sh
#!/bin/bash
while read x1
do
sqoop import --connect jdbc:mysql://shucang:3306/jrxd?zeroDateTimeBehavior=convertToNull \
--driver com.mysql.cj.jdbc.Driver \
--username root \
--password 123456 \
--table $x1 \
--hive-import \
--hive-overwrite \
--hive-table ods_$x1 \
--hive-database finance \
--null-non-string '\\N' \
--null-string '\\N' \
-m 1
done < /root/tables.txt
//表名文件路径