我无法在纱线群集的所有执行者之间均匀分配流媒体接收器。 我有一个带有8个执行器的纱线集群,我创建了8个流式自定义接收器,并且火花应该为每个执行器启动这些接收器。然而,这并不是一直发生的,有时所有的接收器都是在同一个执行器上启动的(这里是jira bug:https://issues.apache.org/jira/browse/SPARK-10730)。 所以我的想法是运行一个虚拟作业,获取参与该作业的执行程序,如果我获得了所有执行程序,则创建流接收器。 无论如何,我需要了解是否有办法了解哪些执行程序用于java / scala代码中的作业。
答案 0 :(得分:-1)
我相信通过访问 Spark UI 和 Spark 日志可以查看执行哪些工作的执行程序。来自官方1.5.0
文档(here):
每个SparkContext默认在端口4040上启动Web UI,显示有关应用程序的有用信息。这包括:
- 调度程序阶段和任务列表
- RDD大小和内存使用情况摘要
- 环境信息。
- 有关正在运行的执行程序的信息
在以下屏幕中,您可以看到哪些执行程序处于活动状态。如果有未使用的核心/节点,您可以通过查看实际活动并正在运行的核心/节点来检测它们。
此外,每个执行程序都会显示有关正在其上运行的任务数量的信息。