SlideShare a Scribd company logo
1 of 21
Download to read offline
MapReduce
プログラミング⼊入⾨門
「DevLOVE  ⻩黄⾊色い象使いが、獄⻑⾧長に出会うまで。」  
〜~象、邂逅編〜~  
2011-‐‑‒05-‐‑‒11
変更履歴
•2011/05/11
•新規作成。
•2011/09/20
•変更履歴を追加した。
•try-hadoop-mapreduce-javaへのリン
クを追加した。
•MapReduce入門へのリンクを追加した。
n3104
•能登 諭(のと さとし)
•Hadoop好きのJava使いです。
•twitter : @n3104
•株式会社トップゲート所属
最初に
このスライドは try-hadoop-mapreduce-
java のソースについて解説している。
http://code.google.com/p/try-hadoop-
mapreduce-java/
WordCount
•MapReduceの基本
•Mapとは
•Reduceとは
•Combinerとは
•旧APIと新API
MapReduceの基本
MapReduce入門参照
http://www.slideshare.net/n3104/
mapreduce-7587216
旧APIと新API
•0.20系から新APIが登場した。
•0.20系は移行途中で一部のAPIしか移行され
ていない。0.21系は移行済み。
•周辺プロダクトやEMRは0.20系、つまり旧
APIにか対応していない。
•現状は旧APIを使うのが無難。
AverageAgeOf
Employee
•MapReduceの仕組みを再確認。
•MapperとReducerの出力の型が異なる場
合は設定が必要になる。
•Writableについて
Writable
•Hadoopは独自のシリアライゼーションの仕
組みを持つ。
•象本の4章に詳しく載っている。
•無料ならひしだまさんのメモ参照。
•http://www.ne.jp/asahi/hishidama/home/tech/apache/
hadoop/Writable.html
平均給与を求めてみましょう。
AverageAgeOf
Department
•Mapperの出力はkey毎にReducerでまと
められる。
•Reducerの処理自体は
AverageAgeOfEmployeeと同じ。key
の型が異なるだけ。
部門ごとの平均給与を
求めてみましょう。
SortByAgeUsing
HashPartitioner
•Mapperの出力がReducerの入力として渡
される際にkeyでソートされる。
•ソートには部分ソートと全体ソートがある。
•ソートの制御にはPartionerと
WritableComparatorを利用する。
給与でソートしてみましょう。
SortByAgeUsing
TotalOrderPartitioner
•全体ソートにはTotalOrder-Partitioner
を利用する。
•InputSamplerを利用して実データをサン
プリングする。
•サンプリングデータの配布には
DistributedCacheを利用する。
SortByDeptAndAge
UsingSecondarySort
•複数のキーでソートするにはSecondary
Sortを利用する。
•SortByDeptAndAgeUsing-
Comparatorのように単一キーのソートで
も実現可能。
MergeByDepartment
UsingMultipleInputs
•ジョインには複数の種類のファイルが必要。
MultipleInputsを利用することで単一の
MapReduceジョブで複数の種類のファイル
を同時に処理できる。
JoinWithDeptName
UsingReduceSideJoin
•Reduce-Side Joinは以下の2つを利用す
る。
•MultipleInputs
•Secondary Sort
テストについて
•ユニットテスト
•Hadoop徹底入門ではMRUnit。
•象本ではMockitoを紹介。
•象本はLocalJobRunnerなど色々紹介。
•まだ確認できてません^^;
書籍について
•Hadoop徹底入門はHadoopの入門書とし
てとてもいい。
•象本はMapReduceプログラミングの入門
書としてとてもいい。
•実践的な内容だと「Data-Intensive Text
Processing with MapReduce」?
これであなたも象使い(^^)

More Related Content

More from Satoshi Noto

大晦日のメッセージ配信の裏側
大晦日のメッセージ配信の裏側大晦日のメッセージ配信の裏側
大晦日のメッセージ配信の裏側Satoshi Noto
 
Fullbokをがっつり使ってみた
Fullbokをがっつり使ってみたFullbokをがっつり使ってみた
Fullbokをがっつり使ってみたSatoshi Noto
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Satoshi Noto
 
Hiveハンズオン
HiveハンズオンHiveハンズオン
HiveハンズオンSatoshi Noto
 
Hadoop概要説明
Hadoop概要説明Hadoop概要説明
Hadoop概要説明Satoshi Noto
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中Satoshi Noto
 

More from Satoshi Noto (6)

大晦日のメッセージ配信の裏側
大晦日のメッセージ配信の裏側大晦日のメッセージ配信の裏側
大晦日のメッセージ配信の裏側
 
Fullbokをがっつり使ってみた
Fullbokをがっつり使ってみたFullbokをがっつり使ってみた
Fullbokをがっつり使ってみた
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?
 
Hiveハンズオン
HiveハンズオンHiveハンズオン
Hiveハンズオン
 
Hadoop概要説明
Hadoop概要説明Hadoop概要説明
Hadoop概要説明
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中
 

MapReduceプログラミング入門

Editor's Notes

  1. \n
  2. \n
  3. 15分\n実際にプログラムを実行し、処理イメージもセットで説明。\n
  4. \n
  5. 10分\n実際にプログラムを実行し、処理イメージもセットで説明。\n
  6. 10分\n実際にプログラムを実行し、処理イメージもセットで説明。\n
  7. \n
  8. 10分\n実際にプログラムを実行し、処理イメージもセットで説明。\n
  9. \n
  10. 10分\n実際にプログラムを実行し、処理イメージもセットで説明。\n
  11. \n
  12. 5分\nこの時点で1時間経過しているようであれば飛ばす\n
  13. 15分\n\n
  14. 5分\n\n
  15. 15分\n\n
  16. \n
  17. \n\n
  18. \n