2. 自己紹介 太田一樹 東京大学情報理工学系研究科コンピューター科学専攻石川研究室 M1 HPC 系の話 ( 並列ファイルシステム ) 個人サイト http://kzk9.net/ http://kzk9.net/blog/ 興味 OS, ネットワーク , I/O, 分散システム OSS 的活動 I was a committer of KDE, uim, SigScheme copybench? Kernel Reporter
3. とは? Google の基盤ソフトウェアのクローン Google File System, MapReduce Yahoo Research の Doug Cutting 氏が開発 元々は Lucene のサブプロジェクト Doug の子供の持っているぬいぐるみの名前 Java で記述 !
4. Google 関連 参考論文 & スライド The Google File System Sanjay Ghemawat, Howard Gobioff, and Shu-Tak Leong, SOSP 2003 MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat, SOSP 2004 Parallel Architectures and Compilation Techniques (PACT) 2006, KeyNote http://www.cs.virginia.edu/~pact2006/program/mapreduce-pact06-keynote.pdf
5. Hadoop 参考文献 Hadoop 公式サイト http://hadoop.apache.org/core/ Wiki: http://wiki.apache.org/hadoop/ インストール方法?チュートリアル?プレゼン資料など Running Hadoop on Ubuntu Linux http://www.michael-noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_(Single-Node_Cluster) http://www.michael-noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_%28Multi-Node_Cluster%29 Hadoop, hBase で構築する大規模データ処理システム on Codezine http://codezine.jp/a/article/aid/2448.aspx
22. MapReduce の実行フロー Data Map Data Map Data Map Reduce Reduce Data Data Shuffle <k, v>* <k, v>* <k, v>* <k, v>* ? <k’, v’>* <k’, <v’>*>* ? <k’’, v’’>* <k, v>* ? <k’, v’>* <k, v>* ? <k’, v’>* <k’, <v’>*>* ? <k’’, v’’>*
23. 例 : ワードカウント Data Map Data Map Data Map Reduce Reduce Data Data Shuffle foo foo foo bar bar buzz 入力文書 : doc1
24. 例 : ワードカウント Data Map Data Map Data Map Reduce Reduce Data Data Shuffle foo foo foo bar bar buz 入力文書 : doc1 doc1: foo doc1: foo doc1: foo doc1: bar doc1: bar doc1: buz
25. 例 : ワードカウント Data Map Data Map Data Map Reduce Reduce Data Data Shuffle foo foo foo bar bar buz 入力文書 : doc1 doc1: foo doc1: bar doc1: bar doc1: buz doc1: foo doc1: foo
26. 例 : ワードカウント Data Map Data Map Data Map Reduce Reduce Data Data foo foo foo bar bar buz 入力文書 : doc1 doc1: foo doc1: bar doc1: bar doc1: buz doc1: foo doc1: foo foo: 1 foo: 1 bar: 1 foo: 1 bar: 1 buz: 1
27. 例 : ワードカウント Data Map Data Map Data Map Reduce Reduce Data Data foo foo foo bar bar buz 入力文書 : doc1 foo: 1 foo: 1 bar: 1 foo: 1 bar: 1 buz: 1 bar: <1, 1> buz: <1> foo: <1, 1, 1>
28. 例 : ワードカウント Data Map Data Map Data Map Reduce Reduce Data Data foo foo foo bar bar buz 入力文書 : doc1 bar: <1, 1> buz: <1> foo: <1, 1, 1>
29. 例 : ワードカウント Data Map Data Map Data Map Reduce Reduce Data Data foo foo foo bar bar buz 入力文書 : doc1 foo: <1, 1, 1> bar: <1, 1> buz: <1> foo: 3 bar: 2 buz: 1
30. 例 : ワードカウント Data Map Data Map Data Map Reduce Reduce Data Data foo foo foo bar bar buz 入力文書 : doc1 bar: 2 buz: 1 foo: 3
31. 例 : ワードカウント 擬似コード map(string key, string value) { foreach word in value: emit(word, 1); } reduce(string key, vector<int> values) { int result = 0; for (int i = 0; I < values.size(); i++) result += values[i]; emit(key, result); }
32. MapReduce の特徴 データ通信 各 Map 処理、 Reduce 処理は完全に並列に実行可能 マシンを増やせばその分処理能力が増える 耐故障性 失敗した Map, Reduce 処理は他のノードで再実行される 遅い Map, Reduce 処理についても同じ ローカリティ データのある場所で計算を始めれば、ネットワークを使う必要がなくなる Moving Computation is Cheaper Than Moving Data