【问题标题】:How to enable Tungsten optimization in Spark 2?如何在 Spark 2 中启用 Tungsten 优化?
【发布时间】:2017-09-16 05:10:02
【问题描述】:

我刚刚构建了支持 Hive 的 Spark 2,并将其部署到使用 Hortonworks 2.3.4 的集群中。但是我发现这个 Spark 2.0.3 比 HDP 2.3 附带的标准 spark 1.5.3 慢

当我检查explain 时,我的 Spark 2.0.3 似乎没有使用钨。我是否需要创建特殊版本才能启用 Tungsten?

Spark 1.5.3 解释

== Physical Plan ==
TungstenAggregate(key=[id#2], functions=[], output=[id#2])
TungstenExchange hashpartitioning(id#2)
TungstenAggregate(key=[id#2], functions=[], output=[id#2])
HiveTableScan [id#2], (MetastoreRelation default, testing, None)

火花 2.0.3

== Physical Plan ==
*HashAggregate(keys=[id#2481], functions=[])
  +- Exchange hashpartitioning(id#2481, 72)
  +- *HashAggregate(keys=[id#2481], functions=[])
  +- HiveTableScan [id#2481], MetastoreRelation default, testing

【问题讨论】:

  • "但是我发现这个 Spark 2.0.3 比 HDP 2.3 附带的标准 spark 1.5.3 慢" 你是怎么找到的? explain 是您用来检查 Tungsten 是否使用/启用的唯一方法吗?
  • 如果没有任何关于你在做什么的信息,几乎不可能提供帮助。

标签: apache-spark pyspark apache-spark-sql apache-spark-2.0


【解决方案1】:

方法前的星号表示 WholeStageCodeGen 用于这些任务。这是 Spark2 对原始 Tungsten 优化的演变。 如果您看到星号,则表示正在使用 Spark2 最优化的代码。 如果这比以前运行(显着)慢,我会假设您的两个测试环境之间存在配置差异。

【讨论】:

  • 谢谢你。看起来很奇怪,我会仔细检查每个设置。好像是一样的。
【解决方案2】:

【讨论】:

  • 好的,所以两者都是相同的东西,只是名称不同。谢谢
【解决方案3】:

我认为它是默认启用的,但您可以设置spark.sql.tungsten.enabled=true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2012-03-08
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多