Я создаю программу анализа журнала в MapReduce. Для чего я использую данные MaxMind GeoIP. Теперь я хочу поместить данные GeoIP в распределенный кеш. Я разрабатываю свое приложение в eclipse. Вот что я делаюHadoop 1.0.4 Ошибка распределенного кэша
Job job = new Job();
DistributedCache.addCacheFile(new URI(args[3]), job.getConfiguration());
Где args [3] будет иметь путь.
Здесь я использую его
protected void setup(Context context) {
try {
//String dbfile = "GeoIP//GeoIPCountry.dat";
org.apache.hadoop.conf.Configuration conf = context.getConfiguration();
Path[] dbfile = DistributedCache.getLocalCacheFiles(conf);
// GEOIP_MEMORY_CACHE - load database into memory, faster
// performance but uses more memory, Increase the JVM heap Size
cl = new LookupService(dbfile.toString(), LookupService.GEOIP_MEMORY_CACHE);
} catch (Exception e) {
System.err.println("Error opening GeoIP data file.");
System.err.println(e);
System.exit(2);
}
}
Но во время работы я получаю следующее сообщение об ошибке
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method addCacheFile(URI, Configuration) in the type DistributedCache is not applicable for the arguments (URI, Configuration)
Я не могу понять, что это неправильно. Пожалуйста, помогите
Можете ли вы показать свой импорт в той части, когда вы добавляете свой файл в кеш? –