Submit Search
Upload
Apache NiFiと他プロダクトのつなぎ方
•
Download as PPTX, PDF
•
8 likes
•
5,589 views
Sotaro Kimura
Follow
2016/07/27 Apache NiFi 勉強会~データフローの自動化~ での発表資料です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 24
Download now
Recommended
Apache NiFi の紹介 #streamctjp
Apache NiFi の紹介 #streamctjp
Yahoo!デベロッパーネットワーク
App013 ここはあえて紙と
App013 ここはあえて紙と
Tech Summit 2016
インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造
Taiji Tsuchiya
Keycloak & midPoint の紹介
Keycloak & midPoint の紹介
Hiroyuki Wada
Hadoop入門
Hadoop入門
Preferred Networks
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
whywaita
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
NGINX, Inc.
Recommended
Apache NiFi の紹介 #streamctjp
Apache NiFi の紹介 #streamctjp
Yahoo!デベロッパーネットワーク
App013 ここはあえて紙と
App013 ここはあえて紙と
Tech Summit 2016
インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造
Taiji Tsuchiya
Keycloak & midPoint の紹介
Keycloak & midPoint の紹介
Hiroyuki Wada
Hadoop入門
Hadoop入門
Preferred Networks
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
whywaita
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
NGINX, Inc.
モノタロウの商品データ連携について
モノタロウの商品データ連携について
株式会社MonotaRO Tech Team
そのデータフロー NiFiで楽にしてあげましょう
そのデータフロー NiFiで楽にしてあげましょう
Koji Kawamura
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Akira Nakagawa
OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方
Hitachi, Ltd. OSS Solution Center.
PythonによるOPC-UAの利用
PythonによるOPC-UAの利用
Kioto Hirahara
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Kiyotaka Doumae
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
Brocade
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
NTT DATA Technology & Innovation
RDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについて
Masayuki Isobe
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Docker超入門
Docker超入門
VirtualTech Japan Inc.
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
Recruit Technologies
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Junichi Noda
More Related Content
What's hot
モノタロウの商品データ連携について
モノタロウの商品データ連携について
株式会社MonotaRO Tech Team
そのデータフロー NiFiで楽にしてあげましょう
そのデータフロー NiFiで楽にしてあげましょう
Koji Kawamura
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Akira Nakagawa
OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方
Hitachi, Ltd. OSS Solution Center.
PythonによるOPC-UAの利用
PythonによるOPC-UAの利用
Kioto Hirahara
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Kiyotaka Doumae
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
Brocade
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
NTT DATA Technology & Innovation
RDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについて
Masayuki Isobe
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Docker超入門
Docker超入門
VirtualTech Japan Inc.
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
Recruit Technologies
What's hot
(20)
モノタロウの商品データ連携について
モノタロウの商品データ連携について
そのデータフロー NiFiで楽にしてあげましょう
そのデータフロー NiFiで楽にしてあげましょう
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方
PythonによるOPC-UAの利用
PythonによるOPC-UAの利用
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
RDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについて
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Docker超入門
Docker超入門
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
Similar to Apache NiFiと他プロダクトのつなぎ方
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Junichi Noda
SIerでもSphinxを使いたい! 前編
SIerでもSphinxを使いたい! 前編
kk_Ataka
Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例
Junichi Noda
2015 10 24_spark_osc15tk
2015 10 24_spark_osc15tk
Junichi Noda
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Sotaro Kimura
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Junichi Noda
High performance python computing for data science
High performance python computing for data science
Takami Sato
SIerでもSphinxを使いたい!総括
SIerでもSphinxを使いたい!総括
kk_Ataka
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
敦志 金谷
Fighting advanced malware using machine learning (Japanese)
Fighting advanced malware using machine learning (Japanese)
FFRI, Inc.
fluentdとnorikraが便利そうだから使ってみようよ
fluentdとnorikraが便利そうだから使ってみようよ
ara_ta3
fluentdとnorikraが便利そうだから使ってみようよ
fluentdとnorikraが便利そうだから使ってみようよ
ara_ta3
図書館でAPIをスルメのように 味わうには
図書館でAPIをスルメのように 味わうには
Takanori Hayashi
Jupyterで運用やってみた
Jupyterで運用やってみた
Satoshi Yazawa
SIerでもSphinxを使いたい! 後編
SIerでもSphinxを使いたい! 後編
kk_Ataka
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
敦志 金谷
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介
Recruit Technologies
Firestoreを勉強してみた
Firestoreを勉強してみた
ishikawa akira
さくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるもの
法林浩之
Similar to Apache NiFiと他プロダクトのつなぎ方
(20)
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
SIerでもSphinxを使いたい! 前編
SIerでもSphinxを使いたい! 前編
Spark streamingを使用したtwitter解析によるレコメンドサービス例
Spark streamingを使用したtwitter解析によるレコメンドサービス例
2015 10 24_spark_osc15tk
2015 10 24_spark_osc15tk
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
High performance python computing for data science
High performance python computing for data science
SIerでもSphinxを使いたい!総括
SIerでもSphinxを使いたい!総括
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
Fighting advanced malware using machine learning (Japanese)
Fighting advanced malware using machine learning (Japanese)
fluentdとnorikraが便利そうだから使ってみようよ
fluentdとnorikraが便利そうだから使ってみようよ
fluentdとnorikraが便利そうだから使ってみようよ
fluentdとnorikraが便利そうだから使ってみようよ
図書館でAPIをスルメのように 味わうには
図書館でAPIをスルメのように 味わうには
Jupyterで運用やってみた
Jupyterで運用やってみた
SIerでもSphinxを使いたい! 後編
SIerでもSphinxを使いたい! 後編
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介
Firestoreを勉強してみた
Firestoreを勉強してみた
さくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるもの
More from Sotaro Kimura
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Sotaro Kimura
Custom management apps for Kafka
Custom management apps for Kafka
Sotaro Kimura
Spark Structured Streaming with Kafka
Spark Structured Streaming with Kafka
Sotaro Kimura
Modern stream processing by Spark Structured Streaming
Modern stream processing by Spark Structured Streaming
Sotaro Kimura
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Sotaro Kimura
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Sotaro Kimura
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
Sotaro Kimura
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
Sotaro Kimura
Stream dataprocessing101
Stream dataprocessing101
Sotaro Kimura
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Sotaro Kimura
JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷
Sotaro Kimura
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
Sotaro Kimura
Gearpump, akka based Distributed Reactive Realtime Engine
Gearpump, akka based Distributed Reactive Realtime Engine
Sotaro Kimura
リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介
Sotaro Kimura
More from Sotaro Kimura
(14)
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Custom management apps for Kafka
Custom management apps for Kafka
Spark Structured Streaming with Kafka
Spark Structured Streaming with Kafka
Modern stream processing by Spark Structured Streaming
Modern stream processing by Spark Structured Streaming
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
Stream dataprocessing101
Stream dataprocessing101
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
Gearpump, akka based Distributed Reactive Realtime Engine
Gearpump, akka based Distributed Reactive Realtime Engine
リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介
Apache NiFiと他プロダクトのつなぎ方
1.
Apache NiFiと 他プロダクトのつなぎ方 2016/07/27 Apache NiFi
勉強会 〜データフローの自動化〜 木村宗太郎(@kimutansk) https://www.flickr.com/photos/neokratz/4913885458
2.
自己紹介 • 木村 宗太郎(Sotaro
Kimura) • ビッグデータ界隈に生息する何でも屋 • バックエンドからフロントエンド、技術検証から運用、 ドキュメント書きまで色々 • ストリーム処理基盤を調べているうちに NiFiにたどり着き、色々試しています。 • Twitter他 : @kimutansk 1
3.
アジェンダ 1. NiFiと他プロダクトの連携手段 2. 外部データストアを使用する方法 3.
Input・Output Portを使用する方法 4. Flinkとの接続サンプル 2
4.
アジェンダ 1. NiFiと他プロダクトの連携手段 2. 外部データストアを使用する方法 3.
Input・Output Portを使用する方法 4. Flinkとの接続サンプル 3 Apache NiFi自体の説明は 前発表にあるため、省きます。
5.
4 1. NiFiと他プロダクトの連携手段 • NiFiを他プロダクトと連携させるには、 大きく2つの方法がある。 1.
外部データストアを使用する方法 2. Input・Output Portを使用する方法
6.
5 2. 外部データストアを使用する方法 • データストアを介して他プロダクトと連携 •
NiFiはデータストアにデータを保存 • 連携先プロダクトはデータストアから取得 センサー データ ログ アプリ 履歴 データ発生元 NiFi データストア 連携先プロダクト データストアに一度保存してそこから取得
7.
6 2. 外部データストアを使用する方法 • NiFi、連携先共にコンポーネントが必要 •
NiFi側の保持Processorは下記のように多彩 • AMQP • JMS • Kafka • MQTT • Cassandra • Couchbase • Elasticsearch • etc...
8.
7 2. 外部データストアを使用する方法 • 利点 •
並列化で容易にスケールが可能 • データストアの耐障害性を利用可能 • 欠点 • 管理するプロセスが増大し、複雑化 • NiFi、連携先双方で対応コンポーネントが必要
9.
8 3. Input・Output Portを使用する方法 •
NiFiの持つInput・Output Portを介して 他プロダクトと連携 • NiFiから連携先プロダクトが直接取得 センサー データ ログ アプリ 履歴 データ発生元 NiFi 連携先プロダクト
10.
9 3. Input・Output Portを使用する方法 •
Input・Output Portとは? • NiFiプロセス同士が通信するための機構 • Input PortにPushしてNiFiにデータ投入 • Output PortにPullしてNiFiからデータを取得 • 通信路の暗号化も可能(オプション)
11.
10 3. Input・Output Portを使用する方法 •
NiFiの画面上ではヘッダ部に存在 • NiFiプロセスで複数のPortを管理利用可能 ここからドラッグして使用
12.
11 3. Input・Output Portを使用する方法 •
NiFiプロセスで複数のPortを管理利用可能 接続先のNiFi情報 Input Port一覧 Output Port一覧
13.
12 3. Input・Output Portを使用する方法 •
他プロダクトから用いるには? • Site-To-Site Clientという 再利用可能なクライアントとしてNiFiから提供 • ※Java製 • https://github.com/apache/nifi/tree/master/nifi-commons/nifi-site-to-site-client • これを用いることで任意のJavaプロセスが NiFiと直接通信する処理を容易に記述可能 • 使用したExampleも色々ある • Apache Flink • Apache Apex • etc...
14.
13 3. Input・Output Portを使用する方法 •
下記のような構成で使用可能 • 複数のNiFiプロセスから取得・投入可能(?) • 取得側がクラスタの場合も対応可能だが、 ロードバランスの方式は考える必要あり? • ※現状GitHub上のコードでは1Client:1Host接続の実装しかない・・・ Java Program Site-To-Site Client NiFi Process 1 Output Port NiFi Process 2 Output Port
15.
14 3. Input・Output Portを使用する方法 •
利点 • NiFiと直接やり取りが可能で構成がシンプル • Site-to-Siteクライアントを用いることで 幅広いプロダクトで使用可能 • 欠点 • 並列化への対応が不完全(?) • 耐障害性はNiFiの個々プロセスに依存 • あくまでデータフローを構築するための機構で、 データを保持するための機構ではない。
16.
15 4. Flinkとの接続サンプル • 実際に接続した例で何ができるかを見る。 •
具体的にどういう構成になるのか? • 下記のサンプルを基に説明 • https://github.com/bbende/nifi-streaming-examples
17.
NiFi Process 1 NiFi
Process 1 16 4. Flinkとの接続サンプル • サンプルを構築した際の構成 Core NiFi Input Port Flink StSClient StSClient Output Port Input Port Http Endpoint Edge NiFi StS Client Http Client ログ解析を行い、 結果を返信 ログを Edgeから集約 解析結果を取得 集約・転送を実施
18.
17 4. Flinkとの接続サンプル • EdgeでのFlow定義 ログ読み込み Coreに送信 解析結果取得
19.
18 4. Flinkとの接続サンプル • CoreでのFlow定義 Edgeの結果集約 Flinkの結果待受 Edgeからの待受
20.
19 4. Flinkとの接続サンプル • Flinkアプリケーションの構成 NiFi Source NiFi Sink LogLevel FlatMap LogLevel Window Counter Dictionary Builder NiFiOutputPort からデータ取得 NiFiInputPort にデータ送信 ログメッセージから ログレベル抽出 ログレベルを Windowカウント 統計結果集計
21.
20 4. Flinkとの接続サンプル • Flinkアプリケーションの構築コード //
NiFiDataPacket(NiFi提供)を実行単位とするNiFi用Source生成し、実行環境に設定 SourceFunction<NiFiDataPacket> nifiSource = new NiFiSource(sourceConfig); DataStream<NiFiDataPacket> streamSource = env.addSource(nifiSource); // ログレベル抽出Mapper生成 LogLevelFlatMap logLevelFlatMap = new LogLevelFlatMap(props.getLogLevelAttribute()); // ログレベルWindowCounter生成 LogLevelWindowCounter windowCounter = new LogLevelWindowCounter(); // 統計結果集計Builder生成 NiFiDataPacketBuilder<LogLevels> builder = new DictionaryBuilder(windowSize, rateThreshold); // アプリケーション構築 streamSource.flatMap(logLevelFlatMap) .timeWindowAll(Time.of(windowSize, TimeUnit.MILLISECONDS)) .apply(new LogLevelWindowCounter()).addSink(new NiFiSink<>(sinkConfig, builder)); // ストリーム処理アプリケーション起動 env.execute("WindowLogLevelCount");
22.
21 4. Flinkとの接続サンプル • Flinkアプリケーションの構築コード //
NiFiDataPacket(NiFi提供)を実行単位とするNiFi用Source生成し、実行環境に設定 SourceFunction<NiFiDataPacket> nifiSource = new NiFiSource(sourceConfig); DataStream<NiFiDataPacket> streamSource = env.addSource(nifiSource); // ログレベル抽出Mapper生成 LogLevelFlatMap logLevelFlatMap = new LogLevelFlatMap(props.getLogLevelAttribute()); // ログレベルWindowCounter生成 LogLevelWindowCounter windowCounter = new LogLevelWindowCounter(); // 統計結果集計Builder生成 NiFiDataPacketBuilder<LogLevels> builder = new DictionaryBuilder(windowSize, rateThreshold); // アプリケーション構築 streamSource.flatMap(logLevelFlatMap) .timeWindowAll(Time.of(windowSize, TimeUnit.MILLISECONDS)) .apply(new LogLevelWindowCounter()).addSink(new NiFiSink<>(sinkConfig, builder)); // ストリーム処理アプリケーション起動 env.execute("WindowLogLevelCount"); Apexアプリケーションでも ほぼ同じコード量で同等の機能が実現可能。
23.
まとめ • NiFiと他プロダクトと連携する手段は2つ ① 外部データストアを使用する方法 ②
Input・Output Portを使用する方法 • 利点欠点は両方ある • Input・Output Portを利用するための SiteToSiteClientがNiFiから提供 • FlinkやApexのサンプルが存在 • Flink、Apex共に、 SiteToSiteClientを使えば 数十行のコードでNiFiと接続し、 アプリケーション構築可能 22
24.
Enjoy Apache NiFi
! https://www.flickr.com/photos/99408200@N05/11646500835
Download now