MatsuLab. Lecture Note/sougouenshu2008
第2ラウンド解説 †
日程 †
基本木曜日の15:00〜。日程調整は随時連絡。
第1回 †
11/13
内容
- 研究室紹介
- 研究内容について
- 研究室の生活について
- 松岡研の資源について
- 本roundの説明
- HadoopとMapReduce?の簡単な説明
- 課題の説明
課題
渡したMapReduce?の論文を読んでまとめてくること。また、Hadoopの仕組みについても自分なりに調べて
まとめてくること。
第2回 †
11/27
前回の確認
課題
指定されたディレクトリ以下のファイルを全て読み、単語の出現頻度を求めるプログラムを書け。
ファイルはテキストファイルとし、中身はasciiコードでエンコードされていると仮定してよい。
単語とは、a-z, A-Zのアルファベットで表されているものとする。その他の文字はすべて単語の区切り文字(空白文字)として扱う。また、大文字小文字は同一視する。例えば、
public void main(String argv[])
int main(int argc, *argv[])
は、
"public": 1, "void": 1, "main": 2, "string": 1, "argv": 2, "int": 1, "argc": 1, "char": 1
となる。それぞれ、検出した単語とその出現回数を表す。
対象ディレクトリはコマンドラインからの引数として渡す。すなわち、main関数のargvを通して指定する。指定されたディレクトリを再帰的にたどり、全ファイルについて頻度計算を行う。頻度はファイル単位ではなく、全ファイルをまとめた結果を返せばよい。
結果の出力
1行につき「単語 頻度」とスペース区切りで出力せよ。ただし、出現頻度順の降順でソートし、かつ同一頻度の場合は辞書順でソートせよ。例えば、上の例の場合では、
argv 2
main 2
argc 1
char 1
int 1
public 1
string 1
void 1
となる。
第3回 †
前回からのやり残し
- MapReduce?を意識したWordCount?のJavaプログラムの提出
第4回 †
前回からのやり残し
- 自分で作ってきたWordCount?のjavaプログラムの性能を確認
課題のすすめ方 †
- 演習室のMACでプログラムの編集or自宅の環境で編集
- 自宅の環境からMACへのファイルの移行(scp, mail, USB-memory, etc)
- scpコマンドでプログラムをPrestoIIIに転送
- sshコマンドでPrestoIIIにログイン
- プログラムのコンパイル&実行
松岡研クラスタシステム:PrestoIIIの使い方 †
基本的にターミナルからの作業となる。(sshができる環境から)
- ログインノード:nimbus.m.gsic.titech.ac.jpへログイン
$ ssh USER-ID@nimbus.m.gsic.titech.ac.jp
- 計算ノード:padXXXへログイン
$ rsh pad041
.bash_profileの設定 †
- ログイン後、以下のような手順で .bash_profile実行する。".(ドット)"があることを忘れないように