是否有Hive理论&行数,列数,文件大小的实际限制?

时间:2017-09-21 00:16:31

标签: hive

我无法从https://cwiki.apache.org/confluence/display/Hive/Home

中找到任何记录的限制

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

谢谢。

1 个答案:

答案 0 :(得分:2)

列数:

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

最大文件大小。

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

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

命名空间限制。

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

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

磁盘空间。

我们将拥有1亿个文件,每个文件平均有1.5个块 文件系统中有2亿个块。如果最大块大小为128MB 并且每个块都被复制三次,然后是所需的总磁盘空间 存储这些块接近60PB。

群集大小。

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

内部负载。

阻止报告和心跳处理的内部负载 10,000个节点的HDFS集群,总存储容量为60 PB 消耗总名称节点处理能力的30%。

相关问题