apache-spark - 在单个 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 机器上运行这么多进程可以吗?谢谢,
解决方案
推荐阅读
- php - PHP - foreach 增量超过 1
- java - 为所有用户 Firebase 更新 UI
- scala - 在 Scala 中使用 Twitter Futures 进行异步日志记录
- sql-server - 来自 SQL Server 存储过程的 HTML 报告
- c# - 如何在 xamarin 中启动更新的活动
- mysql - mysql UPDATE 语句 where pricelist.import_date = ( SELECT max(pricelist.import_date) )
- java - Java10中的HttpRequest.BodyProcessor在哪里
- android - 在 React Native 中不能使用新导入的组件?
- r - rasterVis::levelplot 标题高度
- python - 使用 applescript 将消息发送到新的联系人/线程