java - Spark Streaming 应用程序使用所有工作线程

标签 java python apache-spark spark-streaming

我在一台机器上安装了 Apache Spark,有 3 个工作进程,每个工作进程有 2 个核心。

现在我有两个 Spark 流应用程序。第一个是用Java编写的,另一个是用Python编写的。

我需要运行这两个应用程序。

当我提交第一个应用程序时,它使用了所有工作人员。当我提交第二个应用程序时,它仍处于 WAITING 状态,因为没有可用的资源可以运行(据我所知)。

有没有办法为第一个应用程序只分配两个工作人员,以便为另一个应用程序留出空间?

最佳答案

您应该在用于创建 sparkContext 的 Spark 配置中设置以下配置属性。

spark.cores.max=<value>

为每个运行的 Spark 作业分配正确的核心数量。 请记住,如果您使用基于消费者的流模型,则需要为您声明的每个消费者保留 1 个核心 + 用于 Spark 处理的附加核心。

关于java - Spark Streaming 应用程序使用所有工作线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36688582/

相关文章:

java - Scala Spark 配置/环境故障排除

hadoop - 在 Spark 中运行并行查询

java - 用于 Java、Ruby、Python 的 HTML Agility Pack 或 HTML Screen Scraping 库?

java - Java中使用DocumentFilter扫描条码

java - 使用蓝牙在我的电脑和手机之间进行通信

python - 如何在Python中访问字典中的特定键值对?

python - 在 CentOS for Python 上升级 Sqlite3 版本时出现问题

java - 十六进制到二进制到十进制 GUI

python - [python3.6] 的 Httplib2 无效语法错误

java - Spark DataFrame - 使用 Java API 选择列列表