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でサンプルプログラムの作成