【发布时间】:2015-12-06 20:05:44
【问题描述】:
我怀疑在哪些情况下选择 MapReduce 而不是 hive 或 pig。
我知道是什么时候用的
- 我们需要对输入数据进行深度过滤。
- 处理非结构化数据。
- 使用图表。 …… 但是有没有什么地方我们不能使用 hive、pig 或者我们可以使用 MapReduce 更好地工作并且它在实际项目中使用率很高
【问题讨论】:
标签: hadoop mapreduce hive apache-pig
我怀疑在哪些情况下选择 MapReduce 而不是 hive 或 pig。
我知道是什么时候用的
【问题讨论】:
标签: hadoop mapreduce hive apache-pig
Hive 和 Pig 是通用解决方案,它们在处理数据时会产生开销。大多数情况下它可以忽略不计,但在某些情况下它可能相当大。
如果需要join的表比较多,使用Hive和Pig尽量应用泛型解决方案,如果在了解数据后使用map reduce,可以想出更优化的解决方案。
但是 map reduce 应该被视为内核。如果您的解决方案可以在其他地方重用,最好使用 map reduce 开发它并与 Hive/Pig/Sqoop 集成。
Pig 可用于处理非结构化数据。在处理数据时,它将比 Hive 提供更大的灵活性。
【讨论】:
如今,Bare MapReduce 的编写频率并不高。更高级别的抽象(例如您提到的两个)更流行且足以满足查询工作负载。
即使在 HiveQL 过于严格的情况下,人们也可能会为低级批处理作业或越来越流行的 Spark 寻找替代方案,例如 Cascading 或 Scalding。
使用这些高级抽象的主要动机是因为大多数应用程序需要一系列 map 和 reduce 阶段,MapReduce API 让您自己弄清楚如何在任务之间序列化数据。
【讨论】: