HBaseとSparkでセンサーデータを有効活用 #hbasejp
-
Upload
fwardnetwork -
Category
Technology
-
view
638 -
download
2
Transcript of HBaseとSparkでセンサーデータを有効活用 #hbasejp
![Page 1: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/1.jpg)
HBase と Spark で、センサーデータを有効活用
~ Iot × HBase × Spark で何が出来るのか、何の利点があるのかを弊社が展開しているセンサー解析ベースシステムを例として、ご紹介いたします。~
株式会社フォワードネットワーク システムソリューション部 高原 歩
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 1
![Page 2: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/2.jpg)
1 自己紹介
■ 所属/氏名 - 株式会社フォワードネットワーク - 高原 歩 (Takahara Ayumu)
■ 経歴等 - 元々は Java の技術者 - 2014 年からビッグデータの世界に - Cloudera 認定資格 CCDH & CCAH 保持。
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 2
![Page 3: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/3.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/4.jpg)
Iot センサー解析ベースシステムとは
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 4
![Page 5: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/5.jpg)
3-1 Iot センサー解析ベースシステム
Iot センサー解析ベースシステムとは…
センサーからデータを取得して Hadoop を利用したストレージシステムに蓄積し 貯まったデータを手早く簡単に解析して活用する
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 5
![Page 6: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/6.jpg)
3-2 Iot センサー解析ベースシステム
サービスイメージ
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 6
![Page 7: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/7.jpg)
3-3 Iot センサー解析ベースシステム
解析手法の例
凹凸 急変動
しきい値
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 7
![Page 8: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/8.jpg)
3-4 Iot センサー解析ベースシステム
リアルタイム通知
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 8
温度が 70℃ を 1 分間超えている。1 分ごとの平均の差が 10℃ を超えている。
リアルタイムにメールを送信!!
たとえば…
![Page 9: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/9.jpg)
3-5 Iot センサー解析ベースシステム
デモサイトの URL は
http://sbsdemo.fward.net
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 9
![Page 10: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/10.jpg)
本システムにおける Hadoop の利用
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 10
![Page 11: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/11.jpg)
4-1 本システムにおける Hadoop の利用
ストレージ要件は…
「 1 つのデータは小さく、センサーからのデータ書き込み頻度が高い」
「ランダムではなくシーケンシャルな読み込みが多い」
「全体で膨大な量のデータ容量が必要になる」
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 11
![Page 12: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/12.jpg)
4-2 本システムにおける Hadoop の利用
HBase には、他にも
「スケールアウトが容易」
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 12
「自動的にシャーディングを行う」
「単一障害点の回避」
等々、多くの利点がみられる。
![Page 13: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/13.jpg)
4-3 本システムにおける Hadoop の利用
解析 / 集計 / 検索
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 13
HBase(HDFS)
☆ リアルタイム性はそこまで必要ではない
![Page 14: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/14.jpg)
4-4 本システムにおける Hadoop の利用
エラー検知 / 通知
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 14
HBase(HDFS)
☆ リアルタイム性が重視される!
![Page 15: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/15.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/16.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/17.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/18.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/19.jpg)
Iot 分野における HBase の可能性
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 19
![Page 20: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/20.jpg)
5-1 Iot 分野における HBase の可能性
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 20
今までのデータ
マクロ視点 -
Iot 社会でのデータ
ミクロ視点 -
データの集計値や平均を利用 飲食店でのグループ単位 工場単位・部署単位
個々のデータを利用 飲食店での座席単位 工場の人員単位・機械単位
データの取り扱われ方
![Page 21: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/21.jpg)
5-2 Iot 分野における HBase の可能性
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 21
Iot センサー解析ベースシステムの利点
■ ご要望に応じたカスタマイズ - センサーの追加 - 部分的なサービス提供も可能 - HBase により膨大なデータも取扱い可能
■ スクラッチ開発と比較して、 開発期間と開発コストを大幅削減
![Page 22: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/22.jpg)
5-3 Iot 分野における HBase の可能性
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 22
Iot センサー解析ベースシステムの使用例
■ 飲食店等 空席管理システム
- 無線型人感センサーを使用
- 時間毎、日毎に空席状況を把握
- 他サービスとの連携により、 細かな予約管理システムも構築可能
![Page 23: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/23.jpg)
まとめ
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 23
![Page 24: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/24.jpg)
6 まとめ
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 24
□ 超高速度で集まり続けるセンサーデータを
□ 大量かつ安全に蓄積し
□ できる限り早く検索・集計・解析したい
![Page 25: HBaseとSparkでセンサーデータを有効活用 #hbasejp](https://reader037.fdocuments.net/reader037/viewer/2022102807/55ca1048bb61ebbf4e8b4598/html5/thumbnails/25.jpg)
内容へのお問い合わせはこちらまでお願いいたします。
株式会社フォワードネットワーク システムソリューション部 高原 歩 ([email protected])
HBase と Spark で、センサーデータを有効活用~ Iot × HBase × Spark で何が出来るのか、何の利点があるのかを弊社が展開しているセンサー解析ベースシステムを例として、ご紹介いたします。~
HBase Meetup Tokyo Summer 2015
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 25
ご拝読ありがとうございました。