Spark集群中Worker节点上对象的早期初始化
问题描述:
我在独立集群中使用Drools with Spark。我想在启动时的所有工作节点上加载知识会话,即在地图缩小任务之前。我试过从驱动程序传递Statefull会话到从节点,但它不工作。由于这个原因,我的第一份工作大约需要900毫秒才能将规则添加到知识生成器中。Spark集群中Worker节点上对象的早期初始化
答
创建驾驶员KnowledgeSession的最后一个变量
final StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
而且可以传递ksession
对象所有工作节点,
lines.foreachRDD(new Function<JavaRDD<String>, Void>() {
public Void call(JavaRDD<String> rdd) throws Exception {
List<String> facts = rdd.collect();
//Apply rules on facts here
ksession.execute(facts);
return null;
}
});
欢迎SO。请阅读如何创建[mcve]。 – zero323