Más contenido relacionado
La actualidad más candente (20)
Similar a ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント (20)
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
- 1. © 2016 IBM Corporation
Apache Sparkを中心としたOSSビッグデータ活
用と導入時の検討ポイント
Tanaka Y.P
2016-10-25
- 2. © 2016 IBM Corporation2
自己紹介
田中裕一(yuichi tanaka)
主にアーキテクチャとサーバーサイドプログラムを担当
することが多い。Hadoop/Spark周りをよく触ります。
Node.js、Python、最近はSpark周りの仕事でScalaを書く
ことが多い気がします。
休日はOSS周りで遊んだり。
詳解 Apache Spark
- 4. © 2016 IBM Corporation4
背景
昨今データ活用の重要性が説かれて久しく、
IoT,機会学習,Cognitive,AI,Security,etc,.etcのワードと
共に全ての業種で必須と言っていいほど分析基盤の重要
性は高まっています。
参考:総務省 H.24 情報通信白書
http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h24/html/nc121410.html
- 6. © 2016 IBM Corporation6
遥か昔
データ活用のための基盤というのは非常に限られた世界の技術でした。
当時の考え方
1. 非常に高価なHW(最適化された高速なCPU,多くのメモリ)を用いて
2. 少量のデータに対し複雑な処理を行わせる
専用のHW
専用の知識
専用の技術
早い限界
Fat Server
- 7. © 2016 IBM Corporation7
分散システム
ここで登場するのが分散システムの考え方です。
GridComputingやHPCを筆頭に
1. 一つのタスク(仕事)を
2. 複数のマシンで分散して処理を行う
発想が登場しました。
中央に配置したデータを実行時にCPUにコピーし複数のマシンで複雑な処理を行わせる
1. 複雑なプログラミング
2. CPUにコピーするための帯域の上限
3. 耐障害性の課題
- 8. © 2016 IBM Corporation8
Hadoopの登場
昨今注目を集めているのがApache Hadoopでの分散システムです。
データは配置する際に分散して配置し、処理はデータが配置されたマシン上に割振る
1. 安価な(commodity化された)HW
2. データコピーによる単純な耐障害性の担保
3. 高レイヤでのアプリ構築
4. 最低限のデータ転送
5. スケーラビリティ
- 9. © 2016 IBM Corporation9
Hadoop時代のアーキテクチャまとめ
Hadoop登場により、一般の企業に大規模データを活用した高度な分析や新しいサービスが
登場し活用が広がっていきます。
登場人物のおさらい
1. 分散データ(HDFS)
2. 分散処理(MapReduce)
HDFS
MapReduce
- 11. © 2016 IBM Corporation11
Hadoopの複雑化
大規模データの活用が広がる中で、より簡単により専門的な
処理を行うための新しいミドルウェアが登場や、新たな要件
の取り組み、またHadoop自体も洗練されていきます。
Hadoopの洗練
分散処理のうち、分散処理の為のフレームワークとリ
ソース管理の分離
HDFS
MapReduce
HDFS
MapReduce
YARN
- 12. © 2016 IBM Corporation12
Ecosystemの形成
Hadoopを中心としたEcosystemの形成
より簡単にSQL文で分散処理を行うHive等、SQLエンジンの登場
より専門的な機会学習を分散処理するMahout等、機会学習エンジンの登場
大規模なデータを効率よく検索させるSolr等、全文検索エンジンの移植
Graph処理を扱うGiraph,Hama等、Graph処理エンジンの登場
データを効率よくHadoopに収集するためのFlume等、ETLシステムの登場
処理した結果を効率よく他システムに連携する為のqueue、RDBとの組み合
わせ
大量書き込み可能なHBase等、ストレージエンジンの登場
HadoopEcosystem全体を管理するためのAmbari等、Cluster管理システムの
登場
etc,.etc
- 13. © 2016 IBM Corporation13
Ecosystemの登場人物
活用が広がる中で、各分野が専門化し、それらを組み合わせた一つの世界を作っていきま
す。
登場人物のおさらい
分散データ(HDFS)
ストレージエンジン(HBase)
全文検索(Solr,Elasticsearch)
Queue,RDB(Kafka,RabbitMQ,PostgreSQL,MySQL)
リソース管理(YARN)
分散処理(MapReduce)
SQLエンジン(Hive)
機会学習(Mahout)
Graph処理(Giraph,Hama)
ETL(Flume,Sqoop)
Cluster管理(Ambari)
- 14. © 2016 IBM Corporation14
Hadoop(HDFS/YARN)
基幹データ 顧客データ
購買データ データベース
従来型のデータ
ソーシャルデータ オープンデータ
新しいデータ
センサーデータ
IoT
batchMicro
batch
Streaming
SPSS
Cognos
データ活用基盤の技術要素の俯瞰
Dataソース ETL系 処理系
操作系 表示系
連携系
管理系
- 15. © 2016 IBM Corporation15
多様なデータを表現する為のOSSの利用
RethinkDB
RabbitMQ
Postgres
Elasticsearch
Hadoop
高速/高度な分
析
検索I/Fの提供
OLTP I/Fの提供
リアルタイムな更新情報I/Fの提供
AMQPシステム間連携I/Fの提供
- 16. © 2016 IBM Corporation16
データ活用とEcosystemの問題
Hadoopの登場でデータ活用が広く一般的になってきました。
しかし、データ活用の業界が広がるにつれ、
新たな要件にfitしたミドルウェアが乱立
大規模データに対するレイテンシの要件の高度化
が求められた結果
複雑化したEcosystemで迷子になる
管理運用難易度が上がり
複数のミドルウェアに対応するため、技術習得の難易度も上がる
この辺りからHadoopEcosystem全般を管理運用する為のHadoopエンジニ
アの必要性が高まります。
- 17. © 2016 IBM Corporation17
Sparkの登場
そこで登場したのがSparkです。
大規模データに対するレイテンシの要件に対し、InMemoryで分散処理を行う
ミドルウェアの乱立に対し、Spark内にSQL,Streaming,GraphX,MLlibを内包する
- 18. © 2016 IBM Corporation18
Sparkとは❶
Sparkとは
RDDとDAGをコアコンセプトとして設計された分散並列処理フレームワーク
Driver Program
Worker Worker Worker
ProgramProgramProgram
DataDataData
- 19. © 2016 IBM Corporation19
Sparkとは❷
Sparkとは
RDDとDAGをコアコンセプトとして設計された分散並列処理フレームワーク
Driver Program
Worker Worker Worker
ProgramProgramProgram
DataDataData
- 20. © 2016 IBM Corporation20
Sparkとは❸
Sparkとは
RDDとDAGをコアコンセプトとして設計された分散並列処理フレームワーク
Driver Program
Worker Worker Worker
ProgramProgramProgram
DataDataData
output output output
- 21. © 2016 IBM Corporation21
NarrowDependency,ShuffleDependency
ここでは各Partitionの変換操作(NarrowDependency)とアクション操作(ShuffleDependency)をTransaction.csvを元に
reduceByKey時のjobを見ていきます。
WorkerNode
WorkerNode
WorkerNode
Partition0
Partition3
Partition1
Partition2
6,tanaka,532
1,tanaka,100
2,tanaka,300
3,tsuchiya,50
4,kaijima,2000
5,tsuchiya,1320
Partition0
Partition3
(tanaka,100)
(tanaka,300)
(tanaka,532)
Partition1
(tsuchiya,50)
(kaijima,2000)
Partition2
(tsuchiya,1320)
Partition0
(tanaka,932)
Partition2
(kaijima,2000)
Partition1
(tsuchiya,1370)
Narrow Dependency
Shuffle Dependency
Stage0 Stage1
task0
task1
task2
task3
task4
task5
task6
- 23. © 2016 IBM Corporation23
Sparkの活用と新たな可能性
Sparkの登場により従来の分析処理(BIの為の集計など)に加え、
機会学習処理をアドホックに行う
今流れているデータに対して分析を行う
分析結果を他システムに直接連携し、別システムのInputとする
といった運用が可能になりました。
従来の分析
ストリーミング処理
アドホック処理
- 24. © 2016 IBM Corporation24
断続的な処理を想定したデータ処理
~データを”永久”に保持しない~
全データに対する一括処理を目的とせず、断続的に流れるデータをインメ
モリで加工処理しデータ出力をする一連の流れを最も簡単にモデル化した
データ処理モデル.
記録データ
処理要求 処理結果
データ
インメモリ
データ
処理
バッチ、OLTP処理 ストリーム・コンピューティング
※任意の時間・区間データをメモ
リ上に保持することができます。
※全てのデータはHDDに
永続化されていることが前提。
PULL
PUSH
アクション
- 25. © 2016 IBM Corporation25
受信データから
特定条件(フィル
タリング)データの
みを抽出する
区間内の
移動平均値や
一括り処理をする
フィルタリング入力タプル 出力タプル
例:条件閾値>100(℃)
フィルタリング、タプルの追加・削除、タプルの変換に利用
(1) フィルタリング処理
t(1) t(k)
スライディング・ウィンドウ
データをある束に区切って処理する場合に利用
区間内の「タプル数」で集約する場合は、
タンブリング・ウィンドウを用います。
(2) スライディング・ウィンドウ処理
参考:オペレータ処理の例
- 26. © 2016 IBM Corporation26
Sparkとストリーム処理の組み合わせ例
Incident
s
Calls for
Service
(911,
etc)
311
Code
Violation
s
Permit
s
Building
s Apache Spark
MLli
b
HDFS
ヒストリカル・データ
Model2 :
どのアクション
を実行すべき
か?
Model1 :
これはフォル
ス・アラーム
か?
リアルタイム
インプットデータ
リアルタイム
予測分析&コンテ
キスト解析
リアルタイム・ダッシュボー
ド
InfoSphere STREAMS
- 27. © 2016 IBM Corporation27
機械学習への取り組みの変化
学習用
DataSet
モ
デ
ル
化
モデル
本番DataSet
適
用
学習用
DataSet学習用
DataSet学習用
DataSet
モデル
モデル
モデル
D
D
D
D
他システム連携
ナレッジ
複合の分
析
従来の分析
• 単一データセット
• 小さなデータ
変化
• 複合データセット
• 大きなデータ
• 即応性
• チームでの分析
- 28. © 2016 IBM Corporation28
データサイエンティストの需要の高まりと基盤
今まで一部企業のみにあったデータサイエンティストという職種が広く
求められてきます。合わせて、データサイエンティストが必要とする環
境に合わせて JupyterNotebook,ZeppelingNotebookなどのNotebookI/F系
が今注目されています。
Web上でのアドホック分析
データと分析処理のナレッジ化
分析の共有
- 30. © 2016 IBM Corporation30
分析基盤の3つの用途
ここまでBigDataと呼ばれる分野の歴史を駆け足で見てきました。ここか
らは目的の整理とアーキテクチャを見ていきます。
大きな3つの用途
大規模バッチ処理を目的とした基盤
リアルタイム処理を目的とした基盤
アドホック分析を目的とした基盤
- 31. © 2016 IBM Corporation31
大規模バッチ処理基盤
この用途の基盤では多くのバッチ処理が継続的に平行で流れます。主に他システムで発生
したデータを集約し、結果をBI/CI、他システムに連携していく事をメインに扱います。
Hadoop(HDFS/YARN)
繰り返し処理
- 32. © 2016 IBM Corporation32
リアルタイム処理基盤
この用途の基盤では他システムで発生したデータを直接受け取り継続的に小規模なバッチ
や異常値検知などで利用されます。こちらも結果を他システムに連携していく事をメイン
に扱います
Hadoop(HDFS/YARN)
MQTT
- 33. © 2016 IBM Corporation33
アドホック分析基盤
この用途の基盤では他システムで発生したデータを組み合わせ様々な新しい知見を得る為
に利用されます。こちらは結果をアドホックに得る為、いかにインタラクティブに処理を
行わせるかがメインとなってきます。
Hadoop(HDFS/YARN)
- 34. © 2016 IBM Corporation34
まとめ
この3つの用途は分離可能ではなく、うまく共存していく事が重要です。
OSSの選定の際にも、
主となる用途(バッチがメイン?アドホック分析がメイン?)
補助的な用途、またはチャレンジ
を意識してBigData基盤を育てていくと良いでしょう。
Notas del editor
- 1
- 会社ではSparkとHadoopのスペシャリストやってます。
- 会社ではSparkとHadoopのスペシャリストやってます。
- 今日はHadoopの歴史を振り返りつ、どのようにBigData分野が進化してきたか?を見ていく事で
どのように活用されているのか
どのような導入をされてきたのか
等、活用と導入時の検討ポイントを見ていきます。
- SSSP: 単一始点最短経路
Concurrent computation
communication
barrier synchronization
- * 処理結果をElasticsearchに格納し、全文検索を提供したり
Postgresに結果を格納し、OLTP系システムのI/Fとして利用したり
RethinkDBに結果を更新することでリアルタイムな更新情報の提供を行ったり
* RabbitMQにキューイングすることで他システムへの高速なデータ連携が可能になります。
- 簡単に専門知識を必要とせず、大量データに対して処理を行うというコンセプトであったHadoopが
Hadoopの知識がないとうまく活用できないという問題を抱え始めます。
- 25