
# Spark Streaming应用运行过程中重启Kafka，Web UI界面部分batch time对应Input Size为0 records
#### 问题
在Spark Streaming应用执行过程中重启Kafka时，应用无法从Kafka获取topic offset，从而导致生成Job失败。如[图1]所示，其中2017/05/11 10:57:00\~2017/05/11 10:58:00为Kafka重启时间段。2017/05/11 10:58:00重启成功后对应的"Input Size"的值显示为"0 records"。
图1Web UI界面部分batch time对应Input Size为0 records   
![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0265793583.png)
#### 回答
Kafka重启成功后应用会按照batch时间把2017/05/11 10:57:00\~2017/05/11 10:58:00缺失的RDD补上（如[图2]所示），尽管UI界面上显示读取的数据个数为"0"，但实际上这部分数据在补的RDD中进行了处理，因此，不存在数据丢失。
Kafka重启时间段的数据处理机制如下。
Spark Streaming应用使用了state函数（例如：updateStateByKey），在Kafka重启成功后，Spark Streaming应用生成2017/05/11 10:58:00 batch任务时，会按照batch时间把2017/05/11 10:57:00\~2017/05/11 10:58:00缺失的RDD补上（Kafka重启前Kafka上未读取完的数据，属于2017/05/11 10:57:00之前的batch），如[图2]所示。
图2重启时间段缺失数据处理机制   
![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0265793584.png)
