• 使用帮助

Sqoop help 查看所有的sqoop的帮助

Sqoop help import 查看import命令的帮助

Eg: sqoop导入到HDFS的一个简单示例:
sqoop import 
        --connect jdbc:mysql://192.168.56.121:3306/metastore 
        --username hiveuser 
        --password redhat 
        --table TBLS
  • 导入到HDFS

Eg:

sqoop import 
--connect jdbc:mysql://192.168.56.121:3306/metastore 
--username hiveuser 
--password redhat 
--table TBLS 
--target-dir /user/hive/result

注意:

  • mysql jdbc url 请使用 ip 地址
  • 如果重复执行,会提示目录已经存在,可以手动删除
  • 如果不指定 --target-dir,导入到用户家目录下的 TBLS 目录

其他参数说明

参数

说明

--append

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

--as-avrodatafile

将数据导入到一个Avro数据文件中|

--as-sequencefile

将数据导入到一个sequence文件中

--as-textfile

将数据导入到一个普通文本文件中,生成该文本文件后,可以在hive中通过sql语句查询出结果。

--boundary-query <statement>

边界查询,也就是在导入前先通过SQL查询得到一个结果集,然后导入的数据就是该结果集内的数据,格式如:--boundary-query 'select id,no from t where id = 3',表示导入的数据为id=3的记录,或者 select min(<split-by>), max(<split-by>) from <table name>,注意查询的字段中不能有数据类型为字符串的字段,否则会报错

--columns<col,col>

指定要导入的字段值,格式如:--columns id,username

--direct

直接导入模式,使用的是关系数据库自带的导入导出工具。官网上是说这样导入会更快

--direct-split-size

在使用上面direct直接导入的基础上,对导入的流按字节数分块,特别是使用直连模式从PostgreSQL导入数据的时候,可以将一个到达设定大小的文件分为几个独立的文件。

--inline-lob-limit

设定大对象数据类型的最大值

-m,--num-mappers

启动N个map来并行导入数据,默认是4个,最好不要将数字设置为高于集群的节点数

--query,-e <sql>

从查询结果中导入数据,该参数使用时必须指定–target-dir、–hive-table,在查询语句中一定要有where条件且在where条件中需要包含 \$CONDITIONS,示例:--query 'select * from t where \$CONDITIONS ' --target-dir /tmp/t –hive-table t

--split-by <column>

表的列名,用来切分工作单元,一般后面跟主键ID

--table <table-name>

关系数据库表名,数据从该表中获取

--delete-target-dir

删除目标目录

--target-dir <dir>

指定hdfs路径

--warehouse-dir <dir>

与 --target-dir 不能同时使用,指定数据导入的存放目录,适用于hdfs导入,不适合导入hive目录

--where

从关系数据库导入数据时的查询条件,示例:--where "id = 2"

-z,--compress

压缩参数,默认情况下数据是没被压缩的,通过该参数可以使用gzip压缩算法对数据进行压缩,适用于SequenceFile, text文本文件, 和Avro文件

--compression-codec

Hadoop压缩编码,默认是gzip

--null-string <null-string>

可选参数,如果没有指定,则字符串null将被使用

--null-non-string <null-string>

可选参数,如果没有指定,则字符串null将被使用|

 
 

2.3 创建 hive 表

Eg:
sqoop 
        create-hive-table 
        --connect jdbc:mysql://192.168.56.121:3306/metastore 
        --username hiveuser 
        --password redhat 
        --table TBLS 

参数

说明

--hive-home <dir>

Hive的安装目录,可以通过该参数覆盖掉默认的hive目录

--hive-overwrite

覆盖掉在hive表中已经存在的数据

--create-hive-table

默认是false,如果目标表已经存在了,那么创建任务会失败

--hive-table

后面接要创建的hive表

--table

指定关系数据库表名

导入数据到 hive

执行下面的命令会将 mysql 中的数据导入到 hdfs 中,然后创建一个hive 表,最后再将 hdfs 上的文件移动到 hive 表的目录下面。
sqoop import 
        --connect jdbc:mysql://192.168.56.121:3306/metastore 
        --username hiveuser --password redhat 
        --table TBLS 
        --fields-terminated-by "\t" 
        --lines-terminated-by "\n" 
        --hive-import 
        --hive-overwrite 
        --create-hive-table 
        --hive-table dw_srclog.TBLS 
        --delete-target-dir
 

具体可以参照:https://segmentfault.com/a/1190000002532293

关于sqoop的导出使用从hive中导出到mysql:

Sqoop export

--connect jdbc:mysql://xxxxxx:3306/bbg_real_data?characterEncoding=utf-8

--username root  #表示数据库用户名

--password root  #表示数据库密码

--table deal_data  #表示数据表名

--hcatalog-database default  #hive中的数据库名

--hcatalog-table deal_bbg_data_2  #表示hive中的表名

注意导出的时候,mysql的字段名要和hive里面的字段名一样,这样才能对应的导入和导出。字段类型也要一样,我全部都是varchar(40)。

Mysql表明和字段名不能是关键字例如:all等等

