代码之家  ›  专栏  ›  技术社区  ›  Bhanuchander Udhayakumar

为什么spark sql的cpu利用率高于hive?

  •  0
  • Bhanuchander Udhayakumar  · 技术社区  · 7 年前

    我在Hive和Spark SQL中执行相同的查询。我们知道Spark比hive快,所以我得到了预期的响应时间。

    但当我们考虑CPU利用率时,

    • Spark process(火花加工)采用上述技术>300%
    • 而蜂箱的使用率接近150%。

    这是火花和蜂巢的本质吗?

    • 还需要考虑哪些其他指标?
    • 如何正确评估两者?
    1 回复  |  直到 7 年前
        1
  •  3
  •   Alper t. Turker    7 年前

    大局

    Spark没有超能力。与MapReduce相比,it的优势在于它更倾向于快速的内存访问,而不是依赖分布式存储的较慢的内核外处理。所以它的核心是缩短IO等待时间。

    结论

    预计平均CPU利用率会更高。假设你想计算 N 数字与实现无关,渐近操作数将是相同的。然而,如果数据在内存中,您可以预期较低的总时间和较高的平均CPU使用率,而如果数据在磁盘上,您可以预期较高的总时间和较低的平均CPU使用率(较高的IO等待)。

    一些评论 :

    • Spark和Hive的设计目标并不相同。Spark更像是ETL/流式ETL工具、Hive数据库/数据仓库。这意味着引擎盖下的优化不同,根据工作负载的不同,性能可能会有很大差异。

      在没有上下文的情况下比较资源使用情况没有多大意义。

    • 总的来说,Spark不那么保守,更需要资源。它既反映了设计目标,也反映了硬件的发展。Spark比Spark年轻几岁,硬件成本大幅下降就足够了。