package com.mongodb.hadoop.examples.sensors;
import com.mongodb.hadoop.MongoInputFormat;
import com.mongodb.hadoop.MongoOutputFormat;
import com.mongodb.hadoop.util.MapredMongoConfigUtil;
import com.mongodb.hadoop.util.MongoConfigUtil;
import com.mongodb.hadoop.util.MongoTool;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.util.ToolRunner;
import java.net.UnknownHostException;
public class Logs extends MongoTool {
public Logs() throws UnknownHostException {
Configuration conf = new Configuration();
setConf(conf);
boolean mrv1Job;
try {
FileSystem.class.getDeclaredField("DEFAULT_FS");
mrv1Job = false;
} catch (NoSuchFieldException e) {
mrv1Job = true;
}
if (mrv1Job) {
MapredMongoConfigUtil.setInputFormat(getConf(), com.mongodb.hadoop.mapred.MongoInputFormat.class);
MapredMongoConfigUtil.setOutputFormat(getConf(), com.mongodb.hadoop.mapred.MongoOutputFormat.class);
} else {
MongoConfigUtil.setInputFormat(getConf(), MongoInputFormat.class);
MongoConfigUtil.setOutputFormat(getConf(), MongoOutputFormat.class);
}
MongoConfigUtil.setInputURI(getConf(), "mongodb://localhost:27017/mongo_hadoop.logs");
MongoConfigUtil.setOutputURI(getConf(), "mongodb://localhost:27017/mongo_hadoop.logs_aggregate");
MongoConfigUtil.setMapper(getConf(), LogMapper.class);
MongoConfigUtil.setReducer(getConf(), LogReducer.class);
MongoConfigUtil.setCombiner(getConf(), LogCombiner.class);
MongoConfigUtil.setOutputKey(getConf(), Text.class);
MongoConfigUtil.setOutputValue(getConf(), IntWritable.class);
}
public static void main(final String[] pArgs) throws Exception {
System.exit(ToolRunner.run(new Logs(), pArgs));
}
}