一、Sqoop常用的关系型数据库导入与导出
以下是本篇文章正文内容,如有错误麻烦请指出。 谢谢 !!!
一、简介
- Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具;
- 关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS;
- Hadoop上HDFS的数据导出到关系型数据库中;
- Sqoop专为大数据批量传输设计,能够分割数据集并创建Hadoop任务(MR任务)处理。
二、sqoop-import命令使用
2.1、Sqoop查看关系型数据库信息
- 1. 查看关系型数据库的库名
sqoop list-databases \
# --connect jdbc:oracle:thin:@ip:port \ # Oracle数据库连接
--connect jdbc:mysql://ip:port \ # MySQL数据库连接
--username root \
--password ******
- 2. 查看关系型数据库对应库名下的表名
sqoop list-tables \
--connect jdbc:mysql://ip:port/库名 \
--username root \
--password ******
2.2、关系型数据库数据导入到HDFS上
- 1. 指定表名导入到HDFS
sqoop-import --connect jdbc:mysql://ip:port/库名 \
--driver com.mysql.jdbc.Driver \
--username root \
--password ****** \
--table task \
--where 'id < 100' \
--columns packages,requireno \
--target-dir /user/edq/sqoop-import/20210311 \
--delete-target-dir \
--compress \
--as-textfile \ # 文件格式: 文本
-m 1
- 2. 指定SQL语句导入到HDFS
sqoop-import --connect jdbc:mysql://ip:port/库名 \
--driver com.mysql.jdbc.Driver \
--username root \
--password ****** \
--query 'select * from task where 1 = 1 and \$CONDTIONS' \
--fields-terminated-by '@' \ # 指定字段之间的分隔符
--target-dir /user/edq/sqoop-import/20210311 \
--delete-target-dir \
--compress \
--as-textfile \
-m 1
- 3. 指定增量方式导入到HDFS
sqoop-import --connect jdbc:mysql://ip:port/库名 \
--driver com.mysql.jdbc.Driver \
--username root \
--password


1891

被折叠的 条评论
为什么被折叠?



