我无法从https://cwiki.apache.org/confluence/display/Hive/Home找到任何记录的限制
我的猜测是行数或列数没有限制。文件大小受文件系统限制。通过正确分区数据,我们还可以管理文件大小和文件数量。
谢谢。
列数:
\n\n在此 jira 中,他们成功使用 15K 列进行了测试,20K 列导致 ORC 文件出现 OOM(默认为 1GB 堆)。文本文件可能可以存储更多列:https://issues.apache.org/jira/browse/HIVE-7250 - jira 已修复。
\n\n最大文件大小。
\n\n文件以块的形式存储,块 ID 很长,最大为 2^63。\n如果您的块大小为 64 MB,则最大大小为 512 yottabytes。因此,实际上没有限制,但 Hadoop 还有其他限制。
\n\n这个问题太宽泛,无法完整回答,但这项工作中关于 Hadoop 可扩展性的重要结论很少:http://c59951.r51.cf2.rackcdn.com/5424-1908-shvachko.pdf
\n\n命名空间限制。
\n\n命名空间由文件和目录组成。目录定义命名空间的层次结构。文件\xe2\x80\x94数据容器\xe2\x80\x94被分为大块(每个128MB)。
\n\n名称节点\xe2\x80\x99s 元数据由分层命名空间和块到数据节点的映射组成,\n这决定了物理块位置。\n为了保持较高的元数据操作率,HDFS 保留整个\n命名空间在内存中。名称节点将命名空间映像及其修改日志持久存储在外部存储器(例如本地或远程硬盘驱动器)中。命名空间映像和日志包含 HDFS 文件和目录名称及其属性(修改和访问)时间、权限、\n配额),包括文件的块 ID。为了存储 1 亿个文件(引用 2 亿个块),名称节点应该至少有 60GB 的 RAM。
\n\n磁盘空间。
\n\n由于 1 亿个文件每个平均有 1.5 个块,因此文件系统中将有 2 亿个块。如果最大块大小为 128MB,并且每个块都被复制 3 次,则存储这些块所需的总磁盘空间将接近 60PB。
\n\n簇的大小。
\n\n为了容纳 1 亿个文件命名空间引用的数据,一个 HDFS 集群需要 10,000 个节点,配备 8 个 1TB 硬盘。这样一个集群的总存储容量为60PB
\n\n内部负载。
\n\n总存储容量为 60 PB 的 10,000 个节点的 HDFS 集群上的块报告和心跳处理的内部负载将消耗名称节点总处理容量的 30%。
\n\n更新:
\n\n对于Hadoop 2中的本机 HDFS 来说,这一切都是正确的。
\n\nAmazon S3 声称具有更高的可扩展性,几乎不受限制,尽管 S3 最终在重写和删除后的读取方面保持一致。HADOOP-13345 向 Amazon S3 存储的 S3A 客户端添加了一项可选功能:能够使用 DynamoDB 表作为文件和目录元数据的快速且一致的存储。
\n\n还有其他Hadoop 兼容文件系统 (HCFS)。
\n\n此外,由于Hadoop 3.0中对纠删码的支持,物理磁盘使用量将减少一半(即3倍的磁盘空间消耗将减少到1.5倍),并且容错级别将提高50%。这一新的 Hadoop 3.0 功能将为 hadoop 客户在硬件基础设施上节省大量资金,因为他们可以将 hadoop 集群的大小减少一半并存储相同数量的数据,或者继续使用当前的 hadoop 集群硬件基础设施并存储双倍的数据量与 HDFS EC。阅读有关 HDFS 擦除编码和其他Hadoop3 HDFS 增强功能的更多信息。
\n| 归档时间: |
|
| 查看次数: |
3848 次 |
| 最近记录: |