Nifi 0.4.1 バージョンを使用しています。CSV を avro 形式に変換するカスタム コードを作成しています。クラスファイルを作成し、narファイルを生成できました。nar ファイルを lib ディレクトリに配置し、nifi サーバーを再起動しました。
クラス ファイルにエラーや警告はありません。
プロセッサを nifi 作業領域にドラッグすると、csv を avro に変換するために作成されたクラスが表示されません。
どんな助けでも感謝..
ありがとう、
Nifi 0.4.1 バージョンを使用しています。CSV を avro 形式に変換するカスタム コードを作成しています。クラスファイルを作成し、narファイルを生成できました。nar ファイルを lib ディレクトリに配置し、nifi サーバーを再起動しました。
クラス ファイルにエラーや警告はありません。
プロセッサを nifi 作業領域にドラッグすると、csv を avro に変換するために作成されたクラスが表示されません。
どんな助けでも感謝..
ありがとう、
プロセッサの問題を診断するために、いくつかのことを確認できます。
すでにいくつか確認されているようですが、すべて確認してください。
プロセッサーは、Java コードと同じ nar ファイル内のサービス構成ファイルで参照する必要があります。ファイルには という名前が付けられorg.apache.nifi.processor.Processor
、Processor 実装の行ごとに 1 つの完全修飾クラス名が含まれます。このnifi-solr-processors のプロバイダー設定のような例を見ると役に立ちます。
org.apache.nifi.processors.solr.PutSolrContentStream
org.apache.nifi.processors.solr.GetSolr
org.apache.nifi.processor.Processor
プロセッサ クラスが public、implements 、inherited from org.apache.nifi.processor.AbstractProcessor
、または別の Processor 実装であることを確認してください。完全修飾クラス名が上記のプロバイダー構成ファイルと一致していることを確認する必要があります。
public abstract class SolrProcessor extends AbstractProcessor {
...
public class GetSolr extends SolrProcessor {
...
public class PutSolrContentStream extends SolrProcessor {
...
lib
ディレクトリ内の NARnar ファイルは、NiFi インストールの lib ディレクトリに配置する必要があります。セットアップで重要な場合は、NiFi ユーザーにアクセス許可があることを確認してください。あなたはすでにこれをチェックしたようですね。
NiFi を起動したら、 を参照してlogs/nifi-app.log
ください。ExtensionManager は、見つかって lib ディレクトリからロードされたすべての拡張機能のリストを出力します。これは次のようになります (長さは編集されています)。
org.apache.nifi.nar.ExtensionManager Extension Type Mapping to Classloader:
=== ControllerService type || Classloader ===
org.apache.nifi.processors.aws.credentials.provider.service.AWSCredentialsProviderControllerService || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-aws-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.distributed.cache.server.DistributedSetCacheServer || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-distributed-cache-services-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.distributed.cache.client.DistributedSetCacheClientService || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-distributed-cache-services-nar-0.6.0-SNAPSHOT.nar-unpacked]
...
=== End ControllerService types ===
=== Processor type || Classloader ===
org.apache.nifi.processors.standard.GetHTTP || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-standard-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.processors.script.ExecuteScript || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-scripting-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.processors.aws.s3.DeleteS3Object || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-aws-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.processors.standard.ExecuteSQL || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-standard-nar-0.6.0-SNAPSHOT.nar-unpacked]
org.apache.nifi.processors.mongodb.GetMongo || org.apache.nifi.nar.NarClassLoader[.\work\nar\extensions\nifi-mongodb-nar-0.6.0-SNAPSHOT.nar-unpacked]
...
プロセッサ、コントローラ サービス、またはレポート タスクがこのリストに表示されるようにします。
見つかってロードされた場合、コードの実行時に例外がスローされる場合もあります。これは にも表示されnifi-app.log
ます。たとえば、プロバイダー構成ファイルに間違ったクラス名を入力すると、次の「プロバイダーが見つかりません」というエラーが発生します。
java.util.ServiceConfigurationError: org.apache.nifi.processor.Processor: Provider org.apache.nifi.processors.test.TestProcessor not found
at java.util.ServiceLoader.fail(ServiceLoader.java:239) ~[na:1.8.0_65]
at java.util.ServiceLoader.access$300(ServiceLoader.java:185) ~[na:1.8.0_65]
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372) ~[na:1.8.0_65]
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) ~[na:1.8.0_65]
at java.util.ServiceLoader$1.next(ServiceLoader.java:480) ~[na:1.8.0_65]
at org.apache.nifi.nar.ExtensionManager.loadExtensions(ExtensionManager.java:107) ~[nifi-nar-utils-0.6.0-SNAPSHOT.jar:0.6.0-SNAPSHOT]
at org.apache.nifi.nar.ExtensionManager.discoverExtensions(ExtensionManager.java:88) ~[nifi-nar-utils-0.6.0-SNAPSHOT.jar:0.6.0-SNAPSHOT]
at org.apache.nifi.NiFi.<init>(NiFi.java:120) ~[nifi-runtime-0.6.0-SNAPSHOT.jar:0.6.0-SNAPSHOT]
at org.apache.nifi.NiFi.main(NiFi.java:227) ~[nifi-runtime-0.6.0-SNAPSHOT.jar:0.6.0-SNAPSHOT]