使用Spring Batch从HDFS读取文件

时间:2018-10-12 00:58:55

标签: spring spring-boot hdfs spring-batch

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

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

有人可以指出我一个从HDFS读取文件的示例吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

Spring Batch中的Program received signal SIGSEGV, Segmentation fault. 0x0000000000000001 in ?? () (gdb) bt #0 0x0000000000000001 in ?? () #1 0x00007fffffffe4ca in ?? () #2 0x0000000000000000 in ?? () 可与任何Spring Framework FlatFileItemReader实现一起使用:

Resource

因此,如果您设法使@Bean public FlatFileItemReader<String> itemReader() { Resource resource; // get (or autowire) resource return new FlatFileItemReaderBuilder<String>() .resource(resource) // set other reader properties .build(); } 句柄指向HDFS文件,那么您就完成了。

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

  • 使用Spring for Hadoop。配置HDFS文件系统后,您将能够使用Resource
  • 从应用程序上下文中获取资源。
  • 使用Hadoop API来实现自己的applicationContext.getResource("hdfs:data.csv");(如Michael Simons的答案所示)。我看到有些人已经这样做了here

希望这会有所帮助。