【发布时间】:2014-09-24 05:39:15
【问题描述】:
我是 hadoop mapreduce 的新手。我正在尝试在 map reduce 中实现搜索,所以我的输入文件是这样的
key1 value1,value3
key2 value2,value6
我想查找用户将作为命令行参数传递的键的值列表。为此,我的主(驱动程序)类是这样的
public static void main(String[] args) {
JobClient client = new JobClient();
JobConf conf = new JobConf(NameSearchJava.class);
// write now I am trying with writing search key in code (Joy),later I'll
//try to pass argument while running job from hadoop.
conf.set("searcKey", "Joy");
conf.setJobName("Search");
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(Text.class);
FileInputFormat.setInputPaths(conf, new Path(args[0]));
FileOutputFormat.setOutputPath(conf, new Path(args[1]));
conf.setMapperClass(SearchMapper.class);
conf.setReducerClass(SearchReducer.class);
client.setConf(conf);
try {
JobClient.runJob(conf);
} catch (Exception e) {
e.printStackTrace();
}
}
}
and my configure function is:
String item ;
public void configure(JobConf job) {
{
item = job.get("test");
System.out.println(item);
System.err.println("search" + item);
}
在Mapper或Reducer中应该在哪里写configure函数。如何使用这个item参数在reducer中进行比较。这是hadoop中取参数的正确方法吗?
【问题讨论】:
-
你想在 unix 中做一些类似 grep 的事情吗?
-
您想使用 mapreduce 在文件中查找字符串吗?