在hadoop流媒体中,我可以将文件写入reducer中的本地光盘吗?

时间:2016-08-01 01:58:06

标签: hadoop mapreduce hadoop-streaming reducers

在hadoop流媒体中,我可以将文件写入reducer中的本地光盘吗?

例如,在C ++的reducer中,如果我编码

String link = "https://query2.finance.yahoo" +
            ".com/v7/finance/options/AEIS?formatted=true&lang=en-US&region=US&corsDomain=finance.yahoo.com";
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.readTree(new URL(link));
JsonNode calls = jsonNode.findValue("calls");
List<Option> callOptions = mapper.readValue(calls.traverse(), new TypeReference<List<Option>>() {});

这有意义吗? ofstream fout(***); fout << "asdf"; 创建的文件在哪里?

2 个答案:

答案 0 :(得分:0)

Hadoop流媒体将使用Hadoop OutputFormatters,例如TextOutputFormat。因此,获取特定输出行为的一种方法(除内置格式提供的方法之外)是编写自定义输出格式,并覆盖getRecordWriter(TaskAttemptContext context)方法。

我不确定直接从reduce写入本地磁盘是否可行,可能没问题。你需要试一试。这样做的主要问题是,在群集中,您不知道减速器将运行哪些节点,并且您失去了HDFS提供的大量可靠性。

答案 1 :(得分:0)

如果fs.default不是hdfs-site.xml中的file:///,则

reducer无法直接写入本地fs。默认情况下,reducer会将输出存储在hdfs-site.xml中提供的文件系统中。