在hadoop流媒體中,我可以將文件寫入減速器中的本地光盤嗎?在hadoop streaming中,我可以將文件寫入reducer中的本地光盤嗎?
例如,在由C++減速,如果我的代碼
ofstream fout(***);
fout << "asdf";
這是否有道理?由fout
創建的文件將成爲哪裏?
在hadoop流媒體中,我可以將文件寫入減速器中的本地光盤嗎?在hadoop streaming中,我可以將文件寫入reducer中的本地光盤嗎?
例如,在由C++減速,如果我的代碼
ofstream fout(***);
fout << "asdf";
這是否有道理?由fout
創建的文件將成爲哪裏?
Hadoop流將使用Hadoop OutputFormatters
,如TextOutputFormat
。因此,獲得特定輸出行爲的一種方式(除了由內置格式提供的行爲)將是編寫自定義輸出格式,並覆蓋getRecordWriter(TaskAttemptContext context)
方法。
我不確定是否直接從reduce寫入本地磁盤可能會起作用,可能沒有問題。你需要給它一個去。這樣做的主要問題是,在一個集羣中,你不知道還原器將運行在哪個節點上,並且你失去了HDFS提供的許多可靠性。
如果fs.default不是file:///在hdfs-site.xml中,reducer不能直接寫入本地fs。默認情況下,reducer會將輸出存儲在hdfs-site.xml中提供的文件系統中。