iotアプリケーションで利用するapache nifi

40
IoTアプリケーションで利⽤するApache NiFi Yuta Imai Solu,ons Engineer, Hortonworks © Hortonworks Inc. 2011 – 2015. All Rights Reserved

Upload: yuta-imai

Post on 13-Apr-2017

1.343 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: IoTアプリケーションで利用するApache NiFi

IoTアプリケーションで利⽤するApache NiFi YutaImaiSolu,onsEngineer,Hortonworks

©HortonworksInc.2011–2015.AllRightsReserved

Page 2: IoTアプリケーションで利用するApache NiFi

2 ©HortonworksInc.2011–2016.AllRightsReserved

Agenda Ã  HDPandHDFÃ WhatyoucandowithSparkÃ  SparkReferenceArchitectureÃ  Demo

Page 3: IoTアプリケーションで利用するApache NiFi

3 ©HortonworksInc.2011–2016.AllRightsReserved

HDPandHDF

Page 4: IoTアプリケーションで利用するApache NiFi

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

Page 5: IoTアプリケーションで利用するApache NiFi

5 ©HortonworksInc.2011–2016.AllRightsReserved

HDFandHDP

HDF

Hadoop

HDFS

HBase Hive SOLR

YARN

Storm

ServiceManagement/

Workflow

SIEM

Spark

RawNetworkStream

NetworkMetadataStream

DataStores

Syslog

RawApplicaAonLogs

OtherStreamingTelemetry

Page 6: IoTアプリケーションで利用するApache NiFi

6 ©HortonworksInc.2011–2016.AllRightsReserved

IoTandNiFi

Page 7: IoTアプリケーションで利用するApache NiFi

7 ©HortonworksInc.2011–2016.AllRightsReserved

IoT?

Page 8: IoTアプリケーションで利用するApache NiFi

8 ©HortonworksInc.2011–2016.AllRightsReserved

WhatwecandowithIoT:自動車

Ã  想定されるユーザー:運送会社やタクシー会社等の商用自動車ユーザー

Ã  フリートマネジメント–  資産としての車の利用率最適化 –  燃費最適化

Ã  個別の車のマネジメント–  故障予知–  部品マネジメント

Ã  個別のドライバのマネジメント–  運転の安全性についてのスコアリング

Page 9: IoTアプリケーションで利用するApache NiFi

9 ©HortonworksInc.2011–2016.AllRightsReserved

WhatwecandowithIoT:自動車

Ã  想定されるユーザー:運送会社やタクシー会社等の商用自動車ユーザー

Ã  フリートマネジメント–  資産としての車の利用率最適化 –  燃費最適化

Ã  個別の車のマネジメント–  故障予知–  部品マネジメント

Ã  個別のドライバのマネジメント–  運転の安全性についてのスコアリング

データソース•  ⾞から上がってくるセンサーデータ•  天候•  道路/交通情報•  ⾞の管理情報•  ドライバの管理情報

Page 10: IoTアプリケーションで利用するApache NiFi

10 ©HortonworksInc.2011–2016.AllRightsReserved

10

SueJimHDP Data Analyst HDP Developer

Jim and Sue Build Monitoring App Demo Here

違反や事故を予測車のU,liza,onを可視化

交通渋滞を予測

Page 11: IoTアプリケーションで利用するApache NiFi

11 ©HortonworksInc.2011–2016.AllRightsReserved

IoTデータでコネクテッドカーのデータをさらに豊富に⾃動⾞センサー

•  速度計•  気圧計 •  タイヤプレッシャ•  フロントガラスウォッシャー•  GPS

WiFi •  Beacon frames•  Request probes

気象情報•  気温•  降⽔量と⾵の速度

道路•  トラフィックカメラ•  制限速度

ソーシャル•  Twitter

Page 12: IoTアプリケーションで利用するApache NiFi

12 ©HortonworksInc.2011–2016.AllRightsReserved

Usage Based Insurance

•  彼らはSnapshotと呼ばれるデバイス経由でリアルタイムに⾃動⾞からアップロードされるデータと道路の混雑状況のデータ、そして過去の様々なデータを組み合わせることによりドライバーごとに価格最適化を⾏うことにより、総額にして約5億6千万ドルの保険料割引を実現したと発表しました。

