2016-05-04 44 views
3

ここに示すように、単純なPythonスクリプト(.pyファイルとして保存されています)を使用して、Apache NiFiに非常に基本的なExecuteScriptプロセッサの設定があります。プロセッサのプロパティでは、スクリプトエンジンをPythonに設定し、スクリプトファイルをこのスクリプトのパスに設定します。 nifi dataflowPythonでNiFi ExecuteScriptプロセッサを使用するには?

私は、ログまたはPUTFILEに出力何も表示されません。

import time 

count = 0 

while(count < 20): 
    print "The counter says: ", count 
    count = count + 1 
    time.sleep(.1) 

そして、これは私が作ったデータフロー図です。しかし、print文が\ nifi-0.6.1 \ logs \ nifi-bootstrap.logに表示されています。私の知識は現在のところ限られています。私はExecuteScriptプロセッサの使い方を知っている人、あるいは私の現在の設定よりも良い例を教えてくれる人からの回答に感謝します。

+0

私はExecuteProcessを試したのだろうかと思います。 stdoutを取得し、フローファイルとしてルーティングする必要があります:https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.standard.ExecuteProcess/index.html – andrew

答えて

10

あなたのスクリプトを考えれば、私はすべてが期待通りに機能していると思います。このスクリプトはFlowFilesを生成していないため、ExecuteScriptから他のプロセッサーに移動するものは何もなく、システムに送信されたものはbootstrap.logに取り込まれます。製造するためには

  • セッション
  • コンテキスト
  • ログ
  • REL_FAILURE
  • REL_SUCCESS

:ExecuteScriptにして実行

スクリプトは、いくつかの標準オブジェクトへのアクセスを取得しますSession.crを呼び出す必要があるFlowFiles eate()を呼び出し、結果のFlowFileを取得してREL_SUCCESSに転送します。スクリプト・プロセッサ上の情報の

最高のソースはマット・バージェスのブログで、このページにはいくつかの良い背景(Groovyのを使用しています)があります。

http://funnifi.blogspot.com/2016/02/executescript-processor-hello-world.html

をこの1つはJythonの例があります。

http://funnifi.blogspot.com/2016/03/executescript-json-to-json-revisited_14.html

関連する問題