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

简介: 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

相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
8天前
|
分布式计算 Java Hadoop
IDEA 打包MapReduce程序到集群运行的两种方式以及XShell和Xftp过期的解决
IDEA 打包MapReduce程序到集群运行的两种方式以及XShell和Xftp过期的解决
|
8天前
|
分布式计算 Hadoop Java
【集群模式】执行MapReduce程序-wordcount
【集群模式】执行MapReduce程序-wordcount
|
8月前
|
数据库 数据安全/隐私保护
阿里云E-MapReduce集群-开源Ldap密码不安全问题解决方案
社区开源Ldap密码不安全问题解决方案
|
9月前
|
分布式计算 资源调度 Hadoop
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化
|
12月前
|
分布式计算 Ubuntu Hadoop
【集群模式】执行MapReduce程序-wordcount
因为是在hadoop集群下通过jar包的方式运行我们自己写的wordcount案例,所以需要传递的是 HDFS中的文件路径,所以我们需要修改上一节【本地模式】中 WordCountRunner类 的代码
|
弹性计算 分布式计算 Java
E-MapReduce集群-JAVA客户端远程连接HDFS
阿里云E-MapReduce集群-JAVA客户端远程连接HDFS
|
分布式计算 资源调度 Java
Hadoop中的MapReduce概述、优缺点、核心思想、编程规范、进程、官方WordCount源码、提交到集群测试、常用数据序列化类型、WordCount案例实操
Hadoop中的MapReduce概述、优缺点、核心思想、编程规范、进程、官方WordCount源码、提交到集群测试、常用数据序列化类型、WordCount案例实操
Hadoop中的MapReduce概述、优缺点、核心思想、编程规范、进程、官方WordCount源码、提交到集群测试、常用数据序列化类型、WordCount案例实操
|
分布式计算 资源调度 Hadoop
Hadoop运行模式(二)、SSH无密登录配置、生成公钥和私钥、集群配置、集群部署规划、默认配置文件、核心配置文件、HDFS配置文件、YARN配置文件、MapReduce配置文件、在集群上分发配置好的
ssh文件夹下(~/.ssh)的文件功能解释、ssh连接时出现Host key verification failed的解决方法、免密登录原理、将公钥拷贝到要免密登录的目标机器上、NameNode和SecondaryNameNode不要安装在同一台服务器、ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上、Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值、.
393 1
Hadoop运行模式(二)、SSH无密登录配置、生成公钥和私钥、集群配置、集群部署规划、默认配置文件、核心配置文件、HDFS配置文件、YARN配置文件、MapReduce配置文件、在集群上分发配置好的
|
SQL JSON druid
【Druid】(九)E-MapReduce Druid 集群集成 Superset(数据探查与可视化平台 )2
【Druid】(九)E-MapReduce Druid 集群集成 Superset(数据探查与可视化平台 )2
164 0
【Druid】(九)E-MapReduce Druid 集群集成 Superset(数据探查与可视化平台 )2