我必须读取HDFS中Avro文件中序列化的Avro记录。要做到这一点,我使用AvroKeyInputFormat,所以我的映射器能够使用读取记录作为键。
我的问题是,我如何控制分割大小?对于文本输入格式,它由定义以字节为单位的大小组成。这里我需要定义每次分割将包含多少条记录。
我想把输入目录中的每个文件都当作一个大文件来管理。我有使用组合文件输入格式吗?它能和Avro一起使用吗?
拆分遵循逻辑记录边界,最小和最大边界以字节为单位-即使拆分边界以字节为单位定义,文本输入格式也不会在文本文件中断行。
要将每个文件分割,您可以将最大分割大小设置为Long。或者您可以在代码中重写isSplitable方法并返回false。