gpt4 book ai didi

hadoop - 从压缩文件中将数据加载到 Hive 的推荐方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 16:10:26 27 4
gpt4 key购买 nike

我遇到了 this page on CompressedStorage在文档中,这让我有点困惑。

根据该页面,如果我的输入文件(在 AWS s3 上)是压缩的 gzip 文件,我应该首先使用选项 STORED AS TextFile 加载数据,然后使用选项 创建另一个表code>STORED AS SEQUENCEFILE 并将数据插入其中。这真的是推荐的方式吗?

或者我是否可以使用选项STORED AS SEQUENCEFILE 将数据直接加载到表集中?

如果前一种方法真的是推荐的方法,是否有任何进一步的解释为什么是这样?

最佳答案

您必须以其格式加载数据。这意味着,如果您的文件是文本文件,那么您应该将它们加载为 TextFile,如果您的文件是序列文件,则应将它们加载为 SEQUENCEFILE。

对于 Hive,压缩格式无关紧要,因为它会使用文件扩展名作为引用动态解压缩它们(如果在 Hadoop 中正确配置了压缩编解码器)。

您分享的页面中的建议是使用序列文件比使用压缩文本文件更好。这是因为 Gzip 文件不可拆分,如果您有一个非常大的 Gzip 文件,则所有文件都必须仅使用一个 Mapper 进行处理,不允许在集群节点之间并行分配工作量。

然后 Hive 的建议是将压缩文本文件转换为序列文件以避免该限制。这仅与性能有关。

如果您的文件很小,那没关系(< 1 Hadoop block 大小 - 默认为 128MB)。

关于hadoop - 从压缩文件中将数据加载到 Hive 的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32615859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com