2016-08-01 4 views
0

スタンドアロンクラスタでSparkでDroolsを使用しています。私は、スタートアップ時、つまりマップ削減タスクの前に、すべてのワーカーノードでナレッジセッションをロードしたいと考えています。私はドライバからスレーブノードにStatefullセッションを渡そうとしましたが、動作しません。このため、私の最初の仕事はナレッジビルダーにルールを追加するだけです。Spark Cluster内のワーカーノード上のオブジェクトの早期初期化

+1

へようこそいます。 [mcve]の作成方法をお読みください。 – zero323

答えて

0

final StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession(); 

ドライバのKnowledgeSessionの最終的な変数を作成し、そして、あなたが渡すことができ、すべてのワーカーノードにksessionオブジェクト、SO

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; 
    } 
}); 
関連する問題