RhinoでHadoopのConfigurationを叩いてみる

大名古屋#04 : ATND, 大名古屋#05 : ATNDでRhinoでHadoopを使うと言ったので、ちまちまと予習をしとります。最近Rhinoリハビリとか言ってるのは、その一環。

一応、Rhinoを選んだ経緯としては、

  1. 名古屋の連中は関数型言語/Scala大好きっ子ばかり。当然Scalaでコード書くよね。
  2. みんなScalaだとおもろくないから、他の言語使おう。
  3. Jythonでも使うか→jythoncのサポートが打ち切られているのでやめた(jar作るのがめんどくさそう)
  4. じゃー、Rhinoかなー。JavaScript書き慣れてるし、昔は結構使いこなしてたし。

まぁ動的言語を選択するのであれば、Groovyを使ったほうが素直な気がしないでもない。

というわけで、とりあえずHadoop本5章の最初に載っているConfigurationのサンプルコードをRhinoで書いてみた。

コード

var hadoop = new JavaImporter();
hadoop.importClass(org.apache.hadoop.conf.Configuration);
hadoop.importClass(org.apache.hadoop.fs.Path);

var conf = new hadoop.Configuration();
conf.addResource(new hadoop.Path("configuration-1.xml"));

print(conf.get("color"));
print(conf.getInt("size", 0));
print(conf.get("breadth", "wide"));

動かすときはこんな感じで。classpath指定するのがめんどくさいすね。

$ java -cp js.jar;hadoop-common-0.21.0.jar;commons-logging-1.1.1.jar \
> org.mozilla.javascript.tools.shell.Main \
> sample5-1.js