我正在尝试使用弹簧引导来编写纱线应用。只是为了说清楚我没有使用弹簧纱功能。相反,我使用普通弹簧靴材料来处理纱线。出于某种原因,当我在弹簧引导应用程序中加载new YarnConfiguration()
对象时,它只加载core-site.xml和yarn-site.xml,而不是mapred,hdfs和所有默认的xml等价物。如果我不使用spring boot,那么所有的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文件是在配置加载,因此,在下一行加载的fs是LocalFileSystem不HDFS。
任何想法...
感谢您的答复。我理解纱线和MR之间的区别,在这方面,我基本上期待hdfs-site.xml文件与YarnConfiguration一起加载。由于hdfs-site.xml没有加载,我认为这是导致使用本地文件系统而不是hdfs。我将检查core-site.xml是否包含defaultFS属性 – adeelmahmood
正确,FS在core-site.xml中定义,并且应该由YarnConfiguration加载 –