sqoop下载地址: http://www.apache.org/dyn/closer.lua/sqoop/
- 环境变量
# sqoop
export SQOOP_HOME=/home/sqoop-1.4.7
export PATH=$SQOOP_HOME/bin:$PATH
- sqoop-1.4.7/conf目录下
# 复制一份模板
cp sqoop-env-template.sh sqoop-env.sh
- 根据需求修改模板
- 连接服务器需要下载对应的jar包放入到lib目录下
cp mysql-connector-java-8.0.19.jar ../sqoop-1.4.7/lib/
简单测试使用
# 查看MySQL的数据库
sqoop list-databases -connect jdbc:mysql://localhost:3306/ -username root -password 123456
# 查看库中的表
sqoop list-tables -connect jdbc:mysql://localhost:3306/databasename -username root -password 123456
sqoop导入hive数据
- 添加环境变量
# vim ~/.bashrc
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/opt/cloudera/parcels/CDH/lib/hive/lib/*
- 添加etc/hadoop/mapred-site.xml 配置
<!-- sqoop导入数据 -->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
- MySQL导入到hive
sqoop import \
--connect jdbc:mysql://localhost:3306/cainiao \
# 用户名
--username root \
# 密码
--password 123456 \
# MySQL中的表
--table login \
# 删除临时文件夹
--delete-target-dir \
# 导入
--hive-import \
# 导入到的hive数据库
--hive-database hivetest \
# hive的库中的表
--hive-table logintest \
--fields-terminated-by "\t" \
# 并发数
-m 1
- MySQL导入到hdfs
# 增量导入
sqoop import \
--connect jdbc:mysql://localhost:3306/cainiao \
--username root \
--password 123456 \
--query "select failedCount,rate,name from zto_failreason where \$CONDITIONS" \
--target-dir '/user/hive/warehouse/hivetest.db/' \
--hive-table students \
--incremental append \
--check-column failedCount \
-m 1
- hdfs手动导入到hive
# 从hdfs导入到hive
hive> load data inpath '/user/hive/warehouse/hivetest.db/part-m-00000' into table default.students;