民间,
在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/