当前位置:  开发笔记 > 开放平台 > 正文

使用Pig/Hive进行数据处理而不是直接使用java map减少代码?

如何解决《使用Pig/Hive进行数据处理而不是直接使用javamap减少代码?》经验,为你挑选了1个好方法。

(甚至比Pig和Hive之间的差异更基本?为什么两者都有?)

我有一个数据处理管道,通过Hadoop 编写了几个Java map-reduce任务(我自己的自定义代码,源自Hadoop的Mapper和Reducer).它是一系列基本操作,如join,inverse,sort和group by.我的代码涉及并且不是很通用.

继续这种公认的开发密集型方法与使用多个UDF将所有内容迁移到Pig/Hive有什么优缺点?哪些工作不能执行?我会遭受性能下降(使用100s TB)吗?在维护时,我是否会失去调整和调试代码的能力?我可以将部分作业作为Java map-reduce进行管道化,并将其输入输出与Pig/Hive作业一起使用吗?



1> Praveen Srip..:

参考Twitter:通常情况下,Pig脚本占本机地图/减少代码的5%,约占5%的时间.但是,查询通常需要110-150%的时间来执行本机映射/减少作业所需的时间.但是,当然,如果有一个高性能敏感的例程,他们仍然可以直接手动编写本机map/reduce函数.

上面的参考文献还讨论了Pig在MapReduce中开发应用程序的优缺点.

与任何更高级别的语言或抽象一样,Pig/Hive会以牺牲开发人员的工作效率为代价来降低灵活性和性能.


(我在Twitter工作的猪):110-150%的数字有点武断.通常,Pig会比你的代码更快,因为它做了很多优化.从根本上说,它将事物转换为MR,因此它不能比MR更快.但是直截了当的初学者到中级的MR代码经常会输给Pig.
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有