As per my knowledge,we can use pig for Mapreduce.And also java can be used for it.Can you please explain me in what scenarios which one to be used?
问问题
1210 次
1 回答
3
如果您可以在 Pig(或 Hive)中执行,请在 Pig(或 Hive)中执行。
否则,请在 Java MapReduce 中执行此操作。
猪的好处:
- 像 CSV 这样的结构化数据真的很容易加载和使用
- 不比Java慢多少
- 不易出现 Java 级错误
- 更容易阅读和写作
- 无需编译:更易于维护,更易于部署
有一些事情你可能一开始认为你不能在 Pig 中做并且想要使用 Java 来做,但是一旦你对它有了更多的了解,你就可以在 Pig 中做:
- 您可以用 Java 编写用户定义的加载器。无论如何,您都将编写一些 Java 来解析这种复杂的数据格式,那么为什么不在 Pig Loader 中进行呢?
- 嵌套
map
和bag
数据类型可以很好地模拟分层数据结构,但您可能必须编写大量 UDF。 - 您可以在 Pig 中使用 Java MapReduce。这使您可以在 Pig 中进行艰苦的操作,而在其他地方进行更简单的操作。
这里有一些,但你明白了。Pig 是非常可定制的,通常您最终会编写更少的 Java。
基本的东西很容易。我们可以做一些事情,比如分层数据结构和自定义加载。好的,那还剩下什么?
- 分区器的特殊用途来做 MapReduce 不打算做的事情。
- 非常讨厌的数据格式或完全非结构化的数据(视频、音频、原始人类可读文本)
- 在 DistributedCache 中做复杂的操作(基本的事情可以用
JOIN
andUSING 'replicated'
来完成)
希望其他人可以在评论中添加他们在 Pig 中无法做到的事情。
于 2012-12-27T14:11:13.960 回答