【问题标题】:spark thrift server uses as many worker threads as much as availablespark thrift 服务器使用尽可能多的工作线程
【发布时间】:2016-01-06 18:47:30
【问题描述】:

我的环境是 spark 独立集群。我需要启用 hive thrift 服务器以允许 JDBC 访问 parquet 文件。同时,我需要在 thrift 服务器运行时启动一个 java 应用程序(即使用 HiveContext),以便在同一个 parquet 文件中加载一些数据。我已经对基于 DERBY(默认)的 Metastore 独立和由 mysql 数据库管理的 Metastore 进行了实验。我遇到的问题几乎相同。如果 thrift 服务器正在运行,则 java 应用程序获得 0 个内核,因此它正在等待 thrift 服务器关闭(然后 java 应用程序正确关闭它处理),而如果应用程序正在运行,则 thrift 服务器甚至无法启动。事实上,thrift 服务器获得尽可能多的内核,并引用尽可能多的工作线程,尽可能多的可用,不让其他应用程序获取资源。是否可以减少分配给节俭服务器的工作进程的数量?显然没有特定的配置来管理这个参数。

我不认为是 nr 的问题。核心,因为我可以添加更多核心,结果是相同的。

你能就这个话题给我建议吗? 非常感谢。

【问题讨论】:

    标签: java apache-spark thrift


    【解决方案1】:

    将这两个参数放在spark的conf文件夹下的spark-defaults.sh中,这些参数是为了允许1个应用程序的最大资源。

    spark.cores.max=max number of cores(ex. 2)
    spark.executor.memory=max memory allowed(ex. 2024M) 
    

    或者你可以尝试在 yarn 模式下运行 spark。

    【讨论】:

    • 非常感谢 Gourav,它确实有效。我在启动 thrift 服务器的命令中也添加了这个参数:--hiveconf spark.cores.max=1启动 thrift 服务器的完整命令如下: $SPARK_HOME/sbin/start-thriftserver.sh --master spark: //marco-linux-64:7077 --hiveconf spark.cores.max=1 --hiveconf hive.server2.thrift.port=10000 --hiveconf hive.server2.thrift.bind.host=marco-linux-64 - -hiveconf hive.metastore.warehouse.dir=/home/marco/SparkData --driver-class-path '/home/marco/Repository/jars/mysql-connector-java-5.1.32.jar'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2010-09-27
    • 2018-01-21
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多