講義概要

講義名: 大規模データ処理特論
日時: 2010年後期 水曜日 3・4限 (10:40 - 12:10) 
講義室: W834 (西8号館 E 棟 3階) 
担当教員: 鈴村 豊太郎(東京工業大学大学院・情報理工学研究科 客員准教授) 
単位: 2 単位 (講義 1 単位、演習 1単位) 
講義 URL : http://sites.google.com/site/suzuldp2010/
授業メーリングリスト: suzumura-lecture@googlegroups.com


概要

  • 近年、センサーやネットワーク技術の進化により、データの爆発的な増加が課題となっており、それを高速に処理するソフトウェア処理系の研究が盛んに行われて いる。 本講義では、これらのソフトウェア処理系やデータ管理技術に関する最先端の技術を学ぶ。また、産業界において実際に大規模データ処理に従事する方 をお招きし、ストリームコンピューティングやクラウドコンピューティングの概念、各企業における大規模データへの取り組みについて学んでいく。
  • 演習においては、(1) 大規模データ処理に関する最先端の論文を読み、概要説明を行う、または、(2) 関連するソフトウェアを用いて実際にプログラムを開発する、の何れかを選択する

講義日程 ( 2010/11/09 時点) 


 日時 スピーカー 形式 内容
 10/6 
鈴村(東工大/IBM) 講義 イントロダクション(講義内容の紹介、演習課題の選定など) :
 10/13鈴村(東工大/IBM) 講義 ストリームコンピューティング
 10/27鵜飼様(Google) 講義 Google Go の概要
 11/10鈴村 (東工大/IIBM) 講義 MapReduce 概論 - 課題演習に関する説明
 11/17学生 演習
 
課題演習 (各自)
 11/24佐藤様 (東工大)  講義 グリッド・クラウド・ TSUBAME 2
 12/1西澤様
(楽天技術研究所) 
 講義 大規模データ処理基盤 ROMA, Fairy の概要
 12/8玉川様 (Amazon) 講義 Amazon 社のクラウド技術
 1/12学生 演習 課題最終発表



演習

演 習は以下の2つから選択する。10/8(金) までにどちらかを選択し、受講者情報(氏名、所属専攻、学籍番号、メールアドレス)と希望する演習内容(論文の場合は論文名を第3希望まで書く。演習の場合は希望する演習名を書く) をsuzumura@cs.titech.ac.jp までメールください。各自の発表日に関しては、10/13に伝えます。
  • 論文紹介
    • 大規模データ処理に関係する最近ホットな論文を一つ選び、演習の時間に論文紹介を行う
    • 論文紹介では、以下の点に留意すること
      • 時間: 45 分以内(質疑応答含む)
      • 発表は PowerPoint スライドで行うこと
      • 発表はできる限り、本質が伝わるように、問題提起とそれへの解決策がわかるように聴衆者に伝えること
      • 出席者分のコピー(論文本体)を印刷してきて、発表の始めに配布すること
  • プログラミング演習
    • テーマは以下の2つから選択する
      • ストリームコンピューティング処理基盤 System S (製品名 InfoSphere Streams) を用いてアプリケーションを構築する」
        • IBM Research が研究開発している ストリームコンピューティングシステム System S を用いた演習
        • アプリケーションは自ら自由に設定して良いが、一応取り掛かる前に鈴村と相談
        • 鈴村研究室のサーバーに Twitter データが 2010年6月から収集しているデータが 300GB ほどありますので、それを活用することもできます。
      • 「MapReduce を用いてアプリケーションを作ってみよう」
        • Google が2004年に提唱した大規模データ処理のフレームワークは、蓄積型のデータ処理として現在、確固たる地位を固めています
        • 本演習では、MapReduce 処理系のオープンソース実装 Hadoop を用いてアプリケーションを構築します
        • 処理するデータおよび処理内容は自由に設定してよいですが、上記の ストリームコンピューティングと同様に Twitter のデータが 300GB ほどあります。必要に応じて活用してください。
    • 開発及び実験方法
      • 鈴村研究室の研究環境のアカウントを発行するので、そこで開発・実験・テストする
    • 提出方法
      • 実装したアプリケーションの概要、アーキテクチャ(できれば性能評価も)を演習の時間に発表する
      • プログラム一式を鈴村までメールで送信(ソースが大きい場合は鈴村研究室のディレクトリの場所を教えて頂ければよいです)

