2013-05-30 3 views
1

Я создаю программу анализа журнала в 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) 

Я не могу понять, что это неправильно. Пожалуйста, помогите

+0

Можете ли вы показать свой импорт в той части, когда вы добавляете свой файл в кеш? –

ответ

2

Сво подбирая неправильные классы:

The method addCacheFile(URI, Configuration) in the type DistributedCache is not applicable for the arguments (URI, Configuration) 

проверить вас импорт для URI и Configuration классов.

Согласно documentation, они должны быть java.net.URI и org.apache.hadoop.conf.Configuration

Я думаю, вы могли бы перепутались с javax.security.auth.login.Configuration класса от JDK. То не должно быть использовано здесь.

+0

Это сработало за вашу помощь! – Ananda

Смежные вопросы