Apache NiFi チュートリアル: NiFi とは何ですか? Archi構造と設置
Apache NiFi チュートリアルの概要
この Apache NiFi チュートリアルでは、基礎から高度なトピックまですべてを最初から網羅しています。NiFi の定義、歴史、アーキテクチャ、機能、インストール プロセス、ユース ケースなどの概念を学習します。また、Apache NiFi を使用する必要がある理由と、Apache NiFi を実行するためのベスト プラクティスも学習します。
Apache NiFi とは何ですか?
アパッチNiFi は、システム間のデータ フローを自動化および管理するためのオープン ソース ソフトウェアです。 これは、データを処理および配布するための強力で信頼性の高いシステムです。 データ フローを作成、監視、制御するための Web ベースのユーザー インターフェイスを提供します。 実行時にデータを変更するための、高度な構成と変更が可能なデータ フロー プロセスを備えています。
Apache NiFi は、カスタム コンポーネントの開発を通じて簡単に拡張できます。
Apache NIfi を使用する理由
Apache Nifi を使用する理由は次のとおりです。
- データ インジェストを実行して、多数のデータ ソースからデータを NiFi に取り込み、フロー ファイルを作成できます。
- リアルタイム制御を提供し、ソースと宛先間のデータの移動を管理するのに役立ちます。
- エンタープライズレベルでのDataFlowの視覚化
- 共通のツールと拡張機能を提供する
- 既存のライブラリを活用し、 Java エコシステムの機能
- 組織が Nifi を既存のインフラストラクチャと統合するのを支援します
- NiFiは、データの配信を保証するクラスターでスケールアウトするように設計されています。
- 洞察とインラインドキュメントを提供するフロー速報でパフォーマンスと動作を視覚化および監視します。
- コンポーネントを個別に、またはグループ レベルで開始および停止するのに役立ちます。
- Dataflow のリッスン、フェッチ、分割、集約、ルーティング、変換、ドラッグ アンド ドロップに役立ちます。
Apache NiFi の歴史
- NSAでXNUMX年以上かけて開発
- 2014年 - Apache Softwareに寄贈されました Foundation
- 2015 - NiFi が Apache プロジェクト スイートの正式な一部となりました
- それ以来、Apache NiFi は 6 ~ 8 週間ごとに新しいアップデートをリリースしています。
ニフィ Archi構造
Apache NiFi はよく考えられたアーキテクチャを備えています。外部ソースからデータが取得されると、Apache NiFi アーキテクチャ内で FlowFile として表現されます。
NiFiアーキテクチャの主要コンポーネントは次のとおりです。
Nifiコンポーネント | Description |
---|---|
フローファイル | FlowFileはオリジナルデータにメタ情報が付加されたものです。 CSV やその他のレコードベースのデータだけでなく、写真、ビデオ、オーディオ、その他のバイナリ データも処理できます。 |
フローファイルプロセッサ | NiFi のデータ フローの構成要素として機能する作業を実行します。 |
フローコントローラー | プロセスがどのように接続されているかを記録します。 すべてのプロセスが使用するスレッドとその割り当てを管理します。 |
ウェブサーバー | Web サーバーは、NiFi の HTTP ベースのコマンドと API をホストします。 |
拡張 | JVM 内で動作および実行される NiFi 拡張機能には多くの種類があります。 |
接続 | キューを含むプロセッサと、データのルーティング先に影響を与える関係との間のリンクとして機能します。 |
背圧 | キューに格納できるフローファイルの量やデータサイズを制御することで、システムのオーバーランを防ぎます。 |
プロセスグループ | プロセス グループは、ポートを使用してデータを送受信するプロセスとその接続のセットです。 |
フローファイルリポジトリ | FlowFile リポジトリでは、NiFi はフロー内でアクティブな特定の FlowFile に関する詳細情報の状態を追跡します。 |
コンテンツリポジトリ | コンテンツ リポジトリは、特定の FlowFile の実際のコンテンツ バイトが存在する領域です。 |
来歴リポジトリ | 出所リポジトリは、すべての出所イベント データが収集される領域です。 |
Apache NiFi の機能
- NiFiはキューに入れられたすべてのデータのバッファリングをサポートし、キューが指定された制限に達するとバックプレッシャーをかける機能を提供します。
- NiFi では、XNUMX つ以上の優先順位付けスキームを設定できます。
- 多くのデータソースに接続プロセッサを提供します
- あらゆるデバイスをサポート Java
- 接続が限られた場所に最適
- トラブルシューティングとフローの最適化のサポート
- ロールベースの認証/認可を提供します
- 個々のファイルのダウンロード、回復、再生が可能
- プロセッサー、コントローラー サービスなどを構築する
- コンテンツの暗号化、安全なプロトコルを介した通信を提供します
- 迅速な開発と効果的なテストを可能にします
- 再利用して組み合わせることでより複雑なフローを作成できる、シンプルな単機能コンポーネントの開発を可能にします。
- クラスローダーの分離を可能にし、依存関係の管理を容易にします。
Apache NiFi をインストールする方法
以下は、Apache NiFi インストールの段階的なプロセスです。
ステップ1) に行く リンク,
そして「購読を続ける」をクリックしてください
ステップ2) 次のページで
「規約に同意する」をクリックします
ステップ3) このページが表示されますが、
この商品をご購読いただきありがとうございます。 リクエストを処理中です。
ステップ4) 5分後にページを更新してください。
「設定に進む」をクリックします
ステップ5) 次のページで
設定をデフォルトのままにし、「起動を続ける」をクリックします。
ステップ6) 次のページで
「起動」をクリックします。 キーの作成が必要になる場合があります
ステップ7) この成功メッセージが表示されます。
おめでとうございます! このソフトウェアのインスタンスが EC2 に正常にデプロイされました。
ステップ8) 注意、
EC2 インスタンスのインスタンス ID とパブリック DNS
ステップ9) セキュリティグループでは、
すべてのトラフィック ルールを受信と送信に追加します
ステップ10) Nifi にアクセスするには、
URLを使用するだけです
http://publicdns:808/nifi
私たちの場合は次のようになります
http://ec2-100-26-156-57.compute-1.amazonaws.com:8080/nifi/
ユーザー:管理者
パスワード : インスタンス ID
ステップ11) ご覧のとおり、
NiFiのホーム画面
Nifi の使用例
以下は、Apache NiFi の使用例のリストです。
業種 | 使用法 |
---|---|
保険 |
|
ヘルスケア |
|
テレコミュニケーション |
|
製造業 |
|
石油・ガス産業 |
|
金融サービス |
|
Apache NiFi を実行するベスト プラクティス
- NiFi でテスト/開発/運用環境を分離するのに最適
- フローをプロセス グループに分割する必要があります
- 命名規則を使用し、コメントとラベルを使用する
- プロジェクトを取り込み、テスト、モニタリングの XNUMX つの部分に編成します
- 変数には一意の名前を使用する
ニフィのデメリット
- 正確なセキュリティとコンプライアンスの管理が必要
- Apache NiFi を使用する場合は、基礎となるシステムをよく理解する必要があります
- データの保管過程を維持する必要がある
- トランスポート/メッセージングでは十分ではない可能性があります
- データ アクセスのニーズが、転送に利用可能なリソースを超えています
- すべてのデータが同じように作成されるわけではありません
- SSL およびトピック レベルの認証では十分ではない可能性があります
まとめ
- Apache NiFi は、システム間のデータ フローを自動化および管理するためのオープン ソース ソフトウェアです。
- NiFiは、データの配信を保証するクラスターでスケールアウトするように設計されています。
- Nifi は NSA で XNUMX 年以上かけて開発されました
- データが外部ソースから取得されると、Apache NiFi アーキテクチャ内で FlowFile として表現されます。
- FlowFile、プロセッサ、コントローラ、Webサーバー、接続、バックプレッシャー、リポジトリは、NiFiアーキテクチャの重要なコンポーネントです。
- NiFi表現言語は、 Java
- NiFi は AWS に簡単にインストールできます
- NiFi は、医療、保険、通信、製造、金融、石油、ガスなどのさまざまな業界で使用されています。
- ベスト プラクティスとして、プロジェクトを取り込み、テスト、モニタリングの XNUMX つの部分に編成します。