Распределенный кэш пряжи, без картографа / редуктора
Я не могу получить доступ к файлам в распределенном кеше в 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()