使用Spring批处理从HDFS读取文件

使用Spring批处理从HDFS读取文件,spring,spring-boot,hdfs,spring-batch,Spring,Spring Boot,Hdfs,Spring Batch,我必须编写一个Spring批处理,它将从HDFS读取一个文件,并更新MySQL数据库中的数据 HDFS中的源文件包含一些CSV格式的报告数据 有人能给我举一个从HDFS读取文件的例子吗 谢谢。Spring批处理中的FlatFileItemReader可与任何Spring框架资源实现协同工作: @Bean public FlatFileItemReader<String> itemReader() { Resource resource; // get (or autowire

我必须编写一个Spring批处理,它将从HDFS读取一个文件,并更新MySQL数据库中的数据

HDFS中的源文件包含一些CSV格式的报告数据

有人能给我举一个从HDFS读取文件的例子吗


谢谢。

Spring批处理中的
FlatFileItemReader
可与任何Spring框架
资源
实现协同工作:

@Bean
public FlatFileItemReader<String> itemReader() {
    Resource resource; // get (or autowire) resource
    return new FlatFileItemReaderBuilder<String>()
            .resource(resource)
            // set other reader properties
            .build();
}
@Bean
公共FlatFileItemReader itemReader(){
Resource Resource;//获取(或自动连线)资源
返回新的FlatFileItemReaderBuilder()
.资源(资源)
//设置其他读卡器属性
.build();
}
因此,如果您设法使
资源
句柄指向HDFS文件,您的任务就完成了

现在,为了拥有HDFS资源,您可以:

  • 使用。一旦配置了HDFS文件系统,就可以使用
    applicationContext.getResource(“HDFS:data.csv”);从应用程序上下文获取资源
  • 使用Hadoop API实现您自己的
    资源
    (如Michael Simons的答案所示)。我看到有些人已经这样做了

希望这能有所帮助。

顺便说一句,Spring for Hadoop项目为Spring批处理提供了一些扩展,您可能会发现这些扩展很有用。看这里:很好。一定有来自Spring投资组合的东西。很酷,它使用了
资源
-API。