数据转换工具Sqoop详解!(下)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 笔记

三、Sqoop export讲解


首先在mysql上准备数据表

CREATE TABLE  user_info_export (
  id int(11) NOT NULL AUTO_INCREMENT,
  username varchar(20) DEFAULT NULL,
  password varchar(20) DEFAULT NULL,
  PRIMARY KEY (id)
);

提前在hdfs上准备好数据,我的数据放在/user/kfk/sqoop/export/user_info,默认是逗号隔开,如果hdfs上文件使用’\t’分割,则可以设置参数–fields-terminated-by ‘\t’

将hdfs的数据导入到mysql中

bin/sqoop export \
--connect jdbc:mysql://bigdata-pro-m01:3306/db_sqoop \
--username root \
--password 199911 \
--num-mappers 1  \
--table user_info_export \
--export-dir /user/kfk/sqoop/export/user_info 
mysql> select * from user_info_export;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | admin    | admin    |
|  2 | wang     | 111111   |
|  3 | zhang    | 000000   |
|  4 | lili     | 000000   |
|  5 | henry    | 000000   |
|  6 | cherry   | 000000   |
|  7 | ben      | 111111   |
|  8 | leo      | 000000   |
|  9 | test     | test     |
| 10 | system   | 000000   |
| 11 | xiao     | 111111   |
+----+----------+----------+

指定特定的列名

bin/sqoop export \
--connect jdbc:mysql://bigdata-pro-m01:3306/db_sqoop \
--username root \
--password 199911 \
--num-mappers 1  \
--table user_info_export \
--export-dir /user/kfk/sqoop/export/user_info \
--columns 'username,password'
mysql> select * from user_info_export;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | admin    | admin    |
|  2 | wang     | 111111   |
|  3 | zhang    | 000000   |
|  4 | lili     | 000000   |
|  5 | henry    | 000000   |
|  6 | cherry   | 000000   |
|  7 | ben      | 111111   |
|  8 | leo      | 000000   |
|  9 | test     | test     |
| 10 | system   | 000000   |
| 11 | xiao     | 111111   |
| 12 | 1        | admin    |
| 13 | 2        | wang     |
| 14 | 3        | zhang    |
| 15 | 4        | lili     |
| 16 | 5        | henry    |
| 17 | 6        | cherry   |
| 18 | 7        | ben      |
| 19 | 8        | leo      |
| 20 | 9        | test     |
| 21 | 10       | system   |
| 22 | 11       | xiao     |
+----+----------+----------+
22 rows in set (0.00 sec)


四、Sqoop import Hive和Sqoop export Hive


首先在hive上创建数据表

CREATE TABLE user_info (
  id int,
  username string,
  password string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

将mysql的数据导入到hive表

bin/sqoop import \
--connect jdbc:mysql://bigdata-pro-m01:3306/db_sqoop \
--username root \
--password 199911 \
--num-mappers 1  \
--table user_info \
--fields-terminated-by ',' \
--delete-target-dir \
--target-dir /user/hive/warehouse/db_hive.db/user_info
hive (db_hive)> select * from user_info;
OK
user_info.id    user_info.username      user_info.password
1       admin   admin
2       wang    111111
3       zhang   000000
4       lili    000000
5       henry   000000
6       cherry  000000
7       ben     111111
8       leo     000000
9       test    test
10      system  000000
11      xiao    111111
Time taken: 0.059 seconds, Fetched: 11 row(s)
mysql-table   ->  /user/hive/warehouse/db_hive.db/user_info

将hive中的数据导出到mysql中

bin/sqoop export \
--connect jdbc:mysql://bigdata-pro-m01:3306/db_sqoop \
--username root \
--password 199911 \
--num-mappers 1  \
--table user_info_export \
--input-fields-terminated-by ',' \
--export-dir /user/hive/warehouse/db_hive.db/user_info 
mysql> mysql> select * from user_info_export;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | admin    | admin    |
|  2 | wang     | 111111   |
|  3 | zhang    | 000000   |
|  4 | lili     | 000000   |
|  5 | henry    | 000000   |
|  6 | cherry   | 000000   |
|  7 | ben      | 111111   |
|  8 | leo      | 000000   |
|  9 | test     | test     |
| 10 | system   | 000000   |
| 11 | xiao     | 111111   |
+----+----------+----------+
11 rows in set (0.00 sec)


五、options-file讲解


出了命令行的方式,我们也可以通过options-file来导入数据:

vim import.txt
import
--connect
jdbc:mysql://bigdata-pro-m01:3306/db_sqoop
--username
root
--password
199911
--table
user_info
--delete-target-dir
--num-mappers 
1
--target-dir
/user/kfk/sqoop/import/user_info
--fields-terminated-by
'\t'
sqoop --options-file import.txt
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
493 2
|
数据采集 SQL 分布式计算
数据处理 、大数据、数据抽取 ETL 工具 DataX 、Kettle、Sqoop
数据处理 、大数据、数据抽取 ETL 工具 DataX 、Kettle、Sqoop
1436 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
58 3
|
6月前
|
SQL 分布式计算 关系型数据库
【数据采集与预处理】数据传输工具Sqoop
【数据采集与预处理】数据传输工具Sqoop
231 0
|
6月前
|
数据采集 消息中间件 分布式计算
Sqoop与其他数据采集工具的比较分析
Sqoop与其他数据采集工具的比较分析
|
SQL 关系型数据库 MySQL
hive数据库操作与sqoop工具的使用
hive数据库操作与sqoop工具的使用
|
SQL 存储 分布式计算
Sqoop进行Hadoop生态离线数据迁移工具
学习一个东西,个人认为最好的方式是:官网+源码+实践。 Sqoop官网:http://sqoop.apache.org
496 0
Sqoop进行Hadoop生态离线数据迁移工具
|
SQL 资源调度 关系型数据库
数据迁移的工具Sqoop的安装与配置
数据迁移的工具Sqoop的安装与配置
136 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
87 0
下一篇
无影云桌面