2015-04-18 3 views
0

Я пытаюсь написать приложение пряжи, используя весеннюю загрузку. Просто, чтобы понять, я не использую функциональность пружинной пряжи. Вместо этого я использую простой весенний загрузочный материал для работы с пряжей. По какой-то причине, когда я загружаю объект new YarnConfiguration() в приложение весенней загрузки, он загружает только файлы core-site.xml и yarn-site.xml, а не mapred, hdfs и все эквиваленты по умолчанию xml. Если я не использую весеннюю загрузку, загружаются все файлы xml. Проблема с загрузкой xml-файлов заключается в том, что приложение не может подключиться к диспетчеру ресурсов. Я предполагаю, что это происходит из-за некоторых изменений в пути к классам, вызванных весной загрузки, но я точно не знаю, как их обойти.пряжа конфигурации в приложении весенней загрузки

Вот моя конфигурация

@Configuration 
@EnableConfigurationProperties 
@EnableAutoConfiguration 
@ComponentScan 
public class Application implements CommandLineRunner { 

    @Bean 
    public org.apache.hadoop.conf.Configuration conf() throws IOException { 
     YarnConfiguration conf = new YarnConfiguration(); 
     log.info("conf " + conf.toString()); 
     log.info("fs " + FileSystem.get(conf)); 
     return new YarnConfiguration(); 
    } 

выход журнала показывает, что только 2 XML-файлы загружаются в конфигурации и, следовательно, в фсе, загруженный в следующей строке является LocalFileSystem не HDFS.

Любые идеи ...

ответ

0

Есть несколько возможных проблем здесь:

Что касается локальной файловой системы вместо HDFS: YarnConfiguration должен загрузить ядро-site.xml, ваше ядро-сайт. XML должен иметь что-то вроде:

<property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://NAMENODE:8020</value> 
    </property> 

Кроме того, это ядро-site.xml должно быть в пути к классам приложения, пожалуйста, обратите внимание, что Hadoop банка также имеет/пустое ядро-site.xml по умолчанию, так что у вас есть в убедитесь, что у вас есть приоритет.

Что касается Пряжа и mapreduce: Пряжа - это общая структура управления ресурсами и планирования, mapreduce - это лишь один из видов приложений, которые можно запускать на пряжу. Это причина, почему YarnConfiguration не будет загружать MapReduce - * XML, но эти файлы будут загружены MapReduce кода при попытке отправить задание MapReduce:.

Configuration configuration = new YarnConfiguration()  
Job job = Job.newInstance(configuration) 
job.getConfiguration(); // this configuration should have mapred-*.xml files loaded 
job.submit(); 
+0

Спасибо за ответ. Я понимаю разницу между пряжей и MR, и в этом отношении я в основном ожидаю, что файл hdfs-site.xml будет загружен вместе с YarnConfiguration. Поскольку hdfs-site.xml не загружается, я думал, что вместо hdfs используется локальная файловая система. Я проверю, имеет ли core-site.xml свойство defaultFS – adeelmahmood

+0

правильно, FS определено в файле core-site.xml и предполагается, что оно будет загружено YarnConfiguration –

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