在Aliyun E-MapReduce集群上 使用sqoop高级特性

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: sqoop简介 sqoop是什么 Sqoop是一款开源的软件工具,提供了Hadoop和关系型数据库中的数据相互转移的功能。可以将一个关系型数据库(例如 : MySQL)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 在E-MapReduce集群中使用sqo

sqoop简介

sqoop是什么

Sqoop是一款开源的软件工具,提供了Hadoop和关系型数据库中的数据相互转移的功能。可以将一个关系型数据库(例如 : MySQL)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

在E-MapReduce集群中使用sqoop

当前E-MapReduce还没有集成Sqoop,很快会发布下个版本默认提供sqoop组件。在E-MapReduce集群安装和常见场景的导入导出基本功能使用请参见
帮助文档-sqoop

sqoop高级特性

导入导出通用可选参数

-m

指定启动n个map来并行导入数据,默认是4个。根据数据量的大小调整作业数。

--direct

快速模式,利用了数据库自带的导入导出工具,如mysql的mysqlimport,官方说比jdbc连接的方式更快速

--as-avrodatafile

将数据导入到一个Avro数据文件中或从Avro数据文件中导出,默认是textfile

--as-sequencefile

将数据导入到一个sequence文件中或从Avro数据文件中导出

-z

指定使用压缩导入或从压缩的hdfs文件中导出。默认压缩格式是gzip

--compression-codec

配合-Z使用,指定具体压缩格式。默认压缩格式是gzip

导入import高级特性

--split-by

指定map基于哪个列的值划分范围,默认是主键。sqoop会先查询该列的最大,最小值,在最大最小值的范围内划分各map的取值范围。

条件和字段过滤

--columns

指定导入哪些字段,例如 --columns "employee_id,first_name,last_name,job_title"

--where

附加额外的sql过滤,例如–where ‘id > 2’,可以用来做增量插入的条件。

--query

提供完整的select sql,从查询结果中导入数据。在查询语句中一定要有where条件且在where条件中需要包含$CONDITIONS,并且指定--split-by 参数。示例:–query ‘select * from person where $CONDITIONS ‘ –split-by id。 map会根据 id的划分范围替换 $CONDITIONS。

增量导入

--append

将数据追加到hdfs中已经存在的目录中。使用该参数,sqoop将把数据先导入到一个临时目录中,然后重新给文件命名到正式的目录中,以避免和该目录中已存在的文件重名。

导入支持各种sql过滤,字段或时间戳增量,-append .

--incremental

mode支持append and lastmodified两种。append:按列的大小追加,对大于last-value指定的值之后的记录进行追加导入。lastmodified:最后的修改时间,追加last-value指定的日期之后的记录。

需要跟 --check-column (col)和–last-value (value) 联合使用。前者指定判断增量的列名,后者指定自从上次导入后列的最大值,大于该值的都会被导入。

导出 export高级特性

--batch

使用batch sql批量insert 数据。

insert or update

默认导出只会insert 记录进关系型数据库,如果有唯一主键冲突,则会失败。指定--update-key id,会根据该字段做update操作。将关系数据库中已经存在的数据进行更新。

更新模式下不存在也不会报错,如果期待存在就更新不存在就插入,用 --update-mode allowinsert

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
3月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
150 3
|
3月前
|
分布式计算 资源调度 数据可视化
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
72 1
|
3月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
79 1
|
3月前
|
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
155 0
|
3月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
68 0
|
3月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
87 0
|
4月前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
89 0
|
数据采集 分布式计算 搜索推荐
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(一)
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(一)
|
存储 分布式计算 Hadoop
Hadoop基础学习---6、MapReduce框架原理(一)
Hadoop基础学习---6、MapReduce框架原理(一)
|
存储 分布式计算 Hadoop
【Hadoop】一个例子带你了解MapReduce
【Hadoop】一个例子带你了解MapReduce
112 1