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

Preview:

Citation preview

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

Recommended