对行数、列数、文件大小是否有配置单元理论和实际限制? [英] Is there a Hive theoretical & practical limitation on number of rows, number of columns, file size?

查看:28
本文介绍了对行数、列数、文件大小是否有配置单元理论和实际限制?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在https://cwiki.apache.org/confluence/display/Hive/Home

中找不到任何记录的限制

我的猜测是没有行数或列数的限制。文件大小受文件系统的限制。通过正确划分数据,我们还可以管理文件大小和文件数量。

谢谢您。

推荐答案

列数:

在这个JIRA中,他们成功地使用15K列和20K列测试了ORC文件的OOM(使用默认的1 GB堆)。文本文件可能会存储更多列:https://issues.apache.org/jira/browse/HIVE-7250-JIRA是固定的BTW。

最大文件大小。

文件分块存储,挡路ID很长,最大为2^63。 如果您的挡路大小为64MB,则最大大小为512yotabyte。因此,实际上没有限制,但还有其他Hadoop限制。

这个问题太宽泛,不能完全回答,但在这项工作中关于Hadoop可伸缩性的重要结论很少:http://c59951.r51.cf2.rackcdn.com/5424-1908-shvachko.pdf

命名空间限制。

命名空间由文件和目录组成。目录定义了命名空间的分层结构。文件(数据容器)分为大块(每个128MB)。

名称节点的元数据由分层名称空间和挡路组成 到数据节点映射,数据节点映射确定挡路的物理位置。 为了保持较高的元数据操作率,HDFS保持整体 RAM中的命名空间。name-node持久存储命名空间 图像及其修改日志存储在外部存储器中,例如本地或 远程硬盘。 命名空间映像和日志包含HDFS文件和目录 名称及其属性(修改和访问时间、权限 配额),包括文件的挡路ID。 为了存储1亿个文件(参考2亿 块)名称节点应至少具有60 GB的RAM。

磁盘空间。

对于1亿个文件,每个文件平均有1.5个数据块,我们将拥有 文件系统中有2亿个数据块。如果挡路的最大大小为128MB 并且每个挡路被复制三次,那么所需的总磁盘空间 存储这些块的容量接近60PB。

群集大小。

为了容纳1亿个文件引用的数据 命名空间,一个HDFS群集需要10,000个节点,配备8个 1TB硬盘。此类群集的总存储容量为60PB

内部加载。

上挡路报告和心跳处理的内部负载 总存储容量为60 PB的10,000节点HDFS群集将 占用总名称节点处理容量的30%。

更新:

所有这些都适用于Hadoop 2中的本机HDFS。

虽然在重写和删除之后,S3最终在读取方面是一致的,但Amazon S3坚持要更具可扩展性,几乎没有限制。HADOOP-13345为AmazonS3存储的S3A客户端添加了一项可选功能:能够将DynamoDB表用作快速一致的文件和目录元数据存储。

还有其他Hadoop Compatible FileSystems (HCFS)

另外,在Hadoop 3.0中支持擦除编码,物理磁盘使用量将减少一半(即3倍磁盘空间消耗将减少到1.5倍),容错水平将提高50%。这一新的Hadoop 3.0功能将为Hadoop客户节省大量硬件基础架构成本,因为他们可以将Hadoop群集的大小减半并存储相同数量的数据,或者继续使用当前的Hadoop群集硬件基础架构并使用HDFS EC存储双倍数量的数据。阅读有关HDFS擦除编码和其他Hadoop3 HDFS enhancements.

的更多信息

这篇关于对行数、列数、文件大小是否有配置单元理论和实际限制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