hadoop - 在Hadoop中使用Avro输入格式控制拆分大小

标签 hadoop mapreduce avro

我必须阅读在HDFS的avro文件中序列化的Avro记录。为此,我使用了AvroKeyInputFormat,因此我的映射器能够将读取的记录用作键。

我的问题是,如何控制分割尺寸?对于文本输入格式,它取决于以字节为单位的大小。在这里,我需要定义每个拆分将包含多少条记录。

我想像一个大文件一样管理输入目录中的每个文件。我可以使用CombineFileInputFormat吗?是否可以在Avro中使用它?

最佳答案

拆分遵循逻辑记录边界,最小和最大边界以字节为单位-即使拆分边界以字节为单位定义,文本输入格式也不会在文本文件中中断行。

若要将每个文件拆分,可以将最大拆分大小设置为Long.MAX_VALUE,也可以在代码中覆盖isSplitable方法并返回false。

关于hadoop - 在Hadoop中使用Avro输入格式控制拆分大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055697/

相关文章:

hadoop - Snappy文件压缩将计数器值添加到数据中

java - MapReduce Couchdb

google-cloud-platform - 无法在 Dataproc 2.0 镜像中创建 Avro 表

java - 使用 Avro 文件分页

hadoop - 用于了解数据库表大小的 Impala 命令

hadoop - 在Cloudera中添加更多数据节点

hadoop - 在Eclipse中配置hadoop 2.5

Hadoop 一个Map和多个Reduce

hadoop - Pig 和 Hive 中生成的映射器数量

hadoop - 如何防止将空 Avro 文件提交到 HDFS?