HadoopでJSONデータを扱う
JavaでJSONを扱う際に外部ライブラリを必要としますが、
Hadoop1.0.3にはjacksonのライブラリが含まれているみたい
Jackson JSON Processor - Home
hadoop-core-1.0.3.pomの一部
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.0.1</version> </dependency>
注意しなければいけないのはバージョンが1.0.1であるということ
(現時点でjacksonの最新は1.9.9)
依存関係に違うバージョンのjacksonのライブラリを含めると競合してしまうので
Hadoop1.0.3でjacksonを使用する場合は1.0.1を使います
以下コマンドライン引数にJSONデータを渡し設定を取得する例
{ "char_encoding" : "UTF-8" }
Configuration conf = getConf(); ObjectMapper mapper = new ObjectMapper(); JsonParser parser = new JsonFactory().createJsonParser(args[2]); JsonNode json = mapper.readTree(parser); conf.setStrings("jp.yustam.encoding", json.get("char_encoding").getValueAsText());