hadoop - 在hadoop中选择文件格式

标签 hadoop hive avro parquet orc

民间,
在Hadoop处理的不同阶段可以使用什么推荐的文件格式?

处理:我在 hive 中一直使用文本格式/ JSON serde进行处理。这是我执行ETL(转换)操作的登台表的良好格式吗?我应该使用更好的格式吗?
我知道Parquet / ORC / AVRO是专用格式,但是它非常适合ETL(Transformation)操作。另外,如果我使用诸如Snappy for Zlib之类的压缩技术,那将是一种推荐的方法(由于压缩,由于CPU使用率过高,我不想降低性能,如果压缩性能更好,请纠正我)

报告:取决于我的查询需求
聚合:
使用列式存储似乎是一个合理的解决方案。 Snappy压缩的Parquet是否合适(假设我的hadoop发行版是Cloudera)。
完成行提取
如果我的查询模式需要一行中所有列,那么选择列式存储是否是一个明智的决定?还是我应该选择AVRO文件格式

存档:对于归档数据,我计划使用AVRO,因为它可以以良好的压缩方式处理模式演变。

最佳答案

选择文件格式取决于用例。
您正在处理 hive 中的数据,因此下面是建议。

处理:像使用聚合和其他列级操作一样,使用ORC进行处理。这将有助于提高性能很多倍。

压缩:适当使用大小写将通过减少昂贵的IO操作时间来帮助提高性能。

如果用例是基于行的操作,则建议使用Avro。

希望这将有助于做出决定。

关于hadoop - 在hadoop中选择文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42413074/

相关文章:

java - Hadoop MapReduce的Java实现中如何创建全局变量?

hadoop - Elastic Map Reduce JSON导出到DynamoDB错误AttributeValue可能不包含空字符串

hadoop - Hive - 选择计数 (*) 不与 Tez 一起使用但与 MR 一起使用

r - 来自 Hive UDF/UDAF 的 JRI

java - Flink 1.4 AvroUtils 报错

java - 如何基于 Avro Schema 将 XML 转换为 AVRO?

hadoop - 数据节点上的 map 由谁运行?

hadoop - pig 没有运行 :Unhandled internal error. jline.Terminal.getTerminal()Ljline/Terminal;

amazon-web-services - 使用 Hadoop s3a 从 spark 作业写入 s3 时,指定的加密方法不受支持错误

hadoop - 如何将具有空格的列名传递给sqoop --map-column-java