我要求按原样处理文件,这意味着文件内容应按文件中显示的原样处理。例如:我有一个文件,大小是700mbs。我们如何确保文件按其外观进行处理,因为它取决于数据节点的可用性。在某些情况下,如果datanode中的任何一个处理文件速度很慢(低配置)。解决这个问题的一种方法是在文件中添加唯一的id/密钥,但是我们不想在文件中添加任何新的内容。有什么想法:)
niwlg2el1#
您可以保证只有一个Map程序通过编写自己的Map程序来计算文件的内容 FileInputFormat 哪一套 isSplitable 错误的。例如。
FileInputFormat
isSplitable
public class WholeFileInputFormat extends FileInputFormat<Text, BytesWritable> { @Override protected boolean isSplitable(FileSystem fs, Path filename) { return false; } @Override public RecordReader<Text, BytesWritable> getRecordReader( InputSplit split, JobConf job, Reporter reporter) throws IOException { return new WholeFileRecordReader((FileSplit) split, job); } }
更多的例子,我想推荐一个github项目。根据hadoop版本的不同,可能需要做一些细微的更改。
1条答案
按热度按时间niwlg2el1#
您可以保证只有一个Map程序通过编写自己的Map程序来计算文件的内容
FileInputFormat
哪一套isSplitable
错误的。例如。更多的例子,我想推荐一个github项目。根据hadoop版本的不同,可能需要做一些细微的更改。