Hive tutorrials

  1. Create schema/table

Create schema[table] schema_name/table_name

  1. Delete schema/table

Drop  database[table] if exists database_name[table_name]

Detail please look at as follow:

http://www.yiibai.com/hive/hive_drop_table.html

Sqoop 导入数据到hdfs和hive总结相关推荐

  1. sqoop从mysql导入hdfs_sqoop 从mysql导入数据到hdfs、hive

    1.上传sqoop安装包 2.安装和配置 在添加sqoop到环境变量 将数据库连接驱动拷贝到$SQOOP_HOME/lib里 3.使用 第一类:数据库中的数据导入到HDFS上 sqoop import ...

  2. sqoop从mysql导入hdfs_3.使用sqoop从mysql 导入数据到hdfs

    使用sqoop从mysql 导入数据到hdfs 注意: 需要将mysql的jdbc驱动包放到lib目录下 在conf目录中,执行 cp sqoop-env-template.sh sqoop-env. ...

  3. sqoop动态分区导入mysql,sqoop 导入数据到hive分区表(外表,内表) 指定分区 指定数据库 指定表...

    sqoop 导入数据到hive 1.1.导入数据到hive分区表(内表),指定分区 创建hive分区表 –hive-database 指定数据库 –table 指定表 –hive-overwrite ...

  4. sqoop导入数据(保持一致性)--staging-table

    sqoop导入数据(保持一致性)–staging-table sqoop import参数 –query "select XXXXX and $CONDITIONS " 按条件导入 ...

  5. Sqoop导入数据发生数据倾斜问题 及更好解决

    Sqoop导入数据发生数据倾斜问题 及更好解决 一:问题 在生产环境中,由于数据是庞大的,且是复杂的 Sqoop抽数使用单实例报内存溢出以及抽数时间过长,决定采用sqoop的多实例并行抽数 官网:ht ...

  6. 使用Sqoop1将MySQL 导入数据到 HDFS

    本篇文章主要介绍使用Sqoop1将MySQL 导入数据到 HDFS. 说明: 1.Sqoop 与数据库进行通信,获取数据库表的元数据信息 2.Sqoop启动一个Map-Only的MapReduce作业 ...

  7. sqoop导入数据常见问题解决方法

    sqoop导入数据常见问题解决方法 参考文章: (1)sqoop导入数据常见问题解决方法 (2)https://www.cnblogs.com/chaojibaidu/p/11071132.html ...

  8. Sqoop导入数据--split by 和 --m(大于1)配合使用

    Sqoop导入数据–split by 和 --m(大于1)配合使用 split-by 根据不同的参数类型有不同的切分方法: 如int型,Sqoop会取最大和最小split-by字段值,然后根据传入的n ...

  9. Sqoop快速入门【导入数据到HDFS与导出数据到数据库】

    1.Sqoop概述 Sqoop - "SQL到Hadoop和Hadoop到SQL" sqoop是apache旗下一款"Hadoop和关系数据库服务器之间传送数据" ...

最新文章

  1. mac git使用与配置踩过的坑
  2. 深入探讨Varnish缓存命中率
  3. 中科大博士20万字正经论文:教你如何给女朋友送礼物
  4. Xamarin.Forms中使用LiteDB分页
  5. spring事务管理-注解配置aop事务(重点)
  6. C/C++中的占位符
  7. openHEVC在Windows下构建vs32/64位工程(vs2013)
  8. Axis1.x WebService开发指南—目录索引
  9. 卡巴斯基2014激活码授权文件KEY
  10. Python根据歌曲id爬取网易云音乐歌词
  11. 如何批量压缩pdf文件大小?
  12. Excel数字小写金额转换汉字大写金额公式的简单设置
  13. 植物大战僵尸_修改存档和金钱
  14. 【论文翻译】Occluded Prohibited Items Detection
  15. 大学android五子棋课程目的,拓展性课程(五子棋)教案.pdf
  16. 【大数据分析毕设之基于python爬虫的旅游大数据分析可视化系统】
  17. 极佳mysql修复数据库修复_极佳SQL数据库修复工具下载
  18. 【特产百科】台湾炭焙乌龙茶的功效
  19. 流水线生产流程与批量生产流程的优缺点
  20. 2021年煤矿采煤机(掘进机)操作考试技巧及煤矿采煤机(掘进机)操作复审考试

热门文章

  1. P8400 [CCC 2022 J1] Cupcake Party
  2. s=a+bb+ccc+dddd+….的值 python
  3. 服务器网站显示1004报错,失败:错误域= NSURLErrorDomain代码= -1004“无法连接到服务器。”...
  4. 爱上博客--个人随想
  5. 提高网速软件_直播软件这样开发,确实独树一帜
  6. NFVA35065L32 IGBT 650V 汽车智能功率模块 (ASPM) 特征
  7. 猫狗大战(kaggle竞赛-猫狗图像分类)
  8. matlab鱼群仿真程序,人工鱼群算法的仿真程序-matlab
  9. SLO 落地方案:VALET
  10. 浅析网站的基本构成和主要类型