分散処理アプリ演習

 

平成24年度シラバス

 

 

 

 

 

 

 

 

 

 

 

2012113

 

 

 

国立情報学研究所

トップエスイープロジェクト

代表者 本位田 真一

 

1.      講座名

分散処理アプリ演習

 

2.      担当者

(株)NTTデータ 基盤システム事業本部 担当者

 

3.      本講座の目的

本講座では、主に演習を通して、実践的な大規模データの分散処理技術を習得する。

 

4.   本講座のオリジナリティ

NIIで構築した学習用クラウドを講義・演習用環境として活用し、実際の業務に役立つ事例を中心とした題材を使用することで、実践的に分散処理アプリケーション開発を体験できる。

 

5.   本講座で扱う難しさ

大規模データを効率的に処理し活用したいという要望が今後益々増えてくると考えられる。しかし、まだ一般的には大規模データの分散処理技術の適用事例を経験する機会が少なく、その技術・ノウハウを身に着けることが難しいと考えられる。

 

6.   本講座で習得する知識・技術

本講座で扱う具体的な分散処理技術は、Hadoopである。Hadoopの構成要素であるMapReduceHDFSの動作の仕組み、MapReduceアプリケーション(抽出、結合、集計・統計等)の実装方法、テスト方法、運用・監視方法、性能チューニング方法、およびHadoopの関連技術であるHivePigHBaseの利用方法等について学ぶ。

 

7.    前提知識

本講座の受講生は、以下の項目を習得済みであることが望ましい。

(1)    クラウドコンピューティングの基礎

(2)    Javaプログラミング

このうち、項目(1)はトップエスイー「クラウド入門」講座で習得可能である。

 


 

8.    講義計画

 

概要

1回: Hadoopの概要

-          Hadoopクラスタの構成

-          Hadoop環境構築

-          HDFSの基礎

-          MapReduceの基礎

-          MapReduceデザインパターンの紹介

-          Streaming API

2回: MapReduceアプリケーションの概要

-          文献単語解析アプリ(WordCount)の実行

3回: MapReduceアプリケーションの実装

-          MapReduceアプリケーション実装の基本

-          MapReduceアプリケーション実装の実践的なテクニック

-          代表的なMapReduceの適用領域(集計・統計処理)

4回: MapReduceアプリ演習

-          レコメンデーションアプリの実装

5回: Hadoopの動作詳細

-          HDFSの詳細

-          MapReduceの動作詳細

6回: 高度なMapReduceプログラミング

-          カウンター

-          ロギング

-          SequeceFileや圧縮ファイルの使い方

-          分散キャッシュ

-          Secondaryソート

-          MapReduceジョブとしての作法

7回: MapReduceアプリケーションのテスト

-          MRUnitの使い方

-          MapReduceアプリケーションのテストの考え方

8回: Hadoopの性能チューニング

-          MapReduceアプリケーションの性能チューニング

-          Hadoop設定の性能チューニング

-          JVMOS設定の性能チューニング

9回: Hadoopの運用・監視

-          Web UIでのMapReduceジョブ分析

-          Gangliaでのリソース情報とHadoopメトリクスの確認

-          MapReduceジョブ失敗時の復旧手順

-          運用の作法

10回: Hiveの概要

-          HiveHadoopとの関係

-          Hiveの用途

-          Hiveのアーキテクチャ

-          HiveRDBMSとの違い

11回: Hiveアプリ演習

-          HiveによるPOSデータ分析アプリの実装

-          HiveクエリのMapReduceへの変換の仕組み

-          Hiveクエリの高速化テクニック

12回: Pigの概要

-          PigHadoopとの関係

-          PigHiveとの違い

-          Pig Latinの書き方

-          Pigによるアプリの実装

13回: HBaseの概要

-          HBaseの特徴

-          HBaseの採用基準・適応領域

-          HBaseの機能

-          HBaseのアーキテクチャ

14回: HBaseスキーマ設計

-          HBaseスキーマ設計のポイント

15回: HBaseアプリ演習

