我必须阅读在HDFS的avro文件中序列化的Avro记录。为此,我使用了AvroKeyInputFormat,因此我的映射器能够将读取的记录用作键。
我的问题是,如何控制分割尺寸?对于文本输入格式,它取决于以字节为单位的大小。在这里,我需要定义每个拆分将包含多少条记录。
我想像一个大文件一样管理输入目录中的每个文件。我可以使用CombineFileInputFormat吗?是否可以在Avro中使用它?
最佳答案
拆分遵循逻辑记录边界,最小和最大边界以字节为单位-即使拆分边界以字节为单位定义,文本输入格式也不会在文本文件中中断行。
若要将每个文件拆分,可以将最大拆分大小设置为Long.MAX_VALUE,也可以在代码中覆盖isSplitable方法并返回false。
关于hadoop - 在Hadoop中使用Avro输入格式控制拆分大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055697/