36
Big Data App Server ビッグデータアプリケーションサーバー Lance Riedel

[Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

Big  Data  App  Server  ビッグデータアプリケーションサーバー  

Lance  Riedel  

Page 2: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

Big Data App Server ビッグデータアプリケーションサーバー

4つの「V」に向けた新しいアプリケーション  フレームワーク:  •  大量(Volume)の生データ  (ペタバイト級)  •  超高速(Velocity)で生成・取得される

データ  •  多様(Variety)なデータソースとスキーマ  •  価値(Value)を引き出す  

最新データサイエンス・分析技術を搭載    

Page 3: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29
Page 4: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

ビッグデータアプリケーションのユースケース

•  ログ/マシン分析  •  セキュリティ/不正検出  •  センサーデータ分析  •  フィナンシャル(金融)分析  •  リテール(小売)分析  •  広告ターゲティング  •  レコメンデーション  (例:Ne;lix,  Amazon)    

Page 5: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

コンポーネント B

ig D

ata

Pla

tform

吪吚吇吞ー

吖吮呀吚吟听吀ー

Page 6: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

APP  SERVER  COMPONENTS    アプリケーションサーバー コンポーネント  

Page 7: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

ストレージおよび計算処理機能 B

ig D

ata

Pla

tform

吪吚吇吞ー

吖吮呀吚吟听吀ー

Page 8: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

開発の動機  効率的にWebのデータを取得・処理する必要があったGoogleの技術が開発のきっかけ    •  ページ、単語、ドメインで互いに重要性を計算  •  より高い費用効果–  より効率的な処理、  

インデックス化、重要性の把握を実現  

ストレージおよび計算処理機能

Page 9: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

•  一元化だとスケールアウトしない!    •  大量データの移行  –  ボトルネックの原因  

ストレージおよび計算処理機能:一元化

Page 10: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

•  シャーディングは問題箇所を個別チャンクに分割  •  シャーディングはスケールするが、データをまたいで  

閲覧すると障害が発生  •  例) シャーディングを使った用語・トップページの重み付けの処理  

✓   ✓   ✓   ✓   ✓   ✓   ✓  

≠  

ストレージおよび計算処理機能: シャーディング

Page 11: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

そこで誕生したのがDFS, MapReduce

•  コンピューティング機能そしてデータ分散のための新しいプログラミングモデル(シャーディングとは異なる)  

•  汎用ハードウェア上で稼働    •  ソフトウェア制御で障害回復  •  文書データ全体の計算処理が容易    •  2つのパートから成る完全ソリューション:  

•  分散ファイルシステム  –  DFS  •  MapReduce  

Page 12: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

分散ファイルシステム

Page 13: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

MapReduce

•  データが存在する場所で処理  (データと処理機能は互いにローカル)  •  Map  (データを読み取り、キーおよび値を発行)  •  Reduce  (キーごとにすべての値をグループ化、別の操作を実行)  

Page 14: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

Hadoop

•  GoogleのDFSおよびMapReduce  ホワイトペーパーを基に開発されたオープンソース  

•  大規模エコシステム  •  導入企業:  Yahoo,  Facebook,  TwiPer,  LinkedIn,  Sears,  Apple,  The  New  York  Times,  Telefonica,  他1000社以上!  

Page 15: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

運用管理 B

ig D

ata

Pla

tform

吪吚吇吞ー

吖吮呀吚吟听吀ー

Page 16: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

データ取得

開発のきっかけ  •  多様なデータソース  

からのデータを取得  する必要がある    

•  中にはいくつか貴重な  データがある:  •  Time-­‐to-­‐live  (TTL)  •  デリバリーの保証  

Page 17: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

データ取得: Apache Flume

•  スケーラブル、フォールトトレラント、 コンフィギュラブルトポロジー Hadoopエコシステムの中で相互に動作する  データ取得用パイプライン  

•  安全なデータ転送を設定可能に      -­‐  ルーティング、レプリケーション、フェールオーバー  •  プラグインデータソース用にソースおよびシンクを拡張可能  •  並列にスケール  –  10万メッセージ/秒    

Page 18: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

ワークフロー

開発の動機  データの再現性とトレーサビリティを実現するには変換、格納、結合など、多くの処理ステップが必要  –  データのためのプログラミングモデル      

Page 19: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

ワークフロー: Oozie

処理プログラムの独立性を把握し、それに基づいてスケジューリングと再実行を行い、各ステップのレポートを発行するワークフローエンジン    •  時間またはデータ可用性によってジョブをトリガー  •  ほかのHadoop資産と統合可能  •  スケーラブルで信頼性・拡張性が高いシステム              

Page 20: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

スキーマ管理

開発の動機  爆発的なデータソース増加に伴い、データスキーマが主要課題となっている  

Page 21: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

