使用Spring Batch从HDFS读取文件
我必须编写一个Spring批处理,它将从HDFS读取文件并更新MySQL DB中的数据。
HDFS中的源文件包含一些CSV格式的报告数据。
有人可以指出我一个从HDFS读取文件的示例吗?
谢谢。
回答:
将FlatFileItemReader
在Spring Batch的适用于任何Spring框架Resource
的实现:
@Beanpublic FlatFileItemReader<String> itemReader() {
Resource resource; // get (or autowire) resource
return new FlatFileItemReaderBuilder<String>()
.resource(resource)
// set other reader properties
.build();
}
因此,如果您设法使一个Resource
指向HDFS文件的句柄,您就可以完成。
现在,为了拥有HDFS资源,您可以:
- 将Spring用于Hadoop。一旦配置了HDFS文件系统,您就可以通过以下方式从应用程序上下文中获取资源:
applicationContext.getResource("hdfs:data.csv");
Resource
使用Hadoop API来实现自己的实现(如Michael Simons的答案所示)。我看到有些人已经在这里做了
希望这可以帮助。
以上是 使用Spring Batch从HDFS读取文件 的全部内容, 来源链接: utcz.com/qa/417834.html