hbaseとsparkでセンサーデータを有効活用 #hbasejp

25
HBase と Spark ととととととととととととと Iot × HBase × Spark ととととととととととととととととととととととととととと とととととととととととととととととと ととととととととと と 、。~ ととととととととととととととと とととととととととととと とと と 2015/6/25 HBase Meetup Tokyo Summer 2015 / ととととととととととととととと 1

Upload: fwardnetwork

Post on 11-Aug-2015

638 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: HBaseとSparkでセンサーデータを有効活用 #hbasejp

HBase と Spark で、センサーデータを有効活用

~ Iot × HBase × Spark で何が出来るのか、何の利点があるのかを弊社が展開しているセンサー解析ベースシステムを例として、ご紹介いたします。~

 株式会社フォワードネットワーク システムソリューション部 高原 歩

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 1

Page 2: HBaseとSparkでセンサーデータを有効活用 #hbasejp

1 自己紹介

■ 所属/氏名 - 株式会社フォワードネットワーク - 高原 歩 (Takahara Ayumu)

■ 経歴等 - 元々は Java の技術者 - 2014 年からビッグデータの世界に - Cloudera 認定資格 CCDH & CCAH 保持。

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 2

Page 3: HBaseとSparkでセンサーデータを有効活用 #hbasejp

2  会社概要

■ 自社サイト - http://www.fward.net

■ Web クオリティを高めるサービスを主に提供 - Web サイトのトラフィック計測 – TrafficPatrol2 - Web サービスの脆弱性診断サービス

■ 「 BigData 」に心奪われ 2014 年より足を踏み入れる - Iot センサー解析ベースシステムをリリース

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 3

Page 4: HBaseとSparkでセンサーデータを有効活用 #hbasejp

Iot センサー解析ベースシステムとは

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 4

Page 5: HBaseとSparkでセンサーデータを有効活用 #hbasejp

3-1 Iot センサー解析ベースシステム

Iot センサー解析ベースシステムとは…

センサーからデータを取得して Hadoop を利用したストレージシステムに蓄積し 貯まったデータを手早く簡単に解析して活用する

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 5

Page 6: HBaseとSparkでセンサーデータを有効活用 #hbasejp

3-2 Iot センサー解析ベースシステム

サービスイメージ

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 6

Page 7: HBaseとSparkでセンサーデータを有効活用 #hbasejp

3-3 Iot センサー解析ベースシステム

解析手法の例

凹凸 急変動

しきい値

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 7

Page 8: HBaseとSparkでセンサーデータを有効活用 #hbasejp

3-4 Iot センサー解析ベースシステム

リアルタイム通知

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 8

温度が 70℃ を 1 分間超えている。1 分ごとの平均の差が 10℃ を超えている。

リアルタイムにメールを送信!!

たとえば…

Page 9: HBaseとSparkでセンサーデータを有効活用 #hbasejp

3-5 Iot センサー解析ベースシステム

デモサイトの URL は

http://sbsdemo.fward.net

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 9

Page 10: HBaseとSparkでセンサーデータを有効活用 #hbasejp

本システムにおける Hadoop の利用

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 10

Page 11: HBaseとSparkでセンサーデータを有効活用 #hbasejp

4-1 本システムにおける Hadoop の利用

ストレージ要件は…

「 1 つのデータは小さく、センサーからのデータ書き込み頻度が高い」

「ランダムではなくシーケンシャルな読み込みが多い」

「全体で膨大な量のデータ容量が必要になる」

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 11

Page 12: HBaseとSparkでセンサーデータを有効活用 #hbasejp

4-2 本システムにおける Hadoop の利用

HBase には、他にも

「スケールアウトが容易」

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 12

「自動的にシャーディングを行う」

「単一障害点の回避」

等々、多くの利点がみられる。

Page 13: HBaseとSparkでセンサーデータを有効活用 #hbasejp

4-3 本システムにおける Hadoop の利用

解析 / 集計 / 検索

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 13

HBase(HDFS)

☆ リアルタイム性はそこまで必要ではない

Page 14: HBaseとSparkでセンサーデータを有効活用 #hbasejp

4-4 本システムにおける Hadoop の利用

エラー検知 / 通知

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 14

HBase(HDFS)

☆ リアルタイム性が重視される!

Page 15: HBaseとSparkでセンサーデータを有効活用 #hbasejp

4-5 本システムにおける Hadoop の利用

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 15

処理の流れ ( 例 )

分解HBase(HDFS)

SortShuffle 集計

flatMapToPair groupByKey MapToPair

Map 処理 Reduce 処理ComparatorPartitioner

Page 16: HBaseとSparkでセンサーデータを有効活用 #hbasejp

4-6 本システムにおける Hadoop の利用

MapReduce での処理

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 16