スキーマ: HCatalog

•  Hadoop用テーブルおよびストレージマネジメントレイヤー  

•  異なるデータ処理ツールの利用を実現  –  Pig、MapReduce、Hive  –  グリッド上でのデータ読み込み・書き出しをより容易に  

       

Page 22: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

スキーマ: Avro

 •  データシリアライゼーションシステム  •  Avroはデータとスキーマを一緒に格納  •  同じ名前のフィールド、ミッシングフィール

ド、エキストラフィールド等々の一致は簡単に解決  

•  Hadoop資産のほとんどの技術はAvroに対応  –  相互運用性/データパス  

   

Page 23: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

データアクセス、クエリ B

ig D

ata

Pla

tform

吪吚吇吞ー

吖吮呀吚吟听吀ー

Page 24: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

データアクセス

開発の動機  多様なデータアクセスパターンに、単なるDFSファイルでは対応できないため、それ以上の性能を持つデータストアが必要。たとえばデータへのランダムアクセスを行う場合、キーバリューストアが必要。    ソリューション  ユースケースに基づきさまざまなソリューションがある  •  GoogleのBigTableホワイトペーパー  •  HadoopはSQLに対応済み  

Page 25: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

データアクセス: HBase

•  Hadoopデータベース  –  スケーラブルな分散型ビッグデータストア(ソートマップ)  –  GoogleのBigTableがベース、Hadoop  DFSがサポート  

•  モジュラーを追加するとリニアにスケール  •  テーブルのシャーディングの自動設定が

可能  •  フェールオーバーの自動化    •  Apache  HBaseテーブルとMapReduceジョ

ブをバックアップする便利なベースクラス  

Page 26: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

データアクセス: SQL – Hive, Impala

•  分散ファイルシステム上の生データに対するSQLクエリ  

•  Impala  –HDFSのファイルに対し、SELECT(選択)、JOIN(結合)、機能のアグリゲートといったクエリを実行  –  リアルタイムに  

•  Hive  –容易なデータサマライズの実現、アドホッククエリの実行、Hadoopと互換性あるファイルシステムに格納された大規模データセットを分析  

Page 27: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

分析 B

ig D

ata

Pla

tform

吪吚吇吞ー

吖吮呀吚吟听吀ー

Page 28: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

データ分析

開発の動機  •  データが持つ潜在的な価値の発掘。ビッグ

データの裏にある最も重要なニーズ!  •  クラスタリング、機械学習、相関性、モデリング  

–  データサイエンスの中心分野  –  一般に、ユースケースは非常に多様  

 ソリューション  ユースケースに応じた最適なツールに適合できるように、スキーマを共有できるプラグイン可能なアーキテクチャ  

Page 29: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

データ分析: フレームワーク例

•  Mahout  •  機械学習、クラスタリング  

•  PaPern  –  カスケーディングからHadoop用の機械学習DSL  

•  0xData  •  ビッグデータ用数学および予測エンジンのオープン

ソース  •  サンプルアルゴリズム  

•  Random  Forest(ランダムフォレスト)アルゴリズム  •  K平均法  •  階層クラスタリング  •  線形回帰  •  ロジスティック回帰  •  サポートベクターマシン  •  人口ニューラルネットワーク  •  アソシエーションルール学習  

Page 30: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

Serving B

ig D

ata

Pla

tform

吪吚吇吞ー

吖吮呀吚吟听吀ー

Page 31: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

サービス

開発の動機  •  エンドユーザー用の強力なアプリケーション  •  リアルタイムなデータアクセスを実現する  

検索/ブラウジングおよびレコメンデーションエンジン    

Page 32: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

サービス: 検索 – Solr Cloud

•  Hadoop最上部にインデックスを構築  •  並列にスケーラブル、フォールトトレラント機能  •  インデックスオプションにおける圧倒的な柔軟性  

•  トークン化  •  フィールドタイプ  •  データストレージ  

•  同様の柔軟性を持つ検索オプション  •  AND,OR,NOT,  ワイルドカード  •  ファセット検索(オントロジー(概念体系)の利用)  •  拡張アルゴリズムと重み付けプラグ機能  

Page 33: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

サービス: Manas – 機械学習

•  The  Hiveの超スケーラブルなマッチングエンジン  

•  100〜1000の機能を照合しながら10億〜数十億ものドキュメントを効率的にハンドリング  

•  現在、こうした機能を担当しているオープンソースコミュニティ上には存在しないエンジン  

Page 34: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

EXAMPLE  APP  USE-­‐CASE  アプリケーションサーバーのユースケース例  

Page 35: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

アプリサーバーのデータフロー

Page 36: [Japanese Content] Lance Riedel_The App Server, The Hive in Tokyo_Aug29

アプリサーバー上におけるSecurityX