我无法从https://cwiki.apache.org/confluence/display/Hive/Home
中找到任何记录的限制我的猜测是行数或列数没有限制。文件大小受文件系统限制。通过正确分区数据,我们还可以管理文件大小和文件数量。
谢谢。
答案 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%。