//!!edit-lock!! [[MatsuLab. Lecture Note/sougouenshu2008]] *第2ラウンド解説 [#w814effc] #contents **日程 [#ja22eecd] 基本木曜日の15:00〜。日程調整は随時連絡。 **第1回 [#y1cc5141] 11/13 ''内容''~ -研究室紹介 --研究内容について --研究室の生活について --松岡研の資源について -本roundの説明 --HadoopとMapReduceの簡単な説明 --課題の説明 ''課題''~ 渡したMapReduceの論文を読んでまとめてくること。また、Hadoopの仕組みについても自分なりに調べて まとめてくること。 **第2回 [#td15eb33] 11/27 ''前回の確認'' -MapReduce -Hadoop ''課題''~ 指定されたディレクトリ以下のファイルを全て読み、単語の出現頻度を求めるプログラムを書け。 ファイルはテキストファイルとし、中身は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回 [#o5b90a10] ''前回からのやり残し''~ -MapReduceを意識したWordCountのJavaプログラムの提出 --プログラムの中身の確認 --ソースコードを視覚的に追えるようにするため、GNU globalというツールを用いてHTML化 % (HTML化したいソースコードのトップディレクトリに移動) % htags -saF **第4回 [#gfbde9cc] ''前回からのやり残し''~ -自分で作ってきたWordCountのjavaプログラムの性能を確認 --以下の要領で準備・計測を行う % (自分の利用しているhadoopのheadノードへログイン) % cp /home/chiba-t/kernel/linux-2.6.24.tgz /tmp % cd /tmp && tar zxf linux-2.6.24.tgz % cp /home/chiba-t/kernel/linux-2.6.24.tgz /work % cd /work && tar zxf linux-2.6.24.tgz % time java WordCount /tmp/linux-2.6.24 2> ~/time.txt > ~/result.txt --time.txtに実行時間、result.txtに結果が表示される **課題のすすめ方 [#n13a02b9] -演習室のMACでプログラムの編集or自宅の環境で編集 --自宅の環境からMACへのファイルの移行(scp, mail, USB-memory, etc) -scpコマンドでプログラムをPrestoIIIに転送 -sshコマンドでPrestoIIIにログイン -プログラムのコンパイル&実行 **松岡研クラスタシステム:PrestoIIIの使い方 [#iff20368] 基本的にターミナルからの作業となる。(sshができる環境から) -ログイン +ログインノード:nimbus.m.gsic.titech.ac.jpへログイン $ ssh USER-ID@nimbus.m.gsic.titech.ac.jp +計算ノード:padXXXへログイン $ rsh pad041 -ファイル転送(リモートコピー) --以下のコマンドを用いて演習室のmac上のカレントディレクトリにあるファイルtest.cをnimbusに転送 $ scp test.c USER-ID@nimbus.m.gsic.titech.ac.jp:/home/USER-ID/sougouenshu --『:』を忘れない --nimbus上の自分のhomeディレクトリ直下にある#sougouenshu"ディレクトリにファイルをコピー --ディレクトリ以下をコピーしたいときは、scp -r Dir とする! ***.bash_profileの設定 [#y5bb0f9c] -ログイン後、以下のような手順で .bash_profile実行する。".(ドット)"があることを忘れないように --nano .bash_profile export PATH=/usr/local/jdk1.6.0_11/bin:$PATH (Ctrl-xを押して、Yesとして保存して終了) --source .bash_profile ---java -versionと打ち込んで、java SE 1.6とかなんとかでてきたら成功