从 hdfs 读取文件引用风暴

read file reference storm from hdfs

你好,我想问一下。我已经开始了解 Apache Storm。是否可以风暴读取hdfs中的数据文件??

示例:我在 hdfs 上的目录 /user/hadoop 中有一个数据 txt 文件。是否有可能风暴读取该文件。??谢谢

因为当我尝试 运行关闭风暴时,如果文件不存在,我会收到一条错误消息。当我尝试通过从本地存储读取文件来 运行 它时,它成功了

 >>> Starting to create Topology ...
---> Read Class: FileReaderSpout , 1387957892009
---> Read Class: Split , 1387958291266
---> Read Class: Identity , 247_Identity_1387957902310_1
---> Read Class: SubString , 1387964607853
---> Read Class: Trim , 1387962789262
---> Read Class: SwitchCase , 1387962333010
---> Read Class: Reference , 1387969791518
File /reff/test.txt .. not exists ..

当然可以!以下是如何从 HDFS 读取文件的示例:

import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

// ...stuff...

FileSystem fs = FileSystem.get(URI.create("hdfs://prodserver"), new Configuration());
String hdfspath = "/apps/storm/conf/config.json";
Path path = new Path();
if (fs.exists(path)) {
   InputStreamReader reader = new InputStreamReader(fs.open(path));
   // do stuff with the reader
} else {
   LOG.info("Does not exist {}", hdfspath);
}

这不使用任何特定于 storm 的东西,只使用 Hadoop API (hadoop-common.jar)。

您收到的错误看起来像是因为您的文件路径不正确。