分散処理アプリ演習
平成24年度シラバス
2012年1月13日
国立情報学研究所
トップエスイープロジェクト
代表者 本位田 真一
分散処理アプリ演習
(株)NTTデータ 基盤システム事業本部 担当者
本講座では、主に演習を通して、実践的な大規模データの分散処理技術を習得する。
NIIで構築した学習用クラウドを講義・演習用環境として活用し、実際の業務に役立つ事例を中心とした題材を使用することで、実践的に分散処理アプリケーション開発を体験できる。
大規模データを効率的に処理し活用したいという要望が今後益々増えてくると考えられる。しかし、まだ一般的には大規模データの分散処理技術の適用事例を経験する機会が少なく、その技術・ノウハウを身に着けることが難しいと考えられる。
本講座で扱う具体的な分散処理技術は、Hadoopである。Hadoopの構成要素であるMapReduceやHDFSの動作の仕組み、MapReduceアプリケーション(抽出、結合、集計・統計等)の実装方法、テスト方法、運用・監視方法、性能チューニング方法、およびHadoopの関連技術であるHive、Pig、HBaseの利用方法等について学ぶ。
本講座の受講生は、以下の項目を習得済みであることが望ましい。
(1) クラウドコンピューティングの基礎
(2) Javaプログラミング
このうち、項目(1)はトップエスイー「クラウド入門」講座で習得可能である。
概要
第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設定の性能チューニング
-
JVM、OS設定の性能チューニング
第9回: Hadoopの運用・監視
-
Web UIでのMapReduceジョブ分析
-
Gangliaでのリソース情報とHadoopメトリクスの確認
-
MapReduceジョブ失敗時の復旧手順
-
運用の作法
第10回: Hiveの概要
-
HiveとHadoopとの関係
-
Hiveの用途
-
Hiveのアーキテクチャ
-
HiveとRDBMSとの違い
第11回: Hiveアプリ演習
-
HiveによるPOSデータ分析アプリの実装
-
HiveクエリのMapReduceへの変換の仕組み
-
Hiveクエリの高速化テクニック
第12回: Pigの概要
-
PigとHadoopとの関係
-
PigとHiveとの違い
-
Pig Latinの書き方
-
Pigによるアプリの実装
第13回: HBaseの概要
-
HBaseの特徴
-
HBaseの採用基準・適応領域
-
HBaseの機能
-
HBaseのアーキテクチャ
第14回: HBaseスキーマ設計
-
HBaseスキーマ設計のポイント
第15回: HBaseアプリ演習
-
MapReduceでのHBaseデータ操作の方法
-
twitterログ解析アプリの実装
詳細
第1~2回: Hadoopアプリ事例(1) 文献単語解析
-
文献単語解析アプリを題材として、Hadoop(HDFS、MapReduce)の基礎について解説し、演習を行う。
第3~4回: Hadoopアプリ事例(2) レコメンデーション
-
レコメンデーションアプリを題材として、MapReduceアプリケーションの代表的な適用領域の一つである集計・統計処理について説明するとともに、MapReduceプログラミングの基礎および実践的な実装テクニックについて解説し、演習を行う。
-
まず、MapReduceアプリケーション実装の基本として、必要なクラスや設定等を説明する。次に、実践的な実装テクニックとして、MapとReduceの使い分け、ジョブの分割指針等を解説する。さらに、代表的なMapReduceの適用領域として、集計・統計処理の例であるレコメンデーションについて取り上げ、レコメンデーションアプリを実装する演習を行う。
第5~12回: Hadoopアプリ事例(3) POSデータ分析
-
POSデータ分析アプリを題材として、Hadoopの動作詳細、高度なMapReduceプログラミング、テスト方法、性能チューニング方法、運用・監視方法、HiveやPigによるアプリ開発方法について解説し、演習を行う。
-
まず、Hadoopの構成要素であるHDFSとMapReduceについて詳細な挙動を説明する。Hadoopフレームワークとしてのデータの管理方法や分散処理の仕組みについて第1回-第2回で説明した内容を掘り下げて解説する。次に、POSデータを集計するためのアプリケーションをJavaでのMapReduceプログラミングにより実装する。この中で、HadoopのMapReduceフレームワークが提供する各種機能を利用したテクニックについて解説する。そして実装したアプリケーションは、テストやデバッグを経て、分散環境で動作させる。このとき性能に関する観点やチューニングポイントについて説明する。更に、アプリケーションの動作状況を把握するためにHadoopの持つ統計情報をGangliaにて確認する。
-
SQLライクなクエリ言語をサポートするMapReduceのインターフェイス「Hive」について解説する。MapReduceとの関係やRDBMSとの違いを解説したのち、POSシステムを題材とした演習を行う。さらにHiveとの比較としてPigについても解説・演習を行う。
第13~15回: Hadoopアプリ事例(4) twitterログ解析
-
twitterログ解析アプリを題材として、HBaseを利用したアプリ開発方法について解説し、演習を行う。
-
まず、HBaseの概要として、Key-Valueストア、CAP定理、RDBMSやHDFSとの比較、HBaseの採用基準・適用領域等について説明し、次に、HBaseの機能やアーキテクチャを解説する。また、HBaseのスキーマ設計のポイントについて説明する。さらに、HBaseを用いたアプリを実装する演習を行う。
※講義内容は若干変更になる可能性があります。
本講座を受講することにより、大規模データを処理する実務において、分散処理技術であるHadoopやその周辺技術の適用可否を適切に判断し、それを有効に使いこなすための実践的な技術を身につけることができる。
・ eduase Cloudおよび関連ツール
・ Hadoopおよび関連ツール
演習課題レポート、出席日数を総合して評価する。
Hadoopの複数の適用事例(文献単語解析、レコメンデーション、POSデータ分析、twitterログ解析)を題材とした演習を用意している。
・ Tom White著 (玉川、兼田訳) 「Hadoop 第2版」 (オライリー・ジャパン)
・ 太田、下垣、山下、猿田、藤井著 (濱野監修) 「Hadoop徹底入門」 (翔泳社)
・ Jimmy Lin、Chris Dyer著 (神林、野村監修、玉川訳) 「Hadoop MapReduceデザインパターン」 (オライリー・ジャパン)
・ 「平成21年度産学連携ソフトウェア工学実践事業(高信頼クラウド実現用ソフトウェア開発(分散制御処理技術等に係るデータセンターの高信頼化に向けた実証事業))事業成果報告書」 (経済産業省)