Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Sotaro Kimura
PPTX, PDF
5,731 views
Apache NiFiと他プロダクトのつなぎ方
2016/07/27 Apache NiFi 勉強会~データフローの自動化~ での発表資料です。
Engineering
◦
Read more
8
Save
Share
Embed
Embed presentation
Download
Downloaded 41 times
1
/ 24
2
/ 24
3
/ 24
4
/ 24
5
/ 24
6
/ 24
Most read
7
/ 24
8
/ 24
9
/ 24
10
/ 24
Most read
11
/ 24
12
/ 24
Most read
13
/ 24
14
/ 24
15
/ 24
16
/ 24
17
/ 24
18
/ 24
19
/ 24
20
/ 24
21
/ 24
22
/ 24
23
/ 24
24
/ 24
More Related Content
PDF
Apache NiFi の紹介 #streamctjp
by
Yahoo!デベロッパーネットワーク
PPTX
OpenStackで始めるクラウド環境構築入門
by
VirtualTech Japan Inc.
PDF
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
PPTX
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
by
Yuki Hirano
PPTX
Hive on Spark の設計指針を読んでみた
by
Recruit Technologies
PPTX
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
by
fisuda
PDF
Red Hat OpenShift Container Storage
by
Takuya Utsunomiya
PDF
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
by
Toshiaki Maki
Apache NiFi の紹介 #streamctjp
by
Yahoo!デベロッパーネットワーク
OpenStackで始めるクラウド環境構築入門
by
VirtualTech Japan Inc.
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
by
Yuki Hirano
Hive on Spark の設計指針を読んでみた
by
Recruit Technologies
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
by
fisuda
Red Hat OpenShift Container Storage
by
Takuya Utsunomiya
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
by
Toshiaki Maki
What's hot
PDF
What's new in Spring Boot 2.6 ?
by
土岐 孝平
PDF
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
by
hamaken
PPTX
RDB開発者のためのApache Cassandra データモデリング入門
by
Yuki Morishita
PDF
MariaDBとMroongaで作る全言語対応超高速全文検索システム
by
Kouhei Sutou
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
PPTX
コミュニケーション戦略を前提にしたOutlookやTeams活用
by
Daiyu Hatakeyama
PDF
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
by
Takuya Takaseki
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
PDF
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PDF
RESTful Web アプリの設計レビューの話
by
Takuto Wada
PPTX
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
PDF
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
by
株式会社MonotaRO Tech Team
PPTX
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
by
NTT DATA Technology & Innovation
PPTX
がっつりMongoDB事例紹介
by
Tetsutaro Watanabe
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
PPTX
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
by
NTT DATA Technology & Innovation
PPTX
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
PDF
SolrとElasticsearchを比べてみよう
by
Shinsuke Sugaya
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
What's new in Spring Boot 2.6 ?
by
土岐 孝平
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
by
hamaken
RDB開発者のためのApache Cassandra データモデリング入門
by
Yuki Morishita
MariaDBとMroongaで作る全言語対応超高速全文検索システム
by
Kouhei Sutou
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
コミュニケーション戦略を前提にしたOutlookやTeams活用
by
Daiyu Hatakeyama
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
by
Takuya Takaseki
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
RESTful Web アプリの設計レビューの話
by
Takuto Wada
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
by
株式会社MonotaRO Tech Team
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
by
NTT DATA Technology & Innovation
がっつりMongoDB事例紹介
by
Tetsutaro Watanabe
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
by
NTT DATA Technology & Innovation
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
SolrとElasticsearchを比べてみよう
by
Shinsuke Sugaya
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
More from Sotaro Kimura
PPTX
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
by
Sotaro Kimura
PPTX
Custom management apps for Kafka
by
Sotaro Kimura
PPTX
Spark Structured Streaming with Kafka
by
Sotaro Kimura
PPTX
Modern stream processing by Spark Structured Streaming
by
Sotaro Kimura
PPTX
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
by
Sotaro Kimura
PDF
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
by
Sotaro Kimura
PDF
利用者主体で行う分析のための分析基盤
by
Sotaro Kimura
PDF
最近のストリーム処理事情振り返り
by
Sotaro Kimura
PDF
Stream dataprocessing101
by
Sotaro Kimura
PPTX
Kafkaを活用するためのストリーム処理の基本
by
Sotaro Kimura
PPTX
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
by
Sotaro Kimura
PPTX
JVM上でのストリーム処理エンジンの変遷
by
Sotaro Kimura
PDF
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
by
Sotaro Kimura
PDF
Gearpump, akka based Distributed Reactive Realtime Engine
by
Sotaro Kimura
PDF
リアルタイム処理エンジンGearpumpの紹介
by
Sotaro Kimura
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
by
Sotaro Kimura
Custom management apps for Kafka
by
Sotaro Kimura
Spark Structured Streaming with Kafka
by
Sotaro Kimura
Modern stream processing by Spark Structured Streaming
by
Sotaro Kimura
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
by
Sotaro Kimura
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
by
Sotaro Kimura
利用者主体で行う分析のための分析基盤
by
Sotaro Kimura
最近のストリーム処理事情振り返り
by
Sotaro Kimura
Stream dataprocessing101
by
Sotaro Kimura
Kafkaを活用するためのストリーム処理の基本
by
Sotaro Kimura
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
by
Sotaro Kimura
JVM上でのストリーム処理エンジンの変遷
by
Sotaro Kimura
スキーマつきストリーム データ処理基盤、 Confluent Platformとは?
by
Sotaro Kimura
Gearpump, akka based Distributed Reactive Realtime Engine
by
Sotaro Kimura
リアルタイム処理エンジンGearpumpの紹介
by
Sotaro Kimura
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