-          MapReduceでのHBaseデータ操作の方法

-          twitterログ解析アプリの実装

 


 

詳細

12回: Hadoopアプリ事例(1) 文献単語解析

-          文献単語解析アプリを題材として、HadoopHDFSMapReduce)の基礎について解説し、演習を行う。

34回: Hadoopアプリ事例(2) レコメンデーション

-          レコメンデーションアプリを題材として、MapReduceアプリケーションの代表的な適用領域の一つである集計・統計処理について説明するとともに、MapReduceプログラミングの基礎および実践的な実装テクニックについて解説し、演習を行う。

-          まず、MapReduceアプリケーション実装の基本として、必要なクラスや設定等を説明する。次に、実践的な実装テクニックとして、MapReduceの使い分け、ジョブの分割指針等を解説する。さらに、代表的なMapReduceの適用領域として、集計・統計処理の例であるレコメンデーションについて取り上げ、レコメンデーションアプリを実装する演習を行う。

512回: Hadoopアプリ事例(3) POSデータ分析

-          POSデータ分析アプリを題材として、Hadoopの動作詳細、高度なMapReduceプログラミング、テスト方法、性能チューニング方法、運用・監視方法、HivePigによるアプリ開発方法について解説し、演習を行う。

-          まず、Hadoopの構成要素であるHDFSMapReduceについて詳細な挙動を説明する。Hadoopフレームワークとしてのデータの管理方法や分散処理の仕組みについて第1-2回で説明した内容を掘り下げて解説する。次に、POSデータを集計するためのアプリケーションをJavaでのMapReduceプログラミングにより実装する。この中で、HadoopMapReduceフレームワークが提供する各種機能を利用したテクニックについて解説する。そして実装したアプリケーションは、テストやデバッグを経て、分散環境で動作させる。このとき性能に関する観点やチューニングポイントについて説明する。更に、アプリケーションの動作状況を把握するためにHadoopの持つ統計情報をGangliaにて確認する。

-          SQLライクなクエリ言語をサポートするMapReduceのインターフェイス「Hive」について解説する。MapReduceとの関係やRDBMSとの違いを解説したのち、POSシステムを題材とした演習を行う。さらにHiveとの比較としてPigについても解説・演習を行う。

1315回: Hadoopアプリ事例(4) twitterログ解析

-          twitterログ解析アプリを題材として、HBaseを利用したアプリ開発方法について解説し、演習を行う。

-          まず、HBaseの概要として、Key-Valueストア、CAP定理、RDBMSHDFSとの比較、HBaseの採用基準・適用領域等について説明し、次に、HBaseの機能やアーキテクチャを解説する。また、HBaseのスキーマ設計のポイントについて説明する。さらに、HBaseを用いたアプリを実装する演習を行う。

 

※講義内容は若干変更になる可能性があります。


 

9.    教育効果

本講座を受講することにより、大規模データを処理する実務において、分散処理技術であるHadoopやその周辺技術の適用可否を適切に判断し、それを有効に使いこなすための実践的な技術を身につけることができる。

 

10.   使用ツール

     eduase Cloudおよび関連ツール

     Hadoopおよび関連ツール

 

11.   評価

演習課題レポート、出席日数を総合して評価する。

 

12.   実験及び演習

Hadoopの複数の適用事例(文献単語解析、レコメンデーション、POSデータ分析、twitterログ解析)を題材とした演習を用意している。

 

13.   教科書/参考書

     Tom White (玉川、兼田訳) Hadoop 2版」 (オライリー・ジャパン)

     太田、下垣、山下、猿田、藤井著 (濱野監修) Hadoop徹底入門」 (翔泳社)

     Jimmy LinChris Dyer (神林、野村監修、玉川訳) Hadoop MapReduceデザインパターン」 (オライリー・ジャパン)

     「平成21年度産学連携ソフトウェア工学実践事業(高信頼クラウド実現用ソフトウェア開発(分散制御処理技術等に係るデータセンターの高信頼化に向けた実証事業))事業成果報告書」 (経済産業省)