Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 使用Pig/Hive进行数据处理而不是直接使用java map reduce代码?_Hadoop_Mapreduce_Hive_Apache Pig - Fatal编程技术网

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

Hadoop 使用Pig/Hive进行数据处理而不是直接使用java map reduce代码?,hadoop,mapreduce,hive,apache-pig,Hadoop,Mapreduce,Hive,Apache Pig,(甚至比) 我有一个数据处理管道,通过Hadoop(我自己的自定义代码,源自Hadoop的Mapper和Reducer)用几个JavaMapReduce任务编写。这是一系列的基本操作,如连接、反转、排序和分组。我的代码很复杂,不是很通用 与使用多个UDF将所有内容迁移到Pig/Hive相比,继续这种公认的开发密集型方法的利弊是什么?哪些工作我不能执行?我是否会出现性能下降(使用100 TB的容量)?在维护代码时,我是否会失去调整和调试代码的能力?我是否能够将部分作业作为Java map redu

(甚至比)

我有一个数据处理管道,通过Hadoop(我自己的自定义代码,源自Hadoop的Mapper和Reducer)用几个JavaMapReduce任务编写。这是一系列的基本操作,如连接、反转、排序和分组。我的代码很复杂,不是很通用

与使用多个UDF将所有内容迁移到Pig/Hive相比,继续这种公认的开发密集型方法的利弊是什么?哪些工作我不能执行?我是否会出现性能下降(使用100 TB的容量)?在维护代码时,我是否会失去调整和调试代码的能力?我是否能够将部分作业作为Java map reduce进行管道化,并将它们的输入输出用于我的Pig/Hive作业?

参考:通常,Pig脚本占原生map/reduce代码的5%,编写时间约为5%。但是,查询执行本机map/reduce作业通常需要110-150%的时间。但当然,如果有一个对性能高度敏感的例程,它们仍然可以选择直接手工编写本机map/reduce函数

上述参考资料还讨论了Pig在MapReduce中开发应用程序的利弊

与任何更高级别的语言或抽象一样,Pig/Hive失去了灵活性和性能,这是以牺牲开发人员的生产力为代价的。

从2009年起,Pig的运行速度是普通MapReduce的1.5倍。预计在Hadoop之上构建的高级工具的执行速度比普通的MapReduce慢,但是,为了让MapReduce实现最佳的执行,确实需要一个编写大量样板代码的高级用户(例如二进制比较器)

我觉得有必要提及一个名为(我是该API的开发人员)的新API,该API旨在通过使许多事情更易于编码和理解(二级排序、reduce-side-join)来取代普通的Hadoop MapReduce API。Pangool没有造成性能开销(仅为其5%),并保留了原始MapRed API的所有灵活性。

(我在Twitter上研究Pig):110-150%的数字有些随意。通常,Pig会比您的代码快很多,因为它进行了大量优化。从根本上说,它将东西转换为MR,所以它不能比MR快,但直接的初学者到中级MR代码经常会输给Pig。