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以及何时将java用于Mapreduce?_Hadoop - Fatal编程技术网

Hadoop 何时使用Pig以及何时将java用于Mapreduce?

Hadoop 何时使用Pig以及何时将java用于Mapreduce?,hadoop,Hadoop,据我所知,我们可以将pig用于Mapreduce。java也可以用于Mapreduce。您能告诉我在什么情况下使用哪一种吗?如果您可以在pig(或Hive)中使用,请在pig(或Hive)中使用 否则,请在JavaMapReduce中执行此操作 猪的好处: 像CSV这样的结构化数据很容易加载和使用 没有Java那么慢 不容易出现Java级错误 易于阅读和书写 无需编译:更易于维护,更易于部署 有几件事你可能认为一开始你不能在Pig中完成,你想用Java来完成,但一旦你对Pig有了更多的了

据我所知,我们可以将pig用于Mapreduce。java也可以用于Mapreduce。您能告诉我在什么情况下使用哪一种吗?

如果您可以在pig(或Hive)中使用,请在pig(或Hive)中使用

否则,请在JavaMapReduce中执行此操作


猪的好处:

  • 像CSV这样的结构化数据很容易加载和使用
  • 没有Java那么慢
  • 不容易出现Java级错误
  • 易于阅读和书写
  • 无需编译:更易于维护,更易于部署

有几件事你可能认为一开始你不能在Pig中完成,你想用Java来完成,但一旦你对Pig有了更多的了解,你就可以在Pig中完成:

  • 。您将编写一些Java来解析复杂的数据格式,那么为什么不在Pig加载程序中执行呢
  • 嵌套可以很好地建模分层数据结构,但您可能需要编写大量的UDF
  • 你可以。这让你可以在猪身上做艰难的操作,但在其他地方更容易
这里有一些,但你明白了。Pig是非常可定制的,一般来说,您将编写更少的Java


基本的东西很简单。我们可以做一些事情,如分层数据结构和定制加载,只需一点努力。好的,剩下什么

  • 使用分区器执行MapReduce不适用的操作
  • 非常糟糕的数据格式或完全非结构化的数据(视频、音频、原始人类可读文本)
  • 在DistributedCache中执行复杂的操作(基本操作可以通过

希望其他人能在评论中添加他们在Pig中无法完成的事情。

我想这可能是一个很长的答案或分析,所以我把它留给有更多时间的人。。。您可能还希望在比较中包括蜂巢和烫伤。它更像是简单性和编写它所需的时间与作业的控制和可测试性之间的平衡。IMO按照简单到可控制/可测试的顺序,它变成了蜂箱--猪--烫伤--java。