•  右の写真のデモは、⾚い円筒が、過去のデータから得られた事故多発地帯や犯罪多発地帯を表しており、被保険者の⾞がこのエリアに侵⼊したことを⾃動的に検知する仕組みを可視化したものです。

Page 13: IoTアプリケーションで利用するApache NiFi

13 ©HortonworksInc.2011–2016.AllRightsReserved

Page 14: IoTアプリケーションで利用するApache NiFi

14 ©HortonworksInc.2011–2016.AllRightsReserved

WhatwecandowithIoT:農業

Ã  想定されるユーザー:農業事業者

Ã  状態の把握–  温度、湿度、日照時間等を記録しておいたものと、出来上がった農作物の出来を付きあわせてベストプラクティスやバッドプラクティスの数値化。

–  問題が起こるであろう状態の把握と通知。そして記録。

Ã  環境最適化–  自動散水–  ビニールハウス内の最適状態維持

• 温度や湿度、日照度など–  ドローンのコントロール

Page 15: IoTアプリケーションで利用するApache NiFi

15 ©HortonworksInc.2011–2016.AllRightsReserved

WhatwecandowithIoT:農業

Ã  想定されるユーザー:農業事業者

Ã  状態の把握–  温度、湿度、日照時間等を記録しておいたものと、出来上がった農作物の出来を付きあわせてベストプラクティスやバッドプラクティスの数値化。

–  問題が起こるであろう状態の把握と通知。そして記録。

Ã  環境最適化–  自動散水–  ビニールハウス内の最適状態維持

• 温度や湿度、日照度など–  ドローンのコントロール

データソース•  センサーデータ•  カメラによる画像/動画•  天候•  天候の予報•  市場データ

Page 16: IoTアプリケーションで利用するApache NiFi

16 ©HortonworksInc.2011–2016.AllRightsReserved

WhatwecandowithIoT:通信事業者

Ã  想定されるユーザー:通信事業者

Ã  セルタワーの管理と最適化–  利用率の監視と最適化–  フェムトセル管理

Ã  SelfOp,mizingNetwork–  顧客通信の帯域の最大化–  利用率の最大化–  DroppedCallの最小化

Page 17: IoTアプリケーションで利用するApache NiFi

17 ©HortonworksInc.2011–2016.AllRightsReserved

WhatwecandowithIoT:通信事業者

Ã  想定されるユーザー:通信事業者

Ã  セルタワーの管理と最適化–  利用率の監視と最適化–  フェムトセル管理

Ã  SelfOp,mizingNetwork–  顧客通信の帯域の最大化–  利用率の最大化–  DroppedCallの最小化 データソース

•  実際の電話トランザクション•  CDR•  セルタワーのキャパシティ状態•  ソーシャルストリーム

Page 18: IoTアプリケーションで利用するApache NiFi

18 ©HortonworksInc.2011–2016.AllRightsReserved

WhatwecandowithIoT:通信事業者

Ã  想定されるユーザー:通信事業者

Ã  セルタワーの管理と最適化–  利用率の監視と最適化–  フェムトセル管理

Ã  SelfOp,mizingNetwork–  顧客通信の帯域の最大化–  利用率の最大化–  DroppedCallの最小化 データソース

•  実際の電話トランザクション•  CDR•  セルタワーのキャパシティ状態•  ソーシャルストリームセルタワーからKafkaに対して1時間に160億以上の

レコードをNiFiでIngestしているという事例も

()()()()

()()

Page 19: IoTアプリケーションで利用するApache NiFi

19 ©HortonworksInc.2011–2016.AllRightsReserved

IoTアプリケーションはデータソースが様々

Ã  データの種類

Ã  データの流速

Ã  データの宛先

Page 20: IoTアプリケーションで利用するApache NiFi

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

Page 21: IoTアプリケーションで利用するApache NiFi

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

複数のチーム(例えばアプリケーションとインフラ)をまたがった調整が必要になったりもする

利⽤者だけで変更が完了する

ビジネス的なイテレーションが早く回せる

