
# Spark Streaming任务一直阻塞
#### 问题
运行一个Spark Streaming任务，确认有数据输入后，发现没有任何处理的结果。打开Web界面查看Spark Job执行情况，发现如下图所示：有两个Job一直在等待运行，但一直无法成功运行。
图1Active Jobs   
![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0265793573.jpg)
继续查看已经完成的Job，发现也只有两个，说明Spark Streaming都没有触发数据计算的任务（Spark Streaming默认有两个尝试运行的Job，就是图中两个）
图2Completed Jobs   
![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0265793582.jpg)
#### 回答
经过定位发现，导致这个问题的原因是：Spark Streaming的计算核数少于Receiver的个数，导致部分Receiver启动以后，系统已经没有资源去运行计算任务，导致第一个任务一直在等待，后续任务一直在排队。从现象上看，就是如问题中的[图1]中所示，会有两个任务一直在等待。
因此，当Web出现两个任务一直在等待的情况，首先检查Spark的核数是否大于Receiver的个数。
![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
Receiver在Spark Streaming中是一个常驻的Spark Job，Receiver对于Spark是一个普通的任务，但它的生命周期和Spark Streaming任务相同，并且占用一个核的计算资源。
在调试和测试等经常使用默认配置的场景下，要时刻注意核数与Receiver个数的关系。
