我有一个几乎实时的火花流应用,用于图像识别,其中接收器从卡夫卡获得输入帧。我有6个接收器每个执行者,5个执行者在总数,我可以看到30个活动任务每次迭代在星火UI。
我的问题是能够从kafka读取850帧/秒,但处理任务非常缓慢,这就是为什么我面临背压相关的问题。在每一批中,任务将运行少量的tensorflow模型,首先使用keras.model_loads加载模型,然后执行其他相关处理,以便从模型中获得预测。第一tensorflow模型的输出是第二tensorflow模型的输入,第二tensorflow模型也依次加载另一个模型并在其之上进行预测。最后,#2的输出是对模型#3的输入,它做同样的事情,加载模型并执行预测。最后的预测是把卡夫卡送回另一个话题。有了每个任务的流程流,处理单个任务的总延迟就会出现在10到15秒之间,这对于火花流应用程序来说是巨大的。
有人能帮我吗,我怎么才能让这个程序更快?
记住,我必须在我的程序中使用这些定制的tensorflow模型来获得最终的输出。
我脑子里有以下几点想法:
发布于 2018-03-04 17:34:32
调整火花作业是最耗时的部分,您可以试用以下选项-
https://stackoverflow.com/questions/49096436
复制相似问题