文章目录
一、安装
1、上传,解压,重命名
sqoop下载地址
提起码:1234
cd /opt/modules
# 上传
# 解压
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/installs
# 重命名
mv /opt/modules/sqoop-1.4.7.bin__hadoop-2.6.0 /opt/modules/sqoop
2、修改环境变量
export SQOOP_HOME=/opt/installs/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
3、修改配置文件
# 重命名配置文件
mv sqoop-env-template.sh sqoop-env.sh#添加如下配置:
export HADOOP_COMMON_HOME=/opt/installs/hadoop
export HADOOP_MAPRED_HOME=/opt/installs/hadoop
export HIVE_HOME=/opt/installs/hive
export HCAT_HOME=/opt/installs/hive/hcatalog
4、上传驱动包
将mysql8.0的驱动包放入 sqoop 的 lib 目录下
5、拷贝jar包
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/
二、import命令
mysqlhdfs_48">1、将mysql的数据导入到hdfs上
sqoop import \--connect jdbc:mysql://node01:3306/数据库的名字 \--username root \--password 123456 \--table emp \ # 有query 不用指定--target-dir /hdfs上的路径 \--delete-target-dir \ #如果hdfs上存在该文件夹就删除--query 'select * from emp where empno < 7788 and $CONDITIONS' \ # sqoop也支持sql语句--split-by empno -m 1
有query的时候sql语句中必须有$CONDITIONS、后面参数必须有split-by或者-m 1
mysqlhive_64">2、将mysql的数据导入到hive上
sqoop import \--connect jdbc:mysql://node01:3306/数据库的名字 \--username root \--password 123456 \--table emp \--hive-import \--hive-overwrite \--hive-table emp \--hive-database hive数据库的名字 \-m 1
3、增量导入数据
两种方式:
1、sql语句加where条件
2、last-value
sqoop import \--connect jdbc:mysql://node01:3306/数据库的名字\--username root \--password 123456 \--table emp \--target-dir /sqoop/dt=20240903 \-m 1 \--check-column empno \ # 必须写,指定检出的列--incremental append \ # 增量--last-value 0 \--fields-terminated-by '\t' #指定导入数据的分隔符
三、export命令
mysql_99">1、从hdfs导出到mysql中
mysql中的表需要提前创建出来
sqoop export \--connect jdbc:mysql://node01:3306/mydb01 \--username root \--password 123456 \--table user \--export-dir '/sqoop/aaa.txt' \--input-fields-terminated-by ',' \--columns 'id,age' \ # 指定mysql中的列,要与hdfs文件内容对应-m 1
hivemysql_114">2、从hive导出到mysql中
sqoop export \
--connect jdbc:mysql://node01:3306/mydb01 \
--username root \
--password 123456 \
--table user \ # mysql的表
--hcatalog-database mydb01 \ # hive的数据库
--hcatalog-table par3 \ #hive的表
-m 1
sqoopjob_128">四、sqoop的job任务
sqoop job --create jjoobb --sqoop import \
# 编写import代码sqoop job --exec jjoobb
# 执行job任务sqoop job --delete jjoobb
# 删除job任务sqoop job --list
# 查看所有的job任务