ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント

10,243 views

Published on

Hadoopの歴史を振り返る資料になってます・・・

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,243
On SlideShare
0
From Embeds
0
Number of Embeds
9,579
Actions
Shares
0
Downloads
37
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • 1
  • 会社ではSparkとHadoopのスペシャリストやってます。
  • 会社ではSparkとHadoopのスペシャリストやってます。
  • 今日はHadoopの歴史を振り返りつ、どのようにBigData分野が進化してきたか?を見ていく事で
    どのように活用されているのか
    どのような導入をされてきたのか
    等、活用と導入時の検討ポイントを見ていきます。
  • SSSP: 単一始点最短経路
    Concurrent computation
    communication
    barrier synchronization
  • * 処理結果をElasticsearchに格納し、全文検索を提供したり
    Postgresに結果を格納し、OLTP系システムのI/Fとして利用したり
    RethinkDBに結果を更新することでリアルタイムな更新情報の提供を行ったり
    * RabbitMQにキューイングすることで他システムへの高速なデータ連携が可能になります。
  • 簡単に専門知識を必要とせず、大量データに対して処理を行うというコンセプトであったHadoopが
    Hadoopの知識がないとうまく活用できないという問題を抱え始めます。
  • 25
  • ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント

    1. 1. © 2016 IBM Corporation Apache Sparkを中心としたOSSビッグデータ活 用と導入時の検討ポイント Tanaka Y.P 2016-10-25
    2. 2. © 2016 IBM Corporation2 自己紹介 田中裕一(yuichi tanaka) 主にアーキテクチャとサーバーサイドプログラムを担当 することが多い。Hadoop/Spark周りをよく触ります。 Node.js、Python、最近はSpark周りの仕事でScalaを書く ことが多い気がします。 休日はOSS周りで遊んだり。 詳解 Apache Spark
    3. 3. © 2016 IBM Corporation3 自己紹介
    4. 4. © 2016 IBM Corporation4 背景 昨今データ活用の重要性が説かれて久しく、 IoT,機会学習,Cognitive,AI,Security,etc,.etcのワードと 共に全ての業種で必須と言っていいほど分析基盤の重要 性は高まっています。  参考:総務省 H.24 情報通信白書  http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h24/html/nc121410.html
    5. 5. © 2016 IBM Corporation5 HADOOPが起こしたブレイクス ルー
    6. 6. © 2016 IBM Corporation6 遥か昔  データ活用のための基盤というのは非常に限られた世界の技術でした。  当時の考え方 1. 非常に高価なHW(最適化された高速なCPU,多くのメモリ)を用いて 2. 少量のデータに対し複雑な処理を行わせる  専用のHW  専用の知識  専用の技術  早い限界 Fat Server
    7. 7. © 2016 IBM Corporation7 分散システム  ここで登場するのが分散システムの考え方です。  GridComputingやHPCを筆頭に 1. 一つのタスク(仕事)を 2. 複数のマシンで分散して処理を行う 発想が登場しました。 中央に配置したデータを実行時にCPUにコピーし複数のマシンで複雑な処理を行わせる 1. 複雑なプログラミング 2. CPUにコピーするための帯域の上限 3. 耐障害性の課題
    8. 8. © 2016 IBM Corporation8 Hadoopの登場  昨今注目を集めているのがApache Hadoopでの分散システムです。  データは配置する際に分散して配置し、処理はデータが配置されたマシン上に割振る 1. 安価な(commodity化された)HW 2. データコピーによる単純な耐障害性の担保 3. 高レイヤでのアプリ構築 4. 最低限のデータ転送 5. スケーラビリティ
    9. 9. © 2016 IBM Corporation9 Hadoop時代のアーキテクチャまとめ  Hadoop登場により、一般の企業に大規模データを活用した高度な分析や新しいサービスが 登場し活用が広がっていきます。 登場人物のおさらい 1. 分散データ(HDFS) 2. 分散処理(MapReduce) HDFS MapReduce
    10. 10. © 2016 IBM Corporation10 HadoopのEcosystem化
    11. 11. © 2016 IBM Corporation11 Hadoopの複雑化 大規模データの活用が広がる中で、より簡単により専門的な 処理を行うための新しいミドルウェアが登場や、新たな要件 の取り組み、またHadoop自体も洗練されていきます。  Hadoopの洗練  分散処理のうち、分散処理の為のフレームワークとリ ソース管理の分離 HDFS MapReduce HDFS MapReduce YARN
    12. 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. 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. 14. © 2016 IBM Corporation14 Hadoop(HDFS/YARN) 基幹データ 顧客データ 購買データ データベース 従来型のデータ ソーシャルデータ オープンデータ 新しいデータ センサーデータ IoT batchMicro batch Streaming SPSS Cognos データ活用基盤の技術要素の俯瞰 Dataソース ETL系 処理系 操作系 表示系 連携系 管理系
    15. 15. © 2016 IBM Corporation15 多様なデータを表現する為のOSSの利用 RethinkDB RabbitMQ Postgres Elasticsearch Hadoop 高速/高度な分 析 検索I/Fの提供 OLTP I/Fの提供 リアルタイムな更新情報I/Fの提供 AMQPシステム間連携I/Fの提供
    16. 16. © 2016 IBM Corporation16 データ活用とEcosystemの問題  Hadoopの登場でデータ活用が広く一般的になってきました。  しかし、データ活用の業界が広がるにつれ、  新たな要件にfitしたミドルウェアが乱立  大規模データに対するレイテンシの要件の高度化  が求められた結果  複雑化したEcosystemで迷子になる  管理運用難易度が上がり  複数のミドルウェアに対応するため、技術習得の難易度も上がる この辺りからHadoopEcosystem全般を管理運用する為のHadoopエンジニ アの必要性が高まります。
    17. 17. © 2016 IBM Corporation17 Sparkの登場  そこで登場したのがSparkです。  大規模データに対するレイテンシの要件に対し、InMemoryで分散処理を行う  ミドルウェアの乱立に対し、Spark内にSQL,Streaming,GraphX,MLlibを内包する
    18. 18. © 2016 IBM Corporation18 Sparkとは❶ Sparkとは RDDとDAGをコアコンセプトとして設計された分散並列処理フレームワーク Driver Program Worker Worker Worker ProgramProgramProgram DataDataData
    19. 19. © 2016 IBM Corporation19 Sparkとは❷ Sparkとは RDDとDAGをコアコンセプトとして設計された分散並列処理フレームワーク Driver Program Worker Worker Worker ProgramProgramProgram DataDataData
    20. 20. © 2016 IBM Corporation20 Sparkとは❸ Sparkとは RDDとDAGをコアコンセプトとして設計された分散並列処理フレームワーク Driver Program Worker Worker Worker ProgramProgramProgram DataDataData output output output
    21. 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
    22. 22. © 2016 IBM Corporation22 さらなるデータ活用の浸透
    23. 23. © 2016 IBM Corporation23 Sparkの活用と新たな可能性  Sparkの登場により従来の分析処理(BIの為の集計など)に加え、  機会学習処理をアドホックに行う  今流れているデータに対して分析を行う  分析結果を他システムに直接連携し、別システムのInputとする といった運用が可能になりました。 従来の分析 ストリーミング処理 アドホック処理
    24. 24. © 2016 IBM Corporation24 断続的な処理を想定したデータ処理 ~データを”永久”に保持しない~ 全データに対する一括処理を目的とせず、断続的に流れるデータをインメ モリで加工処理しデータ出力をする一連の流れを最も簡単にモデル化した データ処理モデル. 記録データ 処理要求 処理結果 データ インメモリ データ 処理 バッチ、OLTP処理 ストリーム・コンピューティング ※任意の時間・区間データをメモ リ上に保持することができます。 ※全てのデータはHDDに 永続化されていることが前提。 PULL PUSH アクション
    25. 25. © 2016 IBM Corporation25 受信データから 特定条件(フィル タリング)データの みを抽出する 区間内の 移動平均値や 一括り処理をする フィルタリング入力タプル 出力タプル 例:条件閾値>100(℃) フィルタリング、タプルの追加・削除、タプルの変換に利用 (1) フィルタリング処理 t(1) t(k) スライディング・ウィンドウ データをある束に区切って処理する場合に利用 区間内の「タプル数」で集約する場合は、 タンブリング・ウィンドウを用います。 (2) スライディング・ウィンドウ処理 参考:オペレータ処理の例
    26. 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. 27. © 2016 IBM Corporation27 機械学習への取り組みの変化 学習用 DataSet モ デ ル 化 モデル 本番DataSet 適 用 学習用 DataSet学習用 DataSet学習用 DataSet モデル モデル モデル D D D D 他システム連携 ナレッジ 複合の分 析 従来の分析 • 単一データセット • 小さなデータ 変化 • 複合データセット • 大きなデータ • 即応性 • チームでの分析
    28. 28. © 2016 IBM Corporation28 データサイエンティストの需要の高まりと基盤  今まで一部企業のみにあったデータサイエンティストという職種が広く 求められてきます。合わせて、データサイエンティストが必要とする環 境に合わせて JupyterNotebook,ZeppelingNotebookなどのNotebookI/F系 が今注目されています。  Web上でのアドホック分析  データと分析処理のナレッジ化  分析の共有
    29. 29. © 2016 IBM Corporation29 ユースケースとアーキテクチャ
    30. 30. © 2016 IBM Corporation30 分析基盤の3つの用途  ここまでBigDataと呼ばれる分野の歴史を駆け足で見てきました。ここか らは目的の整理とアーキテクチャを見ていきます。 大きな3つの用途  大規模バッチ処理を目的とした基盤  リアルタイム処理を目的とした基盤  アドホック分析を目的とした基盤
    31. 31. © 2016 IBM Corporation31 大規模バッチ処理基盤  この用途の基盤では多くのバッチ処理が継続的に平行で流れます。主に他システムで発生 したデータを集約し、結果をBI/CI、他システムに連携していく事をメインに扱います。 Hadoop(HDFS/YARN) 繰り返し処理
    32. 32. © 2016 IBM Corporation32 リアルタイム処理基盤  この用途の基盤では他システムで発生したデータを直接受け取り継続的に小規模なバッチ や異常値検知などで利用されます。こちらも結果を他システムに連携していく事をメイン に扱います Hadoop(HDFS/YARN) MQTT
    33. 33. © 2016 IBM Corporation33 アドホック分析基盤  この用途の基盤では他システムで発生したデータを組み合わせ様々な新しい知見を得る為 に利用されます。こちらは結果をアドホックに得る為、いかにインタラクティブに処理を 行わせるかがメインとなってきます。 Hadoop(HDFS/YARN)
    34. 34. © 2016 IBM Corporation34 まとめ  この3つの用途は分離可能ではなく、うまく共存していく事が重要です。  OSSの選定の際にも、  主となる用途(バッチがメイン?アドホック分析がメイン?)  補助的な用途、またはチャレンジ を意識してBigData基盤を育てていくと良いでしょう。

    ×