参数详细资料 观看这个博客

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一些语法的使用相关推荐

  1. sqoop mysql where_Sqoop基本语法简介

    1.查看命令帮助 [hadoop@hadoop000 ~]$ sqoop help usage: sqoop COMMAND [ARGS] Available commands: codegen Ge ...

  2. sqoop mysql parquet_Sqoop抽取Hive Parquet表数据到MySQL异常分析

    温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. Fayson的github:https://github.com/fayson/cdhproject 1.问题描述 在CDH集群中我们需 ...

  3. orcle与mysql的区别_Orcle与MySQL的SQL语法区别:

    Orcle与MySQL的SQL语法区别: 1.在Oracle中用 select * from all_users显示所有的用户,而在MySQL中显示所有数据 库的命令是 show databases ...

  4. MySQL中show语法使用总结

    MySQL中 show 语法的使用: 先查看MySQL版本信息: mysql> select version(); +------------+ | version() | +--------- ...

  5. MySQL 高级 - 存储过程 - 语法 - case结构

    MySQL 高级 - 存储过程 - 语法 - case结构 -- 给定一个月份, 然后计算出所在的季度 create procedure pro_test7(mon int) begindeclare ...

  6. MySQL 高级 - 存储过程 - 语法 - if判断 || 传递参数 (IN - 输入 OUT-输出)

    MySQL 高级 - 存储过程 - 语法 - if判断 传递参数

  7. Sybase和mysql语法_主流数据库复制表结构(SqlServer/Mysql/Oracle/Sybase)[语法差异分析]...

    因为数据库SQL语句在各大产品中带有"方言性",即SQLSERVER SYBASE都是用了T-SQL,Mysql是用的标准SQL,Oracle有有自己的PL/SQL.由于这种&qu ...

  8. mysql库与oracle库的区别_开源数据库Oracle与MySQL的SQL语法区别

    Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容,接下来我们就开始介绍这部分内容,希望能够对您有所帮助. Oracle与MySQL的SQL语法区别: 1.在Oracle中用sele ...

  9. mysql与oracle语法对比(实用)

    oracle sql语法不同于mysql的sql语法 不同点: 1. mysql: IFNULL(a,b) oracle: NULLIF(a,b) 2. mysql: 可以用Date类型的日期进行比较 ...

最新文章

  1. Java黑皮书课后题第5章:**5.36(商业应用:检测ISBN)使用循环简化编程练习题3.9
  2. wx:for-item循环数组失败
  3. Ocean的礼物(线段树单点修改)
  4. oracle表参数,Oracle 表的创建 及相关参数
  5. aio nio aio_AIO的完整形式是什么?
  6. 如何在Ubuntu 14.04上使用Percona XtraBackup创建MySQL数据库的热备份
  7. anaconda conda 的使用(指定镜像源、虚拟环境的创建)
  8. mysql 锁_浅谈MySQL的七种锁
  9. Camtasia2020注册机顶级屏幕录像视频编辑软件安装教程
  10. 40岁想在职读计算机博士,年龄超过四十五岁还有机会报考在职博士吗
  11. 互联网快讯:极米Z6X Pro、极米H3S获用户青睐;民德电子功率半导体赛道获进展
  12. 写给大家看的设计模式 1
  13. matlab程序算天气,科学网-站点气温数据的积温计算(含Matlab程序实现)-朱永超的博文...
  14. C++笔记8:C++提高编程2:STL---标准模板库
  15. html使用本地字体/自定义字体 字体转换成@font-face所需的web字体格式
  16. 管理经济学学习之初探
  17. Google(谷歌)研究员 吴军
  18. 软考信息系统项目管理师论文备考工作
  19. 2021绝地求生dm雷达
  20. python xlrd使用_Python中xlrd常用用法整理

热门文章

  1. 如何消除摄影中的运动模糊?
  2. Xcode10:Implicit declaration of function '' is invalid in C99
  3. 更改VMWare 虚拟机的硬件设置
  4. 据廖雪峰python3教程----python学习第二天
  5. OC中的NSNumber、NSArray、NSString的常用方法
  6. 电子与计算机工程 加拿大,加拿大本科热门专业:电子与计算机工程
  7. linux终端 多标签,Linux有问必答:如何在 Ubuntu 15.04 的 GNOME 终端中开启多个标签...
  8. oracle触发器 条件,oracle触发器的定义和使用
  9. mysql的多表操作_Mysql-多表连接的操作和用法
  10. alert()的功能_前端实现简单的图片上传小图预览功能