Configuration conf = HBaseConfiguration.create();Job job = Job.getInstance(conf, “ ジョブ名 ");job.setJarByClass(getClass());

job.setInputFormatClass(TableInputFormat.class);

Scan scan = new Scan();Filter filter1 = new RowFilter(CompareFilter.CompareOp.EQUAL, new RegexStringComparator("minute_" + ymd + ".*"));scan.setFilter(filter1);scan.setCacheBlocks(false);scan.setCaching(500);

TableMapReduceUtil.initTableMapperJob(“ 入力テーブル名 ", scan, HBaseSplitMap.class, Text.class, Text.class, job);

job.setOutputFormatClass(TableOutputFormat.class);TableMapReduceUtil.initTableReducerJob(“ 出力テーブル名 ", AggregateReduce.class, job);

return job.waitForCompletion(true) ? 0 : 1;

※Map, Reduce 処理内容は割愛

入力

出力

Page 17: HBaseとSparkでセンサーデータを有効活用 #hbasejp

4-7 本システムにおける Hadoop の利用

Spark での処理

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 17

Configuration conf = HBaseConfiguration.create();conf.addResource(new Path("/etc/hbase/conf/hbase-site.xml"));conf.addResource(new Path(“/etc/hadoop/conf/core-site.xml”));

conf.set(TableInputFormat.INPUT_TABLE, “ 入力テーブル名” );

Scan scan = new Scan();Filter filter1 = new RowFilter(CompareFilter.CompareOp.EQUAL, new RegexStringComparator(".*_minute_" + ymd + ".*"));scan.setFilter(filter1);scan.setCacheBlocks(false);scan.setCaching(500);

ClientProtos.Scan proto = ProtobufUtil.toScan(scan);String scanString = Base64.encodeBytes(proto.toByteArray());conf.set(TableInputFormat.SCAN, scanString);JavaPairRDD<ImmutableBytesWritable, Result> hBaseRDD = ctx.newAPIHadoopRDD(conf,TableInputFormat.class,org.apache.hadoop.hbase.io.ImmutableBytesWritable.class,org.apache.hadoop.hbase.client.Result.class);

※ 出力 , その他処理の詳細は割愛  flatMapToPair, groupByKey, mapToPair を行うと MapReduce 処理と同様の処理を行える。

入力

Page 18: HBaseとSparkでセンサーデータを有効活用 #hbasejp

4-8 本システムにおける Hadoop の利用

MapReduce, Spark の性能評価

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 18

■ 使用データ   1,296,000 データ (2 秒に 1 データを 1 か月間 )

■ 実行した処理  急変動: 1 時間の平均が 3℃ 上昇 or 下降した範囲を検索する。

■ 所要時間

   MapReduce : 99 秒

   Spark : 39 秒  

Page 19: HBaseとSparkでセンサーデータを有効活用 #hbasejp

Iot 分野における HBase の可能性

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 19

Page 20: HBaseとSparkでセンサーデータを有効活用 #hbasejp

5-1   Iot 分野における HBase の可能性

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 20

今までのデータ

マクロ視点 - 

Iot 社会でのデータ

ミクロ視点 -

データの集計値や平均を利用 飲食店でのグループ単位 工場単位・部署単位

個々のデータを利用 飲食店での座席単位 工場の人員単位・機械単位

データの取り扱われ方

Page 21: HBaseとSparkでセンサーデータを有効活用 #hbasejp

5-2   Iot 分野における HBase の可能性

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 21

Iot センサー解析ベースシステムの利点

■ ご要望に応じたカスタマイズ  - センサーの追加  - 部分的なサービス提供も可能  - HBase により膨大なデータも取扱い可能

■ スクラッチ開発と比較して、  開発期間と開発コストを大幅削減

Page 22: HBaseとSparkでセンサーデータを有効活用 #hbasejp

5-3   Iot 分野における HBase の可能性

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 22

Iot センサー解析ベースシステムの使用例

■ 飲食店等 空席管理システム

- 無線型人感センサーを使用

- 時間毎、日毎に空席状況を把握

- 他サービスとの連携により、 細かな予約管理システムも構築可能  

Page 23: HBaseとSparkでセンサーデータを有効活用 #hbasejp

まとめ

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 23

Page 24: HBaseとSparkでセンサーデータを有効活用 #hbasejp

6  まとめ

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 24

□ 超高速度で集まり続けるセンサーデータを

□ 大量かつ安全に蓄積し

□ できる限り早く検索・集計・解析したい

Page 25: HBaseとSparkでセンサーデータを有効活用 #hbasejp

内容へのお問い合わせはこちらまでお願いいたします。

株式会社フォワードネットワーク システムソリューション部             高原 歩 ([email protected])

HBase と Spark で、センサーデータを有効活用~ Iot × HBase × Spark で何が出来るのか、何の利点があるのかを弊社が展開しているセンサー解析ベースシステムを例として、ご紹介いたします。~

HBase Meetup Tokyo Summer 2015

2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 25

ご拝読ありがとうございました。