HDFS与HIVE分区

时间:2017-07-18 14:04:59

标签: hadoop hive hdfs cloudera partitioning

这可能是一件简单的事情,但我很难找到答案。当数据加载到HDFS时,其分布并加载到多个节点中。数据被分区和分发。
对于HIVE,可以单独选择PARTITION数据。我很确定即使您没有提及PARTITION选项,在加载配置单元表时,数据也会被拆分并分发到集群上的不同节点。在这种情况下,此命令还有什么额外的好处。

2 个答案:

答案 0 :(得分:1)

总结注释并针对Hadoop v1-v2.x:

  • 逻辑分区,例如如上面的注释中所述,与字符串中的日期或字段相关的内容仅在hive,hcat或在hadoop上运行的其他sql或并行引擎中使用支持分区的文件格式(Parquet,ORC,CSV可以,但是例如XML很难或几乎无法分区)

  • 逻辑分区(例如在hive,hcat中)可以代替没有索引的

  • 通过在hdfs的安装过程中定义分区,可以在本地或分布式节点上
  • 对hdfs存储进行分区”,请参见https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.5/bk_cluster-planning/content/ch_partitioning_chapter.html

  • HDFS能够在节点上“平衡”或“分配”块

  • 从本质上讲,HDFS无法根据块的内容将块拆分并分发到文件夹,只能将块整体移到另一个节点

  • 块(不是文件!)根据HDFS复制因子在HDFS集群中复制:

    $ hdfs fsck /
    

(感谢David和Kris在上面的讨论,也解释了其中的大部分内容,请将此帖子作为摘要)

答案 1 :(得分:0)

HDFS分区:主要处理节点上文件的存储。对于容错,将在群集中复制文件(使用复制因子)

Hive分区:这是Hive中的一种优化技术。 在Hive DB内部,在存储表格时,为了获得更好的查询性能,我们进行分区。 分区提供有关数据如何存储在配置单元中以及如何读取数据的信息。 可以在表数据的列级别上控制Hive分区。