Sqoop导入数据--split by 和 --m(大于1)配合使用
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)配合使用相关推荐
- sqoop导入数据(保持一致性)--staging-table
sqoop导入数据(保持一致性)–staging-table sqoop import参数 –query "select XXXXX and $CONDITIONS " 按条件导入 ...
- Sqoop导入数据发生数据倾斜问题 及更好解决
Sqoop导入数据发生数据倾斜问题 及更好解决 一:问题 在生产环境中,由于数据是庞大的,且是复杂的 Sqoop抽数使用单实例报内存溢出以及抽数时间过长,决定采用sqoop的多实例并行抽数 官网:ht ...
- sqoop动态分区导入mysql,sqoop 导入数据到hive分区表(外表,内表) 指定分区 指定数据库 指定表...
sqoop 导入数据到hive 1.1.导入数据到hive分区表(内表),指定分区 创建hive分区表 –hive-database 指定数据库 –table 指定表 –hive-overwrite ...
- sqoop导入数据常见问题解决方法
sqoop导入数据常见问题解决方法 参考文章: (1)sqoop导入数据常见问题解决方法 (2)https://www.cnblogs.com/chaojibaidu/p/11071132.html ...
- sqoop导入数据遇到的参数问题 ,导出–staging-table
sqoop import参数 –query "select XXXXX and $CONDITIONS " 按条件导入 -m1 指定map 在导入的时候采用指定–columns的方 ...
- sqoop导入数据‘‘--query搭配$CONDITIONS‘‘的理解
目录 运行测试 原理理解 引言 sqoop在导入数据时,可以使用--query搭配sql来指定查询条件,并且还需在sql中添加$CONDITIONS,来实现并行运行mr的功能. 回到顶部 运行测试 测 ...
- sqoop导入数据到hive中元数据问题
简单配置了sqoop之后开始使用,之前用的时候很好用,也不记得有没有启动hivemetastore,今天用的时候没有启动,结果导入数据时,如果使用了db.tablename,就会出现找不到数据库的错, ...
- Sqoop 导入数据到hdfs和hive总结
使用帮助 Sqoop help 查看所有的sqoop的帮助 Sqoop help import 查看import命令的帮助 Eg: sqoop导入到HDFS的一个简单示例: sqoop import ...
- 大数据学习——sqoop导入数据
把数据从关系型数据库导入到hadoop 启动sqoop 导入表表数据到HDFS 下面的命令用于从MySQL数据库服务器中的emp表导入HDFS. sqoop import \ --connect jd ...
最新文章
- python入门经典例题-Python入门练习题(适合Python初学者做的练习题)
- 利用 Linux 查找重复文件
- 在游戏运营行业,Serverless 如何解决数据采集分析痛点?
- Conditional project or library reference in Visual Studio
- 频繁默认网关不可用_win10 总是默认网关不可用,怎么回事?
- C++ auto和decltype关键字
- 培养宝贝惊人记忆力10妙招哦
- div iframe 显示html,IE中iframe标签显示在DIV之上的问题解决方案
- 白话编程辅助工具perl2exe(Reship)
- Android源码设计模式解析与实战(四)
- Kotlin实现LeetCode算法题之String to Integer (atoi)
- 2022.9.19 论文笔记
- 密码安全攻防技术精讲
- jupyter notebook代码无法运行
- QT开源网站和相关资料
- nRF Connect SDK(NCS)-Windows开发环境搭建
- 关闭jupyter notebook报错
- Android项目从零到上线的全过程
- 古代平朔历法基本算法
- D1. Coffee and Coursework (Easy version) and D2. Coffee and Coursework (Hard Version)
热门文章
- 参加西安第三届数字油田高端论坛暨第二届国际学术会议
- luaL_dofile和luaL_loadfile的区别
- XML DOM学习笔记(JS)
- 分形之城:递归超典型例题,还没明白?手把手画给你看!
- 【数据结构笔记32】排序算法概述、简单排序(冒泡排序、插入排序)、逆序对
- C#笔记16 多线程和同步
- android pie华为更新,华为多款机型近期将迎来Android Pie系统更新,下列这几款肯定有你...
- ios assign、copy 、retain
- flash制作文字笔顺_教你如何给GIF动态图片加上文字
- [02]基于webservice权限系统