hbaseとsparkでセンサーデータを有効活用 #hbasejp
TRANSCRIPT
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/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 4
3-1 Iot センサー解析ベースシステム
Iot センサー解析ベースシステムとは…
センサーからデータを取得して Hadoop を利用したストレージシステムに蓄積し 貯まったデータを手早く簡単に解析して活用する
2015/6/25HBase 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/25HBase 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)
SortShuffle 集計
flatMapToPair groupByKey MapToPair
Map 処理 Reduce 処理ComparatorPartitioner
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.ImmutableBytesWritable.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/25HBase 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/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 23
6 まとめ
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 24
□ 超高速度で集まり続けるセンサーデータを
□ 大量かつ安全に蓄積し
□ できる限り早く検索・集計・解析したい
内容へのお問い合わせはこちらまでお願いいたします。
株式会社フォワードネットワーク システムソリューション部 高原 歩 ([email protected])
HBase と Spark で、センサーデータを有効活用~ Iot × HBase × Spark で何が出来るのか、何の利点があるのかを弊社が展開しているセンサー解析ベースシステムを例として、ご紹介いたします。~
HBase Meetup Tokyo Summer 2015
2015/6/25HBase Meetup Tokyo Summer 2015 / 株式会社フォワードネットワーク 25
ご拝読ありがとうございました。