Hadoop×Kuromoji

Hadoop×Kuromojiで形態素解析するサンプルプログラムを作ってみました。(疑似分散)

環境

苦労した点・良くわからない点

つまづき

Eclipseのプロジェクトにおいて
右クリック→ビルド・パス→ビルドパスの構成→外部Jar追加
でKuromojiのjarファイルを追加し、Kuromojiを使用するHadoopプログラムを書いて実行してみたところ、

Error: java.lang.ClassNotFoundException: org.atilika.kuromoji.Tokenizer
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at map.Map1.map(Map1.java:17)
	at map.Map1.map(Map1.java:1)
	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:652)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:328)
	at org.apache.hadoop.mapred.Child$4.run(Child.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:396)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:742)
	at org.apache.hadoop.mapred.Child.main(Child.java:211)

と・・・

結果的に

上記のようにKuromojiのjarファイルを外部Jar追加することに加えて下記のことをすることで動きました。
Eclipseのプロジェクトにおいて
右クリック→新規→フォルダー→親フォルダーを作成したプロジェクトとし、フォルダー作成(libとする)
をし、その作成したフォルダーの中にKuromojiのjarファイルを入れました。
なぜこれで動くのか、なぜKuromojiのjarファイルを外部jar追加するだけでは動かないのか、わかっていません。
同じ現象になった方がいらっしゃったら教えてください。

今日やったこと

  • Hadoop×Kuromojiでサンプルプログラムの作成