【问题标题】:Spark query running very slowSpark查询运行速度很慢
【发布时间】:2015-07-29 07:18:35
【问题描述】:

我在 AWS 上有一个集群,有 2 个从属服务器和 1 个主服务器。所有实例都是 m1.large 类型。我正在运行火花版本 1.4。我正在对来自红移的 400 万数据的火花性能进行基准测试。我通过 pyspark shell 触发了一个查询

    df = sqlContext.load(source="jdbc", url="connection_string", dbtable="table_name", user='user', password="pass")
    df.registerTempTable('test')
    d=sqlContext.sql("""

    select user_id from (

    select -- (i1)

        sum(total),

        user_id

    from

        (select --(i2)

            avg(total) as total,

            user_id

        from

                test

        group by

            order_id,

            user_id) as a

    group by

        user_id

    having sum(total) > 0

    ) as b
"""
)

当我执行 d.count() 时,上面的查询在 df 没有被缓存时需要 30 秒,而当df 被缓存在内存中时需要 17 秒。

我预计这些时间会接近 1-2 秒。

这些是我的火花配置:

spark.executor.memory 6154m
spark.driver.memory 3g
spark.shuffle.spill false
spark.default.parallelism 8

rest 设置为其默认值。任何人都可以看到我在这里缺少什么吗?

【问题讨论】:

  • 仅内部查询的性能如何?
  • @Geek i1 耗时 13 秒(无缓存)。
  • .cache() 只告诉 spark 在 spark 操作需要它时缓存它。第一次总是很慢。后续访问应该更快。我还注意到 EC2 上的 spark 没有激活 c3-8xlarge 上的所有内核,因为未设置 executor-cores。
  • 我在缓存方面没有任何问题,但问题是即使在缓存之后查询也不够快。缓存数据帧后需要 17 秒才能完成。
  • 如果我是你,我会检查此类查询的物理计划(使用 .explain() 打印它)并查看 Spark Web UI 以检查哪些部分花费的时间最多。您使用的表是否还有其他列?仅缓存查询所需的内容可能会有所帮助。

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


【解决方案1】:

这很正常,除了 Spark 之外,不要像 mysql 或 postgres 那样在几毫秒内运行。与 Hive、Impala 等其他大数据解决方案相比,Spark 的延迟低……您无法将其与经典数据库进行比较,Spark 不是数据被索引的数据库!

观看此视频:https://www.youtube.com/watch?v=8E0cVWKiuhk

他们清楚地将 Spark 放在这里:

您尝试过 Apache Drill 吗?我发现它更快一些(我将它用于小型 HDFS JSON 文件,2/3Gb,比用于 SQL 查询的 Spark 快得多)。

【讨论】:

    【解决方案2】:
    1. default.parallelism 设置为2
    2. --num-executor-cores 8启动火花
    3. 修改此部分

    df.registerTempTable('test') d=sqlContext.sql("""...

    df.registerTempTable('test') sqlContext.cacheTable("test") d=sqlContext.sql("""...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多