我认为您使用的是旧 API,因为我在您的课堂上看到了这一行,
public static class Map extends MapReduceBase implements Mapper {}
因此,对此,首先,您需要在 JobConf 对象中设置 Web 服务 URL,然后,从 JobConf 实例中检索映射器中的相同 URL。
此外,确保您的 Web 服务 url 可以从所有 Hadoop 节点访问
例如-
在 main() 函数中,您可以执行以下操作,
JobConf job = (JobConf) getConf();
job.set("webservice.url", "http://your_address_whatsoever");
在 Mapper 类中 -
String url = null;
public void configure(JobConf job) {
url = (String) job.get("webservice.url");
}
但我建议你使用新的 API 来让事情变得简单——
在 main() 你可以简单地去,
Configuration conf = getConf();
set("webservice.url", "http://your_address_whatsoever");
而映射器类的 map() 函数只是做
String url = context.getConfiguration().get("webservice.url");