在hadoop流媒体中,我可以将文件写入reducer中的本地光盘吗?
例如,在C ++的reducer中,如果我编码
String link = "https://query2.finance.yahoo" +
".com/v7/finance/options/AEIS?formatted=true&lang=en-US®ion=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";
创建的文件在哪里?
答案 0 :(得分:0)
Hadoop流媒体将使用Hadoop OutputFormatters
,例如TextOutputFormat
。因此,获取特定输出行为的一种方法(除内置格式提供的方法之外)是编写自定义输出格式,并覆盖getRecordWriter(TaskAttemptContext context)
方法。
我不确定直接从reduce写入本地磁盘是否可行,可能没问题。你需要试一试。这样做的主要问题是,在群集中,您不知道减速器将运行哪些节点,并且您失去了HDFS提供的大量可靠性。
答案 1 :(得分:0)
reducer无法直接写入本地fs。默认情况下,reducer会将输出存储在hdfs-site.xml中提供的文件系统中。