MatsuLab. Lecture Note/sougouenshu2008

第2ラウンド解説

日程

基本木曜日の15:00〜。日程調整は随時連絡。

第1回

11/13

内容

  • 研究室紹介
    • 研究内容について
    • 研究室の生活について
    • 松岡研の資源について
  • 本roundの説明
    • HadoopとMapReduce?の簡単な説明
    • 課題の説明

課題
渡したMapReduce?の論文を読んでまとめてくること。また、Hadoopの仕組みについても自分なりに調べて まとめてくること。

第2回

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回

前回からのやり残し

  • MapReduce?を意識したWordCount?のJavaプログラムの提出
    • プログラムの中身の確認
    • ソースコードを視覚的に追えるようにするため、GNU globalというツールを用いてHTML化
      % (HTML化したいソースコードのトップディレクトリに移動)
      % htags -saF

第4回

前回からのやり残し

  • 自分で作ってきたWordCount?のjavaプログラムの性能を確認
    • 以下の要領で準備・計測を行う
      % (自分の利用しているhadoopのheadノードへログイン)
      % 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に結果が表示される

課題のすすめ方

  • 演習室のMACでプログラムの編集or自宅の環境で編集
    • 自宅の環境からMACへのファイルの移行(scp, mail, USB-memory, etc)
  • scpコマンドでプログラムをPrestoIIIに転送
  • sshコマンドでPrestoIIIにログイン
  • プログラムのコンパイル&実行

松岡研クラスタシステム:PrestoIIIの使い方

基本的にターミナルからの作業となる。(sshができる環境から)

  • ログイン
  1. ログインノード:nimbus.m.gsic.titech.ac.jpへログイン
    $ ssh   USER-ID@nimbus.m.gsic.titech.ac.jp
  2. 計算ノード: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の設定

  • ログイン後、以下のような手順で .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
Last-modified: 2008-12-11 (木) 15:32:11 (3288d)