2010-06-21 PLDAとHadoop
■ NLP.app
Yi Wang, Hongjie Bai, Matt Stanton, Wen-Yen Chen and Edward Y. Chang. PLDA: Parallel latent Dirichlet allocation for large-scale applications. In Proc. of the Fifth International Conference on Algorithmic Aspects in Information and Management (AAIM 2009), pages 301-314. 2009.
をshuhei-kさんが紹介. 内容はシンプルでLDAを並列で処理するという話. MPI使った方法とMapReduce使った方法と2つについて書いてあったが, 超大規模にしなければ,実用上はそこまで大差ないみたい.
去年トピックモデルについて一通り勉強したおかげて, 今日の話は割とすんなりと理解できた. 去年の今頃と比べたら飛躍的な進歩で,これは,自分でも褒めても良いと思う. しかーし,これでカンペキかと言えば全くそんなことないので, さらなる高みを目指してがんばるよ!
■ はじめてのHadoop
はじめてHadoopをさわってみる. 今まで勉強会でHadoopの話を聞いてはいたものの, やっぱ自分で触ってみないと,よく分からないね. 能動的に動くって大切だなぁ.
さて,触って見たところ,改造自体は超簡単. しかし久々にJavaを触って, プロトタイプ宣言やデフォルト引数が無かったり色々と勝手が違って戸惑った. やっぱ他の言語メインで触ってたら,鈍るよなー. 前まではJavaは結構好きだったんだけど,今はC++の方が馴染んでいるかも.
最初の一歩
何から手をつけていいか分からない人も多いかと思うので(自分がそうだった), コマンドをはっておく. なおhadoopはインストール済みで,適当な作業用ディレクトリを作成
- cloud9の利用
wget http://www.umiacs.umd.edu/~jimmylin/dist/cloud9-r0.2.tar.gz tar xf cloud9-r0.2.tar.gz cd umd-hadoop-core rm -r hadoop ←インストール済みの場合はHADOOP_HOMEに対してシンボリックリンクをはってやればよい ln -s /usr/lib/hadoop ./hadoop vi build.xml パスを修正 <!-- <fileset dir="hadoop/hadoop-0.20.1"> --> <fileset dir="hadoop"> ant gunzip ./data/bible+shakes.nopunc.gz hadoop dfs -mkdir /user/yuta-h hadoop dfs -put ./data/bible+shakes.nopunc /user/yuta-h hadoop jar cloud9.jar edu.umd.cloud9.demo.DemoWordCount /user/yuta-h/bible+shakes.nopunc demo 5 1
- デモの改造
cd src/dist/edu/umd/cloud9/ mkdir my cp ./demo/DemoWordCount.java my/InvertedIndexing.java vi my/InvertedIndexing.java 適当にいじる. 「package」を「edu.umd.cloud9.my」に class名をInvertedIndexingに などなど... cd ../../../../../ ant hadoop jar cloud9.jar edu.umd.cloud9.my.InvertedIndexing /user/yuta-h/bible+shakes.nopunc demo 5 1
おおー。hadoopずっと試してみたかったんでこれを機会に閲覧しながら、試してみようと思います!
最初動かすまでちょっと難しいけど,
意外と,触ってみると簡単なのでぜひ〜!