sqoop mysql parquet_sqoop一些语法的使用
参数详细资料 观看这个博客
http://shiyanjun.cn/archives/624.html
Sqoop可以在HDFS/Hive和关系型数据库之间进行数据的导入导出,其中主要使用了import和export这两个工具。这两个工具非常强大,提供了很多选项帮助我们完成数据的迁移和同步。比如,下面两个潜在的需求:
业务数据存放在关系数据库中,如果数据量达到一定规模后需要对其进行分析或同统计,单纯使用关系数据库可能会成为瓶颈,这时可以将数据从业务数据库数据导入(import)到Hadoop平台进行离线分析。
对大规模的数据在Hadoop平台上进行分析以后,可能需要将结果同步到关系数据库中作为业务的辅助数据,这时候需要将Hadoop平台分析后的数据导出(export)到关系数据库。
这里,我们介绍Sqoop完成上述基本应用场景所使用的import和export工具,通过一些简单的例子来说明这两个工具是如何做到的。
import和export工具有些通用的选项,如下表所示:
选项
含义说明
--connect
指定JDBC连接字符串
--connection-manager
指定要使用的连接管理器类
--driver
指定要使用的JDBC驱动类
--hadoop-mapred-home
指定$HADOOP_MAPRED_HOME路径
--help
打印用法帮助信息
--password-file
设置用于存放认证的密码信息文件的路径
-P
从控制台读取输入的密码
--password
设置认证密码
--username
设置认证用户名
--verbose
打印详细的运行信息
--connection-param-file
可选,指定存储数据库连接参数的属性文件
数据导入工具import
import工具,是将HDFS平台外部的结构化存储系统中的数据导入到Hadoop平台,便于后续分析。我们先看一下import工具的基本选项及其含义,如下表所示:
选项
含义说明
--append
将数据追加到HDFS上一个已存在的数据集上
--as-avrodatafile
将数据导入到Avro数据文件
--as-sequencefile
将数据导入到SequenceFile
--as-textfile
将数据导入到普通文本文件(默认)
--boundary-query
边界查询,用于创建分片(InputSplit)
--columns
从表中导出指定的一组列的数据
--delete-target-dir
如果指定目录存在,则先删除掉
--direct
使用直接导入模式(优化导入速度)
--direct-split-size
分割输入stream的字节大小(在直接导入模式下)
--fetch-size
从数据库中批量读取记录数
--inline-lob-limit
设置内联的LOB对象的大小
-m,--num-mappers
使用n个map任务并行导入数据
-e,--query
导入的查询语句
--split-by
指定按照哪个列去分割数据
--table
导入的源表表名
--target-dir
导入HDFS的目标路径
--warehouse-dir
HDFS存放表的根路径
--where
指定导出时所使用的查询条件
-z,--compress
启用压缩
--compression-codec
指定Hadoop的codec方式(默认gzip)
--null-string
果指定列为字符串类型,使用指定字符串替换值为null的该类列的值
--null-non-string
如果指定列为非字符串类型,使用指定字符串替换值为null的该类列的值
bin/sqoop help 可以查看出帮助文档 英文的 看不懂
1:sqoop查看mysql有多少个数据库
bin/sqoop list-databases \
--connect jdbc:mysql://172.16.71.27:3306 \
--username root \
--password root
2:将mysql表中数据导入到hdfs中 imports
bin/sqoop import \
--connect jdbc:mysql://172.16.71.27:3306/babasport \
--username root \
--password root \
--table test_tb
ps:如果没有指定hdfs的目录 默认会将数据存到系统当前登录用户下 以表名称命名的文件夹下
ps : 复制的时候一定要注意下 \ 的位置 少个空格都会报错。。。 默认会有4个MapReduce在执行 这里测试数据只有2条 so。。。
数据默认以逗号隔开 可以根据需求进行指定
导入数据至指定hdfs目录
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.ibeifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--target-dir /user/beifeng/sqoop/imp_my_user \
--num-mappers 1
ps: num-mappers 1 指定执行MapReduce的个数为1
target-dir 指定hdfs的目录
sqoop 底层的实现就是MapReduce,import来说,仅仅运行Map Task
数据存储文件
* textfile
* orcfile
* parquet
将数据按照parquet文件格式导出到hdfs指定目录
bin/sqoop import \
--connect jdbc:mysql://172.16.71.27:3306/babasport \
--username root \
--password root \
--table test_tb \
--target-dir /user/xuyou/sqoop/imp_my_user_parquet \
--fields-terminated-by '@' \
--num-mappers 1 \
--as-parquetfile
ps fields-terminated-by '@' 数据已@隔开
as-parquetfile 数据按照parquet文件格式存储
columns id,name 这个属性 可以只导入id已经name 这两个列的值
* 在实际的项目中,要处理的数据,需要进行初步清洗和过滤
* 某些字段过滤
* 条件
* join
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.ibeifeng.com:3306/test \
--username root \
--password 123456 \
--query 'select id, account from my_user where $CONDITIONS' \
--target-dir /user/beifeng/sqoop/imp_my_user_query \
--num-mappers 1
ps: query 这个属性代替了 table 可以通过用sql 语句来导出数据
(where $CONDITIONS' 是固定写法 如果需要条件查询可以 select id, account from my_user where $CONDITIONS' and id > 1)
压缩导入至hdfs的数据 可以指定格式
bin/sqoop import \
--connect jdbc:mysql://hadoop-senior.ibeifeng.com:3306/test \
--username root \
--password 123456 \
--table my_user \
--target-dir /user/beifeng/sqoop/imp_my_sannpy \
--delete-target-dir \
--num-mappers 1 \
--compress \
--compression-codec org.apache.hadoop.io.compress.SnappyCodec \
--fields-terminated-by '\t'
ps:compress 这个属性 是 开启压缩功能
compression-codec 这个属性是 指定压缩的压缩码 本次是SnappyCodec
sqoop mysql parquet_sqoop一些语法的使用相关推荐
- sqoop mysql where_Sqoop基本语法简介
1.查看命令帮助 [hadoop@hadoop000 ~]$ sqoop help usage: sqoop COMMAND [ARGS] Available commands: codegen Ge ...
- sqoop mysql parquet_Sqoop抽取Hive Parquet表数据到MySQL异常分析
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. Fayson的github:https://github.com/fayson/cdhproject 1.问题描述 在CDH集群中我们需 ...
- orcle与mysql的区别_Orcle与MySQL的SQL语法区别:
Orcle与MySQL的SQL语法区别: 1.在Oracle中用 select * from all_users显示所有的用户,而在MySQL中显示所有数据 库的命令是 show databases ...
- MySQL中show语法使用总结
MySQL中 show 语法的使用: 先查看MySQL版本信息: mysql> select version(); +------------+ | version() | +--------- ...
- MySQL 高级 - 存储过程 - 语法 - case结构
MySQL 高级 - 存储过程 - 语法 - case结构 -- 给定一个月份, 然后计算出所在的季度 create procedure pro_test7(mon int) begindeclare ...
- MySQL 高级 - 存储过程 - 语法 - if判断 || 传递参数 (IN - 输入 OUT-输出)
MySQL 高级 - 存储过程 - 语法 - if判断 传递参数
- Sybase和mysql语法_主流数据库复制表结构(SqlServer/Mysql/Oracle/Sybase)[语法差异分析]...
因为数据库SQL语句在各大产品中带有"方言性",即SQLSERVER SYBASE都是用了T-SQL,Mysql是用的标准SQL,Oracle有有自己的PL/SQL.由于这种&qu ...
- mysql库与oracle库的区别_开源数据库Oracle与MySQL的SQL语法区别
Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容,接下来我们就开始介绍这部分内容,希望能够对您有所帮助. Oracle与MySQL的SQL语法区别: 1.在Oracle中用sele ...
- mysql与oracle语法对比(实用)
oracle sql语法不同于mysql的sql语法 不同点: 1. mysql: IFNULL(a,b) oracle: NULLIF(a,b) 2. mysql: 可以用Date类型的日期进行比较 ...
最新文章
- Java黑皮书课后题第5章:**5.36(商业应用:检测ISBN)使用循环简化编程练习题3.9
- wx:for-item循环数组失败
- Ocean的礼物(线段树单点修改)
- oracle表参数,Oracle 表的创建 及相关参数
- aio nio aio_AIO的完整形式是什么?
- 如何在Ubuntu 14.04上使用Percona XtraBackup创建MySQL数据库的热备份
- anaconda conda 的使用(指定镜像源、虚拟环境的创建)
- mysql 锁_浅谈MySQL的七种锁
- Camtasia2020注册机顶级屏幕录像视频编辑软件安装教程
- 40岁想在职读计算机博士,年龄超过四十五岁还有机会报考在职博士吗
- 互联网快讯:极米Z6X Pro、极米H3S获用户青睐;民德电子功率半导体赛道获进展
- 写给大家看的设计模式 1
- matlab程序算天气,科学网-站点气温数据的积温计算(含Matlab程序实现)-朱永超的博文...
- C++笔记8:C++提高编程2:STL---标准模板库
- html使用本地字体/自定义字体 字体转换成@font-face所需的web字体格式
- 管理经济学学习之初探
- Google(谷歌)研究员 吴军
- 软考信息系统项目管理师论文备考工作
- 2021绝地求生dm雷达
- python xlrd使用_Python中xlrd常用用法整理
热门文章
- 如何消除摄影中的运动模糊?
- Xcode10:Implicit declaration of function '' is invalid in C99
- 更改VMWare 虚拟机的硬件设置
- 据廖雪峰python3教程----python学习第二天
- OC中的NSNumber、NSArray、NSString的常用方法
- 电子与计算机工程 加拿大,加拿大本科热门专业:电子与计算机工程
- linux终端 多标签,Linux有问必答:如何在 Ubuntu 15.04 的 GNOME 终端中开启多个标签...
- oracle触发器 条件,oracle触发器的定义和使用
- mysql的多表操作_Mysql-多表连接的操作和用法
- alert()的功能_前端实现简单的图片上传小图预览功能