hadoop - 查找用于 hadoop 文件的压缩编解码器

标签 hadoop compression avro parquet sequencefile

给定一个压缩文件,写在 hadoop 平台上,格式如下:

  • 阿芙罗
  • Parquet
  • 序列文件

如何找到使用的压缩编解码器?假设使用以下压缩编解码器之一(并且文件名中没有文件扩展名):

  • 活泼
  • Gzip(Avro 不支持)
  • Deflate(Parquet 不支持)

最佳答案

Parquet 的 Java 实现包括 parquet-tools 实用程序,它提供了多个命令。查看其 documentation page用于构建和入门。各个命令的更详细描述由 parquet-tools 本身打印。您要查找的命令是 meta。这将显示各种元数据,包括压缩。您可以找到示例输出 here , 显示 SNAPPY 压缩。

请注意,压缩算法不必在整个文件中都相同。不同的列 block 可以使用不同的压缩,因此压缩编解码器没有单个字段,而是每个列 block 一个。 (列 block 是属于一个行组的列的一部分。)然而,在实践中,您可能会发现所有列 block 都使用相同的压缩编解码器。

Avro 有一个类似的工具,叫做 avro-tool。我不太熟悉它,但它 has一个 getmeta 命令,它应该向您显示所使用的压缩编解码器。

关于hadoop - 查找用于 hadoop 文件的压缩编解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52908660/

相关文章:

configuration - Hadoop Configuration.addDefaultResource() 不工作

c# - 发送压缩响应的 Web API 问题

PHP+Imagick - PNG压缩

hadoop - ParquetWriter 在 java 独立程序中输出空的 parquet 文件

java - 未处理的内部错误。 org.apache.hadoop.mapred.jobcontrol.JobControl.addJob

hadoop - 有没有办法使用 webhdfs REST API 检查文件是否存在?

hadoop - 如何建立Hbase的RegionServer来掌握

javascript - 压缩未压缩的 JS 文件

java - 解析文本行并添加到 MySQL

java - 如何在单个 MapReduce 中读取多种类型的 Avro 数据