//!!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とかなんとかでてきたら成功

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS