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

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