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

split-by 根据不同的参数类型有不同的切分方法;
如int型,Sqoop会取最大和最小split-by字段值,然后根据传入的num-mappers来 确定划分几个区域。
比如select max(split_by),min(split-by) from得到的max(split-by)和min(split-by)分别为1000和1,而num-mappers(-m)为2的话,则会分成两个区域 (1,500)和(501-1000),同时也会分成2个sql给2个map去进行导入操作,
分别为select XXX from table where split-by>=1 and split-by<500和select XXX from table where split-by>=501 and split-by<=1000.
最后每个map各自获取各自SQL中的数据进行导入工作。

sqoop import \
--connect jdbc:mysql://hadoop01:3306/feidata \
--username xxx \
--password xxx \
--table emp \
--hive-overwrite \
--delete-target-dir \
--hive-import --hive-database fei_hive \
--hive-table emp_import_partition \
--fields-terminated-by '\t' \
--split-by deptno

如果不设置的话,默认是–m=4

上面遇到的问题就是当split-by是int类型但不是自增长的话,各个map分配的数据是不均衡的,
可能会有些map很忙,有些map几乎没有数据处理的情况,
数据多的时候,会拉数据的时候数据库出现奔溃的情况

当split-by不是int型时出现如上场景中的问题。目前想到的解决办法是:
将-m设置称1,split-by不设置,即只有一个map运行,
缺点是不能并行map录入数据,(
注意,当-m设置的值大于1时,split-by必须设置字段)数据多的时候,也会在拉数据的时候数据库出现奔溃的情况。

sqoop import \
--connect jdbc:mysql://hadoop01:3306/feidata \
--username xxx \
--password xxx\
--table emp \
--hive-overwrite \
--delete-target-dir \
--hive-import --hive-database fei_hive \
--hive-table emp_import_partition \
--fields-terminated-by '\t' \
--split-by hiredate
--m 1

但是可以使用时间字段作为分区字段(月,天),
查询条件–query "select * from t where date=‘xxx’ ",时间可以写在一个文件去维护,从而可以使用shell脚本去循环查询,–m=1,这样就可以防止抽取数据的时候,把数据库拉死

Sqoop导入数据--split by 和 --m(大于1)配合使用相关推荐

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

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

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

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

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

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

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

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

  5. sqoop导入数据遇到的参数问题 ,导出–staging-table

    sqoop import参数 –query "select XXXXX and $CONDITIONS " 按条件导入 -m1 指定map 在导入的时候采用指定–columns的方 ...

  6. sqoop导入数据‘‘--query搭配$CONDITIONS‘‘的理解

    目录 运行测试 原理理解 引言 sqoop在导入数据时,可以使用--query搭配sql来指定查询条件,并且还需在sql中添加$CONDITIONS,来实现并行运行mr的功能. 回到顶部 运行测试 测 ...

  7. sqoop导入数据到hive中元数据问题

    简单配置了sqoop之后开始使用,之前用的时候很好用,也不记得有没有启动hivemetastore,今天用的时候没有启动,结果导入数据时,如果使用了db.tablename,就会出现找不到数据库的错, ...

  8. Sqoop 导入数据到hdfs和hive总结

    使用帮助 Sqoop help 查看所有的sqoop的帮助 Sqoop help import 查看import命令的帮助 Eg: sqoop导入到HDFS的一个简单示例: sqoop import ...

  9. 大数据学习——sqoop导入数据

    把数据从关系型数据库导入到hadoop 启动sqoop 导入表表数据到HDFS 下面的命令用于从MySQL数据库服务器中的emp表导入HDFS. sqoop import \ --connect jd ...

最新文章

  1. python入门经典例题-Python入门练习题(适合Python初学者做的练习题)
  2. 利用 Linux 查找重复文件
  3. 在游戏运营行业,Serverless 如何解决数据采集分析痛点?
  4. Conditional project or library reference in Visual Studio
  5. 频繁默认网关不可用_win10 总是默认网关不可用,怎么回事?
  6. C++ auto和decltype关键字
  7. 培养宝贝惊人记忆力10妙招哦
  8. div iframe 显示html,IE中iframe标签显示在DIV之上的问题解决方案
  9. 白话编程辅助工具perl2exe(Reship)
  10. Android源码设计模式解析与实战(四)
  11. Kotlin实现LeetCode算法题之String to Integer (atoi)
  12. 2022.9.19 论文笔记
  13. 密码安全攻防技术精讲
  14. jupyter notebook代码无法运行
  15. QT开源网站和相关资料
  16. nRF Connect SDK(NCS)-Windows开发环境搭建
  17. 关闭jupyter notebook报错
  18. Android项目从零到上线的全过程
  19. 古代平朔历法基本算法
  20. D1. Coffee and Coursework (Easy version) and D2. Coffee and Coursework (Hard Version)

热门文章

  1. 参加西安第三届数字油田高端论坛暨第二届国际学术会议
  2. luaL_dofile和luaL_loadfile的区别
  3. XML DOM学习笔记(JS)
  4. 分形之城:递归超典型例题,还没明白?手把手画给你看!
  5. 【数据结构笔记32】排序算法概述、简单排序(冒泡排序、插入排序)、逆序对
  6. C#笔记16 多线程和同步
  7. android pie华为更新,华为多款机型近期将迎来Android Pie系统更新,下列这几款肯定有你...
  8. ios assign、copy 、retain
  9. flash制作文字笔顺_教你如何给GIF动态图片加上文字
  10. [02]基于webservice权限系统