【发布时间】:2016-02-17 23:35:37
【问题描述】:
我们目前使用的是 Spark 1.5.2,并且有一个包含三个节点(1 个主节点,2 个工作节点)的独立集群,我们正在集群上运行流式作业。流作业本身没有问题,我们通过日志和性能指标(例如查看 CPU 使用情况、磁盘使用情况、内存使用情况)验证了两个工作人员都在使用。
我们的流式传输作业当前从 Cassandra 集群读取数据并将该信息存储到 Elasticsearch。需要注意的另一件事是,流式作业只有一个接收器,这意味着只有一个工作人员将从 Cassandra 读取数据(但两个工作人员都将写入 Elasticsearch)。
当我们从 Spark Web UI 进入应用程序视图(通过单击主节点的正在运行的应用程序表中列出的流式作业应用程序 ID)时,会出现一个 Executor Summary 表,其中有几列显示工作人员,内核、内存、状态和日志。
对于我们的流式作业,它通常如下所示:
注意这里显示的状态都是RUNNING。
当我们重新启动流式作业时,其中一名工作人员的状态之一有时会处于 LOADING 状态,如下所示:
一旦显示处于 LOADING 状态,它将保持在该状态(即最终不会变为运行状态)。
那么问题是 Spark Web UI 中显示的 RUNNING 和 LOADING 状态有什么区别?
就功能而言,这两个流媒体作业似乎都在做我们期望它做的事情。换句话说,无论状态如何,Spark 工作人员似乎都在工作,并且似乎没有任何明显的问题(反正不在日志中)。
【问题讨论】:
标签: apache-spark spark-streaming