iotアプリケーションで利用するapache nifi
TRANSCRIPT
IoTアプリケーションで利⽤するApache NiFi YutaImaiSolu,onsEngineer,Hortonworks
©HortonworksInc.2011–2015.AllRightsReserved
2 ©HortonworksInc.2011–2016.AllRightsReserved
Agenda à HDPandHDFà WhatyoucandowithSparkà SparkReferenceArchitectureà Demo
3 ©HortonworksInc.2011–2016.AllRightsReserved
HDPandHDF
4 ©HortonworksInc.2011–2016.AllRightsReserved
Spark is certified as YARN Ready and is a part of HDP.
Hortonworks Data Platform 2.4
GOVERNANCE OPERATIONSBATCH,INTERACTIVE&REAL-TIMEDATAACCESS
YARN:DataOperaAngSystem(ClusterResourceManagement)
Map
Redu
ce
ApacheFalcon
ApacheSqoop
ApacheFlume
ApacheKaTa
Apache
Hive
Apache
Pig
Apache
HBa
se
Apache
Accum
ulo
Apache
Solr
Apache
Spark
Apache
Storm
1 • • • • • • • • • • •
• • • • • • • • • • • •
HDFS(HadoopDistributedFileSystem)
ApacheAmbari
ApacheZooKeeper
ApacheOozie
DeploymentChoiceLinux Windows On-premises Cloud
ApacheAtlas
Cloudbreak
SECURITY
ApacheRanger
ApacheKnox
ApacheAtlas
HDFSEncryp,on
ISV
Engine
s
5 ©HortonworksInc.2011–2016.AllRightsReserved
HDFandHDP
HDF
Hadoop
HDFS
HBase Hive SOLR
YARN
Storm
ServiceManagement/
Workflow
SIEM
Spark
RawNetworkStream
NetworkMetadataStream
DataStores
Syslog
RawApplicaAonLogs
OtherStreamingTelemetry
6 ©HortonworksInc.2011–2016.AllRightsReserved
IoTandNiFi
7 ©HortonworksInc.2011–2016.AllRightsReserved
IoT?
8 ©HortonworksInc.2011–2016.AllRightsReserved
WhatwecandowithIoT:自動車
à 想定されるユーザー:運送会社やタクシー会社等の商用自動車ユーザー
à フリートマネジメント– 資産としての車の利用率最適化 – 燃費最適化
à 個別の車のマネジメント– 故障予知– 部品マネジメント
à 個別のドライバのマネジメント– 運転の安全性についてのスコアリング
9 ©HortonworksInc.2011–2016.AllRightsReserved
WhatwecandowithIoT:自動車
à 想定されるユーザー:運送会社やタクシー会社等の商用自動車ユーザー
à フリートマネジメント– 資産としての車の利用率最適化 – 燃費最適化
à 個別の車のマネジメント– 故障予知– 部品マネジメント
à 個別のドライバのマネジメント– 運転の安全性についてのスコアリング
データソース• ⾞から上がってくるセンサーデータ• 天候• 道路/交通情報• ⾞の管理情報• ドライバの管理情報
10 ©HortonworksInc.2011–2016.AllRightsReserved
10
SueJimHDP Data Analyst HDP Developer
Jim and Sue Build Monitoring App Demo Here
違反や事故を予測車のU,liza,onを可視化
交通渋滞を予測
11 ©HortonworksInc.2011–2016.AllRightsReserved
IoTデータでコネクテッドカーのデータをさらに豊富に⾃動⾞センサー
• 速度計• 気圧計 • タイヤプレッシャ• フロントガラスウォッシャー• GPS
WiFi • Beacon frames• Request probes
気象情報• 気温• 降⽔量と⾵の速度
道路• トラフィックカメラ• 制限速度
ソーシャル• Twitter
12 ©HortonworksInc.2011–2016.AllRightsReserved
Usage Based Insurance
• 彼らはSnapshotと呼ばれるデバイス経由でリアルタイムに⾃動⾞からアップロードされるデータと道路の混雑状況のデータ、そして過去の様々なデータを組み合わせることによりドライバーごとに価格最適化を⾏うことにより、総額にして約5億6千万ドルの保険料割引を実現したと発表しました。
• 右の写真のデモは、⾚い円筒が、過去のデータから得られた事故多発地帯や犯罪多発地帯を表しており、被保険者の⾞がこのエリアに侵⼊したことを⾃動的に検知する仕組みを可視化したものです。
13 ©HortonworksInc.2011–2016.AllRightsReserved
14 ©HortonworksInc.2011–2016.AllRightsReserved
WhatwecandowithIoT:農業
à 想定されるユーザー:農業事業者
à 状態の把握– 温度、湿度、日照時間等を記録しておいたものと、出来上がった農作物の出来を付きあわせてベストプラクティスやバッドプラクティスの数値化。
– 問題が起こるであろう状態の把握と通知。そして記録。
à 環境最適化– 自動散水– ビニールハウス内の最適状態維持
• 温度や湿度、日照度など– ドローンのコントロール
15 ©HortonworksInc.2011–2016.AllRightsReserved
WhatwecandowithIoT:農業
à 想定されるユーザー:農業事業者
à 状態の把握– 温度、湿度、日照時間等を記録しておいたものと、出来上がった農作物の出来を付きあわせてベストプラクティスやバッドプラクティスの数値化。
– 問題が起こるであろう状態の把握と通知。そして記録。
à 環境最適化– 自動散水– ビニールハウス内の最適状態維持
• 温度や湿度、日照度など– ドローンのコントロール
データソース• センサーデータ• カメラによる画像/動画• 天候• 天候の予報• 市場データ
16 ©HortonworksInc.2011–2016.AllRightsReserved
WhatwecandowithIoT:通信事業者
à 想定されるユーザー:通信事業者
à セルタワーの管理と最適化– 利用率の監視と最適化– フェムトセル管理
à SelfOp,mizingNetwork– 顧客通信の帯域の最大化– 利用率の最大化– DroppedCallの最小化
17 ©HortonworksInc.2011–2016.AllRightsReserved
WhatwecandowithIoT:通信事業者
à 想定されるユーザー:通信事業者
à セルタワーの管理と最適化– 利用率の監視と最適化– フェムトセル管理
à SelfOp,mizingNetwork– 顧客通信の帯域の最大化– 利用率の最大化– DroppedCallの最小化 データソース
• 実際の電話トランザクション• CDR• セルタワーのキャパシティ状態• ソーシャルストリーム
18 ©HortonworksInc.2011–2016.AllRightsReserved
WhatwecandowithIoT:通信事業者
à 想定されるユーザー:通信事業者
à セルタワーの管理と最適化– 利用率の監視と最適化– フェムトセル管理
à SelfOp,mizingNetwork– 顧客通信の帯域の最大化– 利用率の最大化– DroppedCallの最小化 データソース
• 実際の電話トランザクション• CDR• セルタワーのキャパシティ状態• ソーシャルストリームセルタワーからKafkaに対して1時間に160億以上の
レコードをNiFiでIngestしているという事例も
()()()()
()()
19 ©HortonworksInc.2011–2016.AllRightsReserved
IoTアプリケーションはデータソースが様々
à データの種類
à データの流速
à データの宛先
20 ©HortonworksInc.2011–2016.AllRightsReserved
IoTアプリケーションはデータソースが様々
à データの種類
à データの流速
à データの宛先
Apache NiFiのようなデータフローを柔軟に管理できるソフトウェアが活きる
W I T H O U T H O R T O N W O R K S D A T A F L O W
W I T H H O R T O N W O R K S D A T A F L O W
Ingest
Scripts
Messaging
Scripts
HORTONWORKSDATAFLOW
21 ©HortonworksInc.2011–2016.AllRightsReserved
IoTアプリケーションはデータソースが様々
à データの種類
à データの流速
à データの宛先
Apache NiFiのようなデータフローを柔軟に管理できるソフトウェアが活きる
W I T H O U T H O R T O N W O R K S D A T A F L O W
W I T H H O R T O N W O R K S D A T A F L O W
Ingest
Scripts
Messaging
Scripts
HORTONWORKSDATAFLOW
複数のチーム(例えばアプリケーションとインフラ)をまたがった調整が必要になったりもする
利⽤者だけで変更が完了する
ビジネス的なイテレーションが早く回せる
22 ©HortonworksInc.2011–2016.AllRightsReserved
Demo
23 ©HortonworksInc.2011–2016.AllRightsReserved
New York Cityの地下鉄の情報をもとにIoT的なアプリケーションを作ってみる
• GTFS-realtimeという仕様に則り、地下鉄の運⾏情報(どの駅にいるのか、という情報や遅延状況など)を1分に1回フィードしてくれる
• リアルタイム情報以外にも、地下鉄の駅の地理的位置情報yや、出⼊り⼝の位置、エスカレーターの場所などの情報が提供されている
24 ©HortonworksInc.2011–2016.AllRightsReserved
MTAFeed
MTAStops
NiFi
KaTa
HDFS
SparkStreaming
SparkStreaming
HBase+
Phoenix
Spring
Hive/SparkSQL SparkML
WebUI
BI Zeppelin
Twiher
• Loca,ons• Fleetmanagement
• Sta,s,cs• Regression(WIP)
IoT:MTASubwayIoTsampleapplicaAon
PMML
25 ©HortonworksInc.2011–2016.AllRightsReserved
リアルタイムアプリケーション
リアルタイムフィード内の運行情報から
リアルタイムフィード内のアラート情報から
リアルタイムフィード内の運行情報から
26 ©HortonworksInc.2011–2016.AllRightsReserved
MTAFeed
MTAStops
NiFi
KaTa
HDFS
SparkStreaming
SparkStreaming
HBase+
Phoenix
Spring
Hive/SparkSQL SparkML
WebUI
BI Zeppelin
Twiher
• Loca,ons• Fleetmanagement
• Sta,s,cs• Regression(WIP)
リアルタイムアプリケーション
PMML(WIP)
リアルタイムフィード位置情報、アラート情報
バッチ取り込み駅の位置情報など
27 ©HortonworksInc.2011–2016.AllRightsReserved
MTAFeed
MTAStops
NiFi
KaTa
HDFS
SparkStreaming
SparkStreaming
HBase+
Phoenix
Spring
Hive/SparkSQL SparkML
WebUI
BI Zeppelin
Twiher
• Loca,ons• Fleetmanagement
• Sta,s,cs• Regression(WIP)
リアルタイムフィードも必ずストレージに保存しておくSourceoftruth
リアルタイムフィード位置情報、アラート情報
バッチ取り込み駅の位置情報など
28 ©HortonworksInc.2011–2016.AllRightsReserved
MTAFeed
MTAStops
NiFi
KaTa
HDFS
SparkStreaming
SparkStreaming
HBase+
Phoenix
Spring
Hive/SparkSQL SparkML
WebUI
BI Zeppelin
Twiher
• Loca,ons• Fleetmanagement
• Sta,s,cs• Regression(WIP)
リアルタイムフィードも必ずストレージに保存しておくSourceoftruth
リアルタイムフィード位置情報、アラート情報
バッチ取り込み駅の位置情報など
どこまでNiFiでカバーするかはケースバイケース
29 ©HortonworksInc.2011–2016.AllRightsReserved
データが積み上がっていれば・・・
30 ©HortonworksInc.2011–2016.AllRightsReserved
積み上げたデータでモデルのトレーニング
31 ©HortonworksInc.2011–2016.AllRightsReserved
MTAFeed
MTAStops
NiFi
KaTa
HDFS
SparkStreaming
SparkStreaming
HBase+
Phoenix
Spring
Hive/SparkSQL SparkML
WebUI
BI Zeppelin
Twiher
• Loca,ons• Fleetmanagement
• Sta,s,cs• Regression(WIP)
Sourceoftruthをもとにモデルトレーニング
トレーニングしたモデルはPMML等でリアルタイムアプリケーション側に読み込ませることでストリーム処理によるClassifica,onやClusteringに使う
リアルタイムフィード位置情報、アラート情報
バッチ取り込み駅の位置情報など
32 ©HortonworksInc.2011–2016.AllRightsReserved
リアルタイムアプリケーション+機械学習モデル
Delaypredicted!
YES
YES
路線ごとの遅延実績のチャート
のさらに右側を回帰分析で書き足したり
各電車のステータステーブルロジスティック回帰やクラスタリングで各電車の遅延を予測したり
33 ©HortonworksInc.2011–2016.AllRightsReserved
MTAFeed
MTAStops
NiFi
KaTa
HDFS
SparkStreaming
SparkStreaming
HBase+
Phoenix
Spring
Hive/SparkSQL SparkML
WebUI
BI Zeppelin
Twiher
• Loca,ons• Fleetmanagement
• Sta,s,cs• Regression(WIP)
SourceortruthももとにBI等での分析の実施
PMML(WIP)
リアルタイムフィード位置情報、アラート情報
バッチ取り込み駅の位置情報など
34 ©HortonworksInc.2011–2016.AllRightsReserved
BI的な分析
• SparkならZeppelinでもある程度できる
• Hiveserver2やSparkThrijServerを使えばJDBC経由でSparkSQLやHiveが使える
• 最近だとDruidも流行ってきてるっぽい。(HadoopSummitでもYahooとかNellixのアーキテクチャの絵に出てきた)
• 他にもHAWQやPrestoなどMPPデータベースとか
35 ©HortonworksInc.2011–2016.AllRightsReserved
さらに・・・ データソースの追加も(DataEnrichment)
36 ©HortonworksInc.2011–2016.AllRightsReserved
MTAFeed
MTAStops
NiFi
KaTa
HDFS
SparkStreaming
SparkStreaming
HBase+
Phoenix
Spring
Hive/SparkSQL SparkML
WebUI
BI Zeppelin
Twiher
• Loca,ons• Fleetmanagement
• Sta,s,cs• Regression(WIP)
データのEnrichment
PMML(WIP)
NiFiならデータソースの追加も簡単
CorporateDB
37 ©HortonworksInc.2011–2016.AllRightsReserved
まとめ
38 ©HortonworksInc.2011–2016.AllRightsReserved
Apache NiFiとIoT
à IoTはデータソースの種類が多様になるケースがあるà データソースを動的に⾜したいこともあるà NiFiはこういうデータパイプラインに最適à システムアーキテクチャ的にはデータソース層とデータ処理層の間に置くのが○
39 ©HortonworksInc.2011–2016.AllRightsReserved
Apache NiFiとIoT
à IoTはデータソースの種類が多様になるケースがあるà データソースを動的に⾜したいこともあるà NiFiはこういうデータパイプラインに最適à システムアーキテクチャ的にはデータソース層とデータ処理層の間に置くのが○
HDF
Hadoop
HDFS
HBase Hive SOLR
YARN
Storm
ServiceManageme
nt/Workflow
SIEM
Spark
RawNetworkStream
NetworkMetadataStream
DataStores
Syslog
RawApplicaAonLogs
OtherStreamingTelemetry
40 ©HortonworksInc.2011–2016.AllRightsReserved
Apache NiFiとIoT
à IoTはデータソースの種類が多様になるケースがあるà データソースを動的に⾜したいこともあるà NiFiはこういうデータパイプラインに最適à システムアーキテクチャ的にはデータソース層とデータ処理層の間に置くのが○
HDF
Hadoop
HDFS
HBase Hive SOLR
YARN
Storm
ServiceManageme
nt/Workflow
SIEM
Spark
RawNetworkStream
NetworkMetadataStream
DataStores
Syslog
RawApplicaAonLogs
OtherStreamingTelemetry
※Fluentd的にアプリケーション・サーバーからのログ回収エージェントとしても使えるけれども、これはまた別の話