Page 22: IoTアプリケーションで利用するApache NiFi

22 ©HortonworksInc.2011–2016.AllRightsReserved

Demo

Page 23: IoTアプリケーションで利用するApache NiFi

23 ©HortonworksInc.2011–2016.AllRightsReserved

New York Cityの地下鉄の情報をもとにIoT的なアプリケーションを作ってみる

•  GTFS-realtimeという仕様に則り、地下鉄の運⾏情報(どの駅にいるのか、という情報や遅延状況など)を1分に1回フィードしてくれる

•  リアルタイム情報以外にも、地下鉄の駅の地理的位置情報yや、出⼊り⼝の位置、エスカレーターの場所などの情報が提供されている

Page 24: IoTアプリケーションで利用するApache NiFi

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

Page 25: IoTアプリケーションで利用するApache NiFi

25 ©HortonworksInc.2011–2016.AllRightsReserved

リアルタイムアプリケーション

リアルタイムフィード内の運行情報から

リアルタイムフィード内のアラート情報から

リアルタイムフィード内の運行情報から

Page 26: IoTアプリケーションで利用するApache NiFi

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)

リアルタイムフィード位置情報、アラート情報

バッチ取り込み駅の位置情報など

Page 27: IoTアプリケーションで利用するApache NiFi

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

リアルタイムフィード位置情報、アラート情報

バッチ取り込み駅の位置情報など

Page 28: IoTアプリケーションで利用するApache NiFi

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でカバーするかはケースバイケース

Page 29: IoTアプリケーションで利用するApache NiFi

29 ©HortonworksInc.2011–2016.AllRightsReserved

データが積み上がっていれば・・・

Page 30: IoTアプリケーションで利用するApache NiFi

30 ©HortonworksInc.2011–2016.AllRightsReserved

積み上げたデータでモデルのトレーニング

Page 31: IoTアプリケーションで利用するApache NiFi

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に使う

リアルタイムフィード位置情報、アラート情報

バッチ取り込み駅の位置情報など

Page 32: IoTアプリケーションで利用するApache NiFi

32 ©HortonworksInc.2011–2016.AllRightsReserved

リアルタイムアプリケーション+機械学習モデル

Delaypredicted!

YES

YES

路線ごとの遅延実績のチャート

のさらに右側を回帰分析で書き足したり

各電車のステータステーブルロジスティック回帰やクラスタリングで各電車の遅延を予測したり

Page 33: IoTアプリケーションで利用するApache NiFi

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)

リアルタイムフィード位置情報、アラート情報

バッチ取り込み駅の位置情報など

Page 34: IoTアプリケーションで利用するApache NiFi

34 ©HortonworksInc.2011–2016.AllRightsReserved

BI的な分析

•  SparkならZeppelinでもある程度できる

•  Hiveserver2やSparkThrijServerを使えばJDBC経由でSparkSQLやHiveが使える

•  最近だとDruidも流行ってきてるっぽい。(HadoopSummitでもYahooとかNellixのアーキテクチャの絵に出てきた)

•  他にもHAWQやPrestoなどMPPデータベースとか

Page 35: IoTアプリケーションで利用するApache NiFi

35 ©HortonworksInc.2011–2016.AllRightsReserved

さらに・・・ データソースの追加も(DataEnrichment)

Page 36: IoTアプリケーションで利用するApache NiFi

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

Page 37: IoTアプリケーションで利用するApache NiFi

37 ©HortonworksInc.2011–2016.AllRightsReserved

まとめ

Page 38: IoTアプリケーションで利用するApache NiFi

38 ©HortonworksInc.2011–2016.AllRightsReserved

Apache NiFiとIoT

Ã  IoTはデータソースの種類が多様になるケースがあるÃ  データソースを動的に⾜したいこともあるÃ  NiFiはこういうデータパイプラインに最適Ã  システムアーキテクチャ的にはデータソース層とデータ処理層の間に置くのが○

Page 39: IoTアプリケーションで利用するApache 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

Page 40: IoTアプリケーションで利用するApache NiFi

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的にアプリケーション・サーバーからのログ回収エージェントとしても使えるけれども、これはまた別の話