【问题标题】:When should one use MapReduce instead of Pig/Hive?什么时候应该使用 MapReduce 而不是 Pig/Hive?
【发布时间】:2014-03-23 19:02:16
【问题描述】:

我没有问题理解蜂巢和猪使程序员的工作更容易这一事实。 但是有什么限制不能使用它们而不得不依赖 map reduce 吗?

在面试中被问到这个问题时,应该如何回答?

【问题讨论】:

  • 据我了解,Pig 会吐出 map/reduce 作业。所以你的问题真的没有意义。这就像说我应该使用 C++ 还是汇编程序,如果你理解我的意思的话。我想有些任务你不能直接在 pig 中完成,你需要为其编写自定义 map/reduce 作业。再次使用 hive,这是 hadoop 上的 sql,所以同样适用。它们都在 hadoop 之上提供了一种更高级的语言,用于生成 map/reduce 作业。

标签: hadoop mapreduce hive


【解决方案1】:

正如 Chirag 指出的,使用 MR,您可以获得更多低级控制,因此更有优化潜力。我还想补充:

  1. Pig 和 Hive 更适合脚本,因此更不稳定且更难调试。在 MR 中设置适当的日志记录和监控可以实现更强大的程序。

  2. 您不必拘泥于 Java MR 来进行 MR,Scalding 和 Cascading 等框架可以大大简化流程,同时仍让您可以灵活地下降到较低级别进行优化。事实上,Scalding 基本上是你能得到的最简洁的框架,比 Pig 和 Hive 更简洁——主要是因为它在 Scala 中。

【讨论】:

    【解决方案2】:

    有了 MapReduce,我们有了更多的控制权,我们可以做一些事情来提高性能。

    还应考虑团队的技能(例如,如果他们只擅长 Java 会怎样)

    不确定是否一切都可以用 hive 或 pig 来描述(比如非结构化数据)

    下面的链接应该很有用。

    http://blog.mortardata.com/post/60274287605/pig-vs-mapreduce

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 2011-06-22
      • 2015-12-11
      • 2012-02-12
      • 2012-06-27
      • 2010-11-29
      • 2015-12-23
      • 1970-01-01
      相关资源
      最近更新 更多