問題タブ [apache-nifi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - nifi が無効なコントローラー サービスの残りの API 呼び出しに失敗しました
私はspring 4.2.0
and を使用してnifi 0.6.0
います。RestTemplate を使用すると、無効化された nifi のコントローラー サービスに対して restful api が呼び出されます。
次のエラーログを取得しました:
nifi ログ
2016-04-11 16:32:53,982 DEBUG [NiFi Web Server-90 - /nifi-api/controller/controller-services/node/5d99ca33-78f6-465e-9ab1-8c7cb5650025] o.a.n.w.StandardOptimisticLockingManager Revision check failed because current revision is [23, 5d4fe4d3-2f32-4a75-899a-458e8e62efce] but supplied revision is [null, 15976fcf-e01b-483c-994b-df812293d7ad]
......
2016-04-11 16:32:53,990 DEBUG [NiFi Web Server-90 - /nifi-api/controller/controller-services/node/5d99ca33-78f6-465e-9ab1-8c7cb5650025] c.s.j.spi.container.ContainerResponse Mapped exception to response: 409 (Conflict)
org.apache.nifi.web.InvalidRevisionException: This NiFi instance has been updated by 'anonymous'. Please refresh to synchronize the view.
at org.apache.nifi.web.StandardOptimisticLockingManager.checkRevision(StandardOptimisticLockingManager.java:62) ~[nifi-web-optimistic-locking-0.6.0.jar:0.6.0]
at org.apache.nifi.web.StandardOptimisticLockingManager.configureFlow(StandardOptimisticLockingManager.java:80) ~[nifi-web-optimistic-locking-0.6.0.jar:0.6.0]
at org.apache.nifi.web.StandardNiFiServiceFacade.updateControllerService(StandardNiFiServiceFacade.java:1714) ~[classes/:0.6.0]
at org.apache.nifi.web.StandardNiFiServiceFacade$$FastClassBySpringCGLIB$$358780e0.invoke() ~[classes/:0.6.0]
ブラウザ呼び出しが無効になっている API のスクリーンショット
エラーを修正する方法はありますか?
@Matt Gilman私はdisable
2つの方法で機能を変更しました:
しかし、nifiで同じエラーが発生しました:
解決した
私はブラウザの無効化リクエストを比較し、APIドキュメントを再度読んだところ、コントローラーサービスを無効にするには次の手順に従う必要があることがわかりました。
- 停止コントローラー サービス参照
- コントローラー サービス参照を無効にする
- コントローラ サービスの無効状態を設定する
今、私の新しい無効化機能は
postgis - nifi 6.0 で ExecuteSQL プロセッサの結果を Json コンテンツとマージする
地理座標点を含む json オブジェクトを扱っています。ポリゴン マッチングのポイントを評価するために、ローカルにある postgis サーバーに対してこれらのポイントを実行したいと思います。
既存のプロセッサでこれを行うことを望んでいます-「EvaluateJsonPath」プロセッサを使用して緯度/経度座標を属性に正常に抽出し、「ExecuteSQL」を使用してローカル postgis データストアにクエリを正常に発行しています。これにより、avro 応答が残り、"ConvertAvroToJSON" プロセッサを使用して JSON に変換できます。
クエリの結果を元の JSON オブジェクトとマージする方法に概念的な問題があります。現状では、同じフラグメント ID を持つ 2 つのフロー ファイルがあり、理論的には「mergecontent」でマージできますが、次のようになります。
SQLクエリの結果を元のjson構造にマージするための提案された戦略はありますか?私の結果は代わりに次のようになります:
nifi 6.0、postgres 9.5.2、および postgis 2.2.1 を実行しています。
https://community.hortonworks.com/questions/22090/issue-merging-content-in-nifi.htmlで replaceText プロセッサを使用することへの言及を見ましたが、これは属性からコンテンツを本体にマージしているようですコンテンツ。元のコンテンツと SQL 応答のコンテンツ、またはコンテンツなしで SQL 応答から抽出された属性のいずれかをマージするポイントがありません。
編集:
次の Groovy スクリプトは、必要なことを実行しているように見えます。私はグルーヴィーなコーダーではないので、改善は大歓迎です。
apache-nifi - NIFI - 開発からテスト、本番まで
フローが開発、テスト、および本番段階を経て進行するにつれて、プロセッサー構成を更新するための最良のアプローチを見つけようと奮闘しています。フローが特定の環境にデプロイされるときに、プロセッサ内のホスト、ポートなどの参照を操作することは避けたいと考えています。少なくとも私たちの場合は、ElasticSearch や PostGres などのためにさまざまなホストを用意します。他の人はこれをどのように処理しましたか?
私たちが考慮したこと:
- 式言語を使用して、プロパティ ファイルから構成をプルします。これは、EL が有効になっているプロセッサには最適ですが、そうでないプロセッサには当てはまりません。
- フロー xml を操作し、ホスト、ポートなどの構成を上書きします。xml が誤って破損することと、これが NIFI バージョン間でどの程度移植性があるかが少し心配です。
ヒントや提案をいただければ幸いです。検討を怠ってきた明らかな解決策がある可能性は十分にあります。
編集:
Byran が提案したテンプレートを使用します。それらは間違いなく私たちのニーズを満たし、多数の環境にわたって構成を制御するための良い方法であるように思われます.
hadoop - Apache NiFi/Hive - マージされたツイートを HDFS に保存し、ハイブにテーブルを作成する
次のワークフローを作成したい:
1.GetTwitter プロセッサを使用してツイートをフェッチします。
MergeContent プロセスを使用して、ツイートをより大きなファイルにマージします。
マージされたファイルを HDFS に保存します。
- Hadoop/Hive 側では、これらのツイートに基づいて外部テーブルを作成したいと考えています。
これを行う方法の例がありますが、私が欠けているのは、MergeContent プロセッサを構成する方法です。ヘッダー、フッター、区切り記号として何を設定するかです。そして、マージされたツイートを行に分割するために、ハイブ側でセパレーターとして使用するもの。私が自分自身を明確に説明したことを願っています。
前もって感謝します。
regex - ReplaceText プロセッサ構成
私は正規表現が得意ではありません。次のことを行うための適切な構成は何でしょうか。
- テキストからバックスラッシュを削除します。
- と置換する {
- と置換する }
基本的に、エスケープされた JSON を消去する必要があります。
以前のように:
後:
前もって感謝します。
apache-nifi - Apache NiFi と StreamSet の違い
私はクラスプロジェクトを計画しており、システム間のデータフローを自動化または設定できるいくつかのテクノロジーを試していましたが、Apache NiFi と StreamSets (私の知る限り) のいくつかがあることがわかりました。私が理解できなかったのは、それらとそれらを使用できるユースケースの違いですか? 私はこれに慣れていないので、誰かが私に少し説明していただければ幸いです。ありがとう
oracle - Oracle データベースで結合を使用した Apache NiFi "ExecuteSQL" クエリが機能しない
非常に簡単な SQL クエリを使用して、Oracle データベース内の 2 つのテーブルの結合されたコンテンツを取得しようとしています。
クエリは、Oracle SQL Developer を使用して実行されます。
NiFi で ojdbc7.jar ドライバーを使用しています。結合を含まない単純な SQL クエリは、「ExecuteSQL」で動作します。
他の SQL ステートメント (INNER JOIN など) も試しました。クエリは、Oracle SQL Developer を使用すると期待どおりに機能しますが、NiFi では機能しません。誰かが私を助けることができますか?
NiFi のエラー メッセージ:
2016-05-03 11:30:02,413 ERROR [Timer-Driven Process Thread-6] oanifi.processors.standard.ExecuteSQL org.apache.nifi.processor.exception.ProcessException: java.sql.SQLFeatureNotSupportedException: 組織でサポートされていない機能。 apache.nifi.processors.standard.ExecuteSQL$1.process(ExecuteSQL.java:160) ~[nifi-standard-processors-0.6.1.jar:0.6.1] org.apache.nifi.controller.repository.StandardProcessSession. write(StandardProcessSession.java:1954) ~[na:na] at org.apache.nifi.processors.standard.ExecuteSQL.onTrigger(ExecuteSQL.java:152) ~[nifi-standard-processors-0.6.1.jar:0.6 .1] org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) で [nifi-api-0.6.1.jar:0.6.1] org.apache.nifi.controller.StandardProcessorNode.onTrigger( StandardProcessorNode.java:1059) [nifi-framework-core-0.6.1.jar:0.6.1] org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:136) [nifi-framework-core-0.6.1.jar:0.6.1] at org.apache.nifi.controller.tasks .ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47) [nifi-framework-core-0.6.1.jar:0.6.1] at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:123) [nifi-framework-core-0.6.1.jar:0.6.1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_60] at java.util.concurrent. FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_60] で java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_60] で java.util.concurrent .ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_60] で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_60] で java.util.concurrent. ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_60] java.lang.Thread.run(Thread.java:745) [na:1.7.0_60] 原因: java.sql.SQLFeatureNotSupportedException: oracle.jdbc.driver.ClobAccessor.getBytes(ClobAccessor.java:534) でサポートされていない機能 ~[na:na] at oracle.jdbc.driver.GeneratedStatement.getBytes(GeneratedStatement.java:151) ~[na:na] at oracle .jdbc.driver.GeneratedScrollableResultSet.getBytes(GeneratedScrollableResultSet.java:326) ~[na:na] at org.apache.commons.dbcp.DelegatingResultSet.getBytes(DelegatingResultSet.java:241) ~[na:na] at org.apache .commons.dbcp.DelegatingResultSet.getBytes(DelegatingResultSet.java:241) ~[na:na] at org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream(JdbcCommon.java:105) ~[nifi-standard-processors -0.6.1.jar:0.6.1] at org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream(JdbcCommon.java:72) ~[nifi-standard-processors-0.6.1.jar:0.6. 1] at org.apache.nifi.processors.standard.ExecuteSQL$1.process(ExecuteSQL.java:158) ~[nifi-standard-processors-0.6.1.jar:0.6.1] ... 14個の共通フレームを省略72) ~[nifi-standard-processors-0.6.1.jar:0.6.1] at org.apache.nifi.processors.standard.ExecuteSQL$1.process(ExecuteSQL.java:158) ~[nifi-standard-processors- 0.6.1.jar:0.6.1] ... 14個の共通フレームを省略72) ~[nifi-standard-processors-0.6.1.jar:0.6.1] at org.apache.nifi.processors.standard.ExecuteSQL$1.process(ExecuteSQL.java:158) ~[nifi-standard-processors- 0.6.1.jar:0.6.1] ... 14個の共通フレームを省略