成績評価方法
出席と演習による総合点とする。点数の配分に関しては未公表とする。
  • 出席: 毎回授業の最初に出席を取る
  • 演習
    • 課題発表を少なくとも1回は行う
    • 発表内容によって演習の評点を付ける

講義内容
  • ストリームコンピューティングの概要  (by 鈴村) 
  • Google Go プログラミング言語の概要 (Google 鵜飼様) 
  • 楽天の取り組み ROMA , Fairy の紹介(楽天技術研究所・西澤様) 
  • Amazon のクラウドへの取り組み紹介 (Amazon玉川様 ) 
  • TSUBAME 2.0 (by 東京工業大学 GSIC 佐藤様)  


参考論文 
  • Pregel : a system for large-scale graph processing, SIGMOD 2010 :
  • Many practical computing problems concern large graphs. Standard examples include the Web graph and various social networks. The scale of these graphs - in some cases billions of vertices, trillions of edges - poses challenges to their efficient processing. In this paper we present a computational model suitable for this task. Programs are expressed as a sequence of iterations, in each of which a vertex can receive messages sent in the previous iteration, send messages to other vertices, and modify its own state and that of its outgoing edges or mutate graph topology. This vertex-centric approach is flexible enough to express a broad set of algorithms. The model has been designed for efficient, scalable and fault-tolerant implementation on clusters of thousands of commodity computers, and its implied synchronicity makes reasoning about programs easier. Distribution-related details are hidden behind an abstract API. The result is a framework for processing large graphs that is expressive and easy to program

  • Dremel: Interactive Analysis of WebScale 
  • Dataset, 
  • Sergey Melnik, et.al, VLDB 2010
  • Dremel is a scalable, interactive ad-hoc query system for analysis 
  • of read-only nested data. By combining multi-level execution 
  • trees and columnar data layout, it is capable of running aggregation 
  • queries over trillion-row tables in seconds. The system scales 
  • to thousands of CPUs and petabytes of data, and has thousands 
  • of users at Google. In this paper, we describe the architecture 
  • and implementation of Dremel, and explain how it complements 
  • MapReduce-based computing. We present a novel columnar storage 
  • representation for nested records and discuss experiments on 
  • few-thousand node instances of the syste
  • Hive A Warehousing Solution Over a MapReduce Framework
    (Download PDF) Facebook 社が提案する処理基盤
  • The size of data sets being collected and analyzed in the industry for business intelligence is growing rapidly, making traditional warehousing solutions prohibitively expensive. Hadoop [3] is a popular open-source map-reduce implementation which is being used as an alternative to store 
  • and process extremely large data sets on commodity hardware. However, the map-reduce programming model is very low level and requires developers to write custom programs which are hard to maintain and reuse. In this paper, we present Hive, an open-source data warehousing solution built on top of Hadoop. Hive supports queries expressed in a SQL-like declarative language - HiveQL, which are compiled into map-reduce jobs executed on Hadoop. In addition, HiveQL supports custom map-reduce scripts to be plugged into queries. The language includes a type system with support for tables containing primitive types, collections like arrays and maps, and nested compositions of the same. The underlying IO libraries can be extended to query data in custom formats. Hive also includes a system catalog, Hive-Metastore, containing schemas and statistics, 
  • which is useful in data exploration and query optimization. In Facebook, the Hive warehouse contains several thousand tables with over 700 terabytes of data and is being used extensively for both reporting and ad-hoc analyses by more than 100 users.

  • Dynamo: Amazon’s Highly Available Key-value Store
    SOSP 2007,
    (Download PDF)  
    Amazon が提案するデータストア基盤。

  • Interpreting the Data: Parallel Analysis with Sawzall, Rob Pike, Sean Dorward, Robert Griesemer, Sean Quinlan, 
    Scientific Programming Journal, vol. 13 (2005), pp. 277-298.
    (Download PDF)
    MapReduce よりも高レベルなプログラミング言語 Saqzall の論文