首页 > 解决方案 > 在单个 jvm 机器上运行 16 个进程

问题描述

我使用的是 64 GB RAM 和 24 核机器,并为 JVM 分配了 32 GB。我想运行以下进程:-

7 Kafka Brokers
3 instance of zookeeper 
Elastic Search 
Cassandra
Spark
MongoDB
Mysql
Kafka Manager
Node.js

& 在 5-6 个执行器上同时运行 4-5 个 Spark 应用程序,每个执行器 1GB。Spark作业的工作如下:-

1) 1 Spark job takes data from kafka and inserts into Cassandra
2) 1 Spark job takes data from another kafka topic and inserts into different Cassandra Table.
3) 2 Spark Job takes data from Cassandra, did some processing/analysis and writes data into their respective different cassandra table.

所以,有时我的插入应用程序会挂起。Kafka 每秒大约需要 500 条记录。运行一段时间后,它开始在队列中创建批次并且没有错误,Spark仪表板中的处理时间仍在逐渐增加。

我使用 TOP 检查 CPU 使用率,发现有一个进程“0QrmJB”占用了 1500+ CPU%,而 java 占用了 200%。

可能是什么问题?我无法分析。在单个 JVM 机器上运行这么多进程可以吗?谢谢,

标签: apache-sparkcassandraapache-kafkaspark-streaming

解决方案


推荐阅读