我怀疑在哪种情况下,选择MapReduce而不是蜂巢或猪。
我知道它是在
时使用的答案 0 :(得分:1)
Hive和Pig是通用解决方案,在处理数据时会产生开销。大多数情况可以忽略不计,但在某些情况下可能会相当大。
如果有许多表需要连接,使用Hive和Pig尝试应用通用解决方案,如果在理解数据后使用map reduce,则可以提出更优化的解决方案。
但是map reduce应该被视为内核。如果您的解决方案可以在其他地方重复使用,那么最好使用map reduce开发它并与Hive / Pig / Sqoop集成。
Pig可用于处理非结构化数据。在处理数据时,它将比Hive提供更多的灵活性。
答案 1 :(得分:0)
如今,Bare MapReduce并不常用。更高级别的抽象(例如您提到的两个)更受欢迎且足以用于查询工作负载。
即使在HiveQL限制性太强的情况下,人们也可能会寻找替代方案,例如级联或Scalding等低级批处理作业或更受欢迎的Spark。
使用这些高级抽象的主要动机是因为大多数应用程序需要一系列映射和减少阶段,MapReduce API会让您自己决定如何在任务之间序列化数据。