ラベル NiFi の投稿を表示しています。 すべての投稿を表示
ラベル NiFi の投稿を表示しています。 すべての投稿を表示

2016年5月22日日曜日

NiFi Attributeについて

ここによるとData Provenance pageでAttributeが見れる。
こんな風に

主なAttributeはこちら 説明はここがいいのかな

absolute.path:FlowFileの絶対パス
file.creationTime:FlowFileの作成日時
file.lastAccessTime:FlowFileの最終アクセス日時
file.lastModifiedTime:FlowFileの最終更新日
file.owner:FlowFileのファイル所有者
filename:FlowFileのファイル名
path:FlowFileの相対パス(多分、でもなんか値がまだおかしいみたい)
uuid:FlowFileのuuid

2016年5月12日木曜日

Apache NiF トラブルシューティングとあるある


・GetHTTPプロセサでSocketException Invalid Argumentエラー

(おそらく)君の使ってるJavaのバージョンが古いからエラー
java version "1.7.0_55"

Java(TM) SE Runtime Environment (build 1.7.0_55-b13)

http://stackoverflow.com/questions/16191236/tomcat-startup-fails-due-to-java-net-socketexception-invalid-argument-on-mac-o

JDKをこっからダウンロードして
java version "1.8.0_91"

Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
にしたら動きました。(>>そのせいで多分某ゲームが動かなくなるのでバージョン切り替えできるようにする)
******
・REST API呼び出せない

Pathは/nifiじゃなくて/nifi-api
> The API lives at /nifi-api, so the address you are looking for would 
> be http://localhost:8080/nifi-api/controller/about

httpsが必要なものがあるようで、とりあえず呼べたのはこれ
http://localhost:8080/nifi-api/controller

NiFiプロセサ紹介 ExecuteProcessとPutFile

ExecuteProcess
OSのシステムコマンドを実行して結果をFlowFileに出力する。
処理が長くなりそうな場合はBatch Durationに時間を設定するとその時間間隔で出力を分けてくれるのでテキストの出力の場合は活用してもいいかもしれない。

PutFile
ローカルのファイルシステムにFlowFileを書き込む。
DirectoryにFlowFileを書き込むディレクトリを設定する。

sample1は上記二つのプロセサを組み合わせて/tmp/nifi_tempディレクトリにデータを出力するテンプレートファイル
ExecuteProcessプロセサが"Hello"を引数としてEchoの実行を行い、PutFileプロセサがFlowFileの出力を行う。

※windowsでExecuteProcessを使用する場合は、commandをcmdとして引数に実際のコマンド( /c echo hello)などと打てば、動く
**************
ExecuteStreamCommand

図にするとこんな感じかな


やり方いろいろあるだろうがExecuteStreamCommandのCommand Pathにはシェルスクリプトやバッチファイルの場所を書いたほうが無難みたい。

***************
 GenerateFlowFile
 負荷テストなどの目的で利用できるランダムデータからなるFlowFileの生成が行える。
 File Size :生成したいファイルサイズ
 Data Format  :テキストかバイナリか選べる

sample2ではGenerateFlowFileプロセサが10KBのランダムな文字列からなるテキストファイルを2秒ごとに生成し、PutFileプロセサがFlowFileの出力を行う。
*************
GetHTTP
指定したURLに対してGETリクエストをかけて、取得したボディを指定した名前のFlowFileにする。

sample3ではHTTPGetプロセサがhttp://localhost:8080/nifiを呼び出し、結果をtest3.txtというファイルに保存する。念のためSchedule Durationを十日後に設定している。PutFileプロセサがFlowFileの出力を行う。
(SDKのバージョンによってエラーが出る場合があるため注意せよ)
*******

2016年5月11日水曜日

Apache NiFi ドキュメントリンク(最新版への導線+2.x対応メモ)


ドキュメント構成はこちら

Getting Started with Apache NiFi は初めてNiFiを使う人向けの「とりあえず動くの確認」用のチュートリアル
Apache NiFi User Guide はUIの操作を中心にNiFiでユーザーができることをガイド
Apache NiFi Expression Language Guide は属性値の判定や書き換えに使えるスクリプト言語の仕様書
 The NiFi Expression Language で属性値の参照したり別の値と比較したり加工したりできます。

NiFi System Administrator’s Guide はユーザーの管理を含むシステム管理者向けの技術資料
/nifi-api はNiFiをリモート操作できるRest APIの仕様
NiFi Developer’s Guide はProcessorを中心としたNiFiのコンポーネント開発のための解説書
Apache NiFi Development Quickstart はNiFi本体を開発したい人のためのクイックガイド
Example Dataflow Templates はデータフローのサンプルをtemplate形式でお送りしている

For Developers は開発者向けの情報(アーキテクチャーやバージョンルールなど)

hortonworks-gallery/nifi-templates はhortonworksによるtemplate集

Indexing Tweets with NiFi and Solr NiFiでツイッターから情報とるサンプル

***************
プロセサの設定について
・プロセサは指定されたスケジュールにしたがって実行される。選べるのは
Timer driven: ‘Run duration.’の間隔にしたがって実行
Event driven:イベントドリブンで仮実装中(一部のプロセサで実行可能)
CRON driven:CRONの仕組みにしたがる。
の三種類

追記:NiFi 2.x の重要メモ(旧記事からの補足)

  • Event-driven スケジューリングは 2.0 で削除
    1.x では一部プロセサで実験的に提供されていましたが、2.0 で除去されました。今後は Timer-driven または CRON-driven を利用します。Apache IssuesCloudera Documentation

  • XML テンプレートは廃止 → フロー定義(JSON)+レジストリ(NiFi Registry / GitHub/GitLab クライアント)
    既存テンプレートはフロー定義へエクスポートし、レジストリでバージョン管理に移行します。MediumCloudera DocumentationStackable Documentation

2016年5月10日火曜日

Apache NiFi入門と活用ガイド|特徴・インストール・Expression Language徹底解説


Apache NiFi は、大量データの「収集・変換・転送」をノーコードで自動化できるオープンソース ETL/データフローツールです。本記事では NiFi の特徴とアーキテクチャ、Windows・Linux へのインストール手順、Expression Language の基礎、Kafka 連携など現場で役立つベストプラクティスを体系的に解説します。

Apache nifi