Распределенный кэш пряжи, без картографа / редуктора

Я не могу получить доступ к файлам в распределенном кеше в hadoop 2.6. Ниже приведен фрагмент кода. Я пытаюсь разместить файл pattern.properties, который в args[0] в распределенном кеше пряжи

Configuration conf1 = new Configuration();
Job job = Job.getInstance(conf1);
DistributedCache.addCacheFile(new URI(args[0]), conf1);

Кроме того, я пытаюсь получить доступ к файлу в кеше, используя ниже:

Context context =null;
URI[] cacheFiles = context.getCacheFiles();  //Error at this line
System.out.println(cacheFiles);

Но я получаю следующую ошибку в строке, упомянутой выше:

java.lang.NullPointerException

Я не использую класс Mapper. Это просто код искрового потока для доступа к файлу в кластере. Я хочу, чтобы файл распространялся в кластере. Но я не могу взять это из HDFS. Любая помощь будет оценена.

1 ответ

Решение

Я не знаю, правильно ли я понял ваш вопрос.

У нас было несколько локальных файлов, к которым нам нужно обращаться в потоковых заданиях Spark.

Мы использовали эту опцию: -

time spark-submit --files /user/dirLoc/log4j.properties#log4j.properties 'остальные другие параметры'

Другой способ, которым мы попробовали, был:- SparkContext.addFile()

Другие вопросы по тегам