【问题标题】:Spark-sql CLI use only 1 executor when running querySpark-sql CLI 在运行查询时仅使用 1 个执行程序
【发布时间】:2015-01-22 03:10:44
【问题描述】:

我将使用 spark-sql cli 替换 hive cli shell,并按照命令运行 spark-sql cli,(我们在 yarn Hadoop 集群上使用,hive-site.xml 已经复制到/conf)

.> 火花-sql 然后shell打开,工作正常,

然后我执行类似的查询,

./spark-sql>select devicetype, count(*) from mytable group by devicetype;

命令执行成功,结果正确。但我注意到性能很慢。

从 Spark 作业 ui http://myhost:4040,我注意到只有 1 个 Executor 标记为已使用,所以这可能是原因。

我尝试修改spark-sql脚本并在exec命令中添加-num-executors 500,但没有帮助。

所以任何人都可以帮助解释为什么?

谢谢。

【问题讨论】:

    标签: apache-spark apache-spark-sql


    【解决方案1】:

    参考文档:http://spark.apache.org/docs/latest/sql-programming-guide.html

    spark-sql 是一个只能在本地模式下工作的 SQL CLI 工具,这就是为什么你只能看到一个执行器

    如果您想拥有 SQL 的集群版本,您应该启动 thriftserver 并使用 beeline 工具(与 Spark 一起提供)通过 JDBC 连接到它。您可以在官方文档http://spark.apache.org/docs/latest/sql-programming-guide.html

    Running the Thrift JDBC/ODBC server一章中找到描述

    开始:

    export HIVE_SERVER2_THRIFT_PORT=<listening-port>
    export HIVE_SERVER2_THRIFT_BIND_HOST=<listening-host>
    ./sbin/start-thriftserver.sh \
      --master <master-uri> \
      ...
    

    连接:

    ./bin/beeline
    beeline> !connect jdbc:hive2://<listening-host>:<listening-port>
    

    【讨论】:

    • 非常感谢您的回答。我尝试看到直线使用 M/R 作业来运行 sql 而不是 spark 作业。我想要的是使用火花来运行这项工作。所以目前没有办法做到这一点?
    • 首先,你确定你已经启动了thrift server来使用Spark吗? start-thriftserver.sh 应该位于 Spark 目录中。其次,你确定你在beeline中指定了正确的端口并且没有连接到Hive吗?可以肯定的是,如果 Hive thriftserver 在同一台机器上运行,我建议您停止它
    • 我们的用户不愿意迁移到使用beeline,他们以前使用hive查询,因​​为spark-sql很好兼容hive,所以我不得不回到spark-sql。我看到当输入 spark-sql --help 时,它说有像 --num-executors 这样的参数,因为它只能在本地模式下工作,为什么它有这个但不能工作?
    • 你没有抓住重点。 “Spark-sql”工具仅用于调试目的,不用于生产用途。使用 Spark Thrift 服务器,您可以启动类似于 DBMS 引擎的东西 - Spark + JDBC 接口的集群。之后,您的用户可以使用任何工具连接到它(例如 Squirrel),您没有义务使用 Beeline。他们可以在那里直接使用 HiveQL
    • 其实用户可以添加 --master yarn 来启动 yarn 客户端模式
    【解决方案2】:

    直线 \> !connect jdbc:hive2://localhost:10002/default;transportMode=http;httpPath=cliservice

    10002 是我的 spark thrift 服务器端口。

    把它改成你的。 您可以从您的 thrift 日志中找到您的 thrift 端口。

    【讨论】:

      猜你喜欢
      • 2017-01-28
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 2018-10-05
      相关资源
      最近更新 更多