《饮食男女》开头说:“人生不能像做菜,把所有的料都准备好了才下锅。”

但做大数据挖掘不一样,MapReduce 不同于人生,一定要把准备工作做好了,才能顺利运行后面的步骤。如果你的 HiveQL 代码没毛病,却一运行就出现 Fail 提示,可以看看,是不是少了下面哪项准备工作?


指定队列

set 

在 HADOOP 中,队列的组织是一切的基础,决定了队列管理和资源分配,一定要在程序开头指定一个队列,注意任务和资源的平衡。

自动化 MapJoin

set 

这是一步优化操作,自动化了 MapJoin,之后我们就不需要在 query 中再写了。MapJoin 用于小表 Join 大表的场景,在大表通过 Mapper 时,小表会被完全放入内存中,Hive 会在 map 端进行连接,因为 Hive 可以和内存中的小表进行逐一匹配,从而省略掉 reduce 过程。

任务并行

set 

参数 hive.exec.parallel 控制着同一个 sql 中是否允许并行执行,默认为 false,设置为 true 则开启任务的并行执行。并通过设置 hive.exec.parallel.thread.number 来指定同一个 sql 允许并行运行的最大线程数。

设置超时时间

set 

这里设置的是 Job 运行多久后会因超时而被 kill 掉,根据数据量而定。我目前工作中处理的数据有上亿条,维度近千,所以设置得比较大。

“健康监测”

set 

这个参数的作用是,若检测到脚本在一定时间内无响应,那么 NodeHealthCheckerService 线程会将该节点的监控状态标注为 “unhealthy”。但 Hadoop 2.x 以后,参数 mapred.healthChecker.script.timeout 的名字已经改为 mapreduce.tasktracker.healthchecker.script.timeout,虽然原名还可用,最好还是使用新的参数名。

设置容量大小

set 

Tez 是 YARN 的作业模式,hive.tez.container.size 参数可设置堆的大小,即增大内存容量。由于 D12 计算机具有 28GB 内存,因此我们常使用 10GB (10240MB) 大小的容器。

设置聚集操作执行时机

set 

若将该参数设置为 true,则会在 mapper 端先进行 group by,然后执行 merge 操作,减少 reduce 要处理的数据量,效率更高但需要更多内存。若将该参数设置为 false,则把前面的步骤放在了 reduce 阶段再进行。

设置 reduce 个数

set 

该参数用于设置 reduce 的任务个数,设置为500,即生成500个文件。根据具体数据量进行调整,使得单个 map 能处理合适的数据量。


在海量数据真正跑起来前,一般需要设置的几个参数就是以上提到的啦,具体每个参数需要设置成什么值,还要根据具体的数据量和时间、设备等条件来定,可以反复尝试进行优化。

欢迎大家关注微信公众号【数据池塘】:

mapreduce复制连接的代码_我的 Hive 为什么跑不起来/跑得慢?看看是不是少了这几行代码?...相关推荐

  1. java 怎么从性能上优化代码_月薪上万做好这一步:程序员职场中必须掌握的的Java代码性能优化技巧...

    尽量指定类.方法的final修饰符 Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化.此举大概能够使性能平均提高50%. 尽量重用对象 ...

  2. mapreduce复制连接的代码_MapReduce:在大型集群上简化数据处理(2)

    特别说明 这是一个由simviso团队所组织进行的基于mit分布式系统课程翻译的系列,由知秋带领和其他成员一起翻译的课程以及课程当中涉及的论文翻译. 由于微信排版功能有限,想要看最新版文档的小伙伴,请 ...

  3. python数据预测代码_手把手教你用Python玩转时序数据,从采样、预测到聚类丨代码...

    原标题:手把手教你用Python玩转时序数据,从采样.预测到聚类丨代码 原作 Arnaud Zinflou 郭一璞 编译 时序数据,也就是时间序列的数据. 像股票价格.每日天气.体重变化这一类,都是时 ...

  4. python听不懂_看日本电影真痛苦,本来就听不懂!还没字幕!6行代码音频转文字...

    进群:125240963   即可获取数十套PDF哦! 前面几天想看一个电影(至于什么电影就不说了),搜了半天没有中文字幕. 看日本电影再也不怕看不懂了,6行Python代码轻松实现音频转文字 这么贵 ...

  5. 小红书去水印代码_小红书无水印图片,无水印视频解析下载,小红书视频图片去水印代码实现...

    以从小红书"复制链接"出来的一个地址为例,例如: http://xhslink.com/JDk1s 下面用PHP代码来实现提取图集,具体代码如下: $userAgent = &qu ...

  6. 复制部分网页源代码到本地HTML文件,使用Python ==> pqQuery库 导入本地html文件,实现6行代码输出王者荣耀所有人物角色姓名

    前言:本次使用Google浏览器测试(不同浏览器会有些许差异,但是逻辑相通) 1.打开 英雄资料列表页-英雄介绍-王者荣耀官方网站-腾讯游戏 :https://pvp.qq.com/web201605 ...

  7. python成语游戏代码_一件有趣的事:用Python 爬了爬自己的微信朋友,有源代码。...

    原标题:一件有趣的事:用Python 爬了爬自己的微信朋友,有源代码. 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定 ...

  8. 我的 Hive 为什么跑不起来/跑得慢?看看是不是少了这几行代码?

    <饮食男女>开头说:"人生不能像做菜,把所有的料都准备好了才下锅." 但做大数据挖掘不一样,MapReduce 不同于人生,一定要把准备工作做好了,才能顺利运行后面的步 ...

  9. 知道这20个正则表达式,能让你少写1,000行代码

    2019独角兽企业重金招聘Python工程师标准>>> 正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑.熟练地掌 ...

最新文章

  1. 网络营销外包——网络营销外包专员如何帮助企业挑选网站建设类型
  2. 如何用TXT文档数据批量生成条形码
  3. Nature论文解读:深度学习助力毫秒之间识别癌细胞
  4. 复工后,看看他们都是怎么上班的!
  5. 如何成为一位黑客 ( How To Become A Hacker )
  6. 如果不需要CSS隐藏滚动条
  7. Android数据库框架-ORMLite
  8. 使用Timer实现异步调用方法
  9. Atitti opencv2.4 实现的人脸检测 attilax总结
  10. lg g3 android 5.0,LG G3 4.4和5.0系统root教程
  11. 文章原创度检测工具哪个最好用?怎么操作是最好的?
  12. 联想微型计算机m4350q升级,拆解:高度集成化的联想M4350q
  13. 看看老毛子士兵干的事情!
  14. 文件被别的程序打开无法删除怎么办?
  15. centos7搭建webpack
  16. html 触摸屏页面,HTML5触摸屏touch事件使用实例1
  17. CSS外边距与内边距
  18. Mask R-CNN论文
  19. OriginLab.OriginPro.v8.6.SR3.Cracked-EAT
  20. (附源码)ssm产品裂变管理系统 毕业设计 100953

热门文章

  1. 中科院教授:科技界已几乎沦为名利场...
  2. 颜宁谈院士增选:导师施一公让我特别受益的是:纯粹,做事情的纯粹
  3. 高校开学返校最新消息!学生票乘车时间延长至5月31日!
  4. 清华90后女博士后:攻克了世界难题,却无法让父母明白我在做什么
  5. 85后博士不到一年发10篇顶刊!共发SCI50多篇
  6. 有一种神一样的学霸,叫北大保安
  7. 图像风格迁移(Neural Style)简史
  8. linux下getrlimit与sysconf函数
  9. ARP-地址解析协议(在实践中深入理解ARP协议)
  10. 比开源快30倍的自研SQL Parser设计与实践