多个节点中的 Hive 表 - 处理

Posted

技术标签:

【中文标题】多个节点中的 Hive 表 - 处理【英文标题】:Hive Tables in multiple nodes - Processing 【发布时间】:2016-03-18 07:05:38 【问题描述】:

我对 Hive 有概念上的疑问。我知道 Hive 是一个运行在 Hadoop 之上的数据仓库工具。我们知道 Hadoop 有一个分布式文件系统 -HDFS。

假设,我有一个主人和三个奴隶。现在,我在 HiveQL 中创建了一个表 employees。这张桌子太大了,不能放在一台机器上。因此它必须存储在所有四台机器中。我怎样才能加载这样的数据。是否应该手动完成。或者像我在 master 中输入“LOAD DATA ...”,它会自动分配给所有机器。

【问题讨论】:

它将自动分布在数据节点上。 Namenode 只会保存它的元数据。 【参考方案1】:

Hive 使用 HDFS 作为仓库来存储数据。所以HDFS概念用于数据存储。

HDFS 具有主/从架构。 HDFS 集群由单个 NameNode 组成,这是一个管理文件系统命名空间并控制客户端对文件的访问的主服务器。此外,还有许多 DataNode,通常集群中的每个节点一个,它们管理连接到它们运行的​​节点的存储。 HDFS 公开了一个文件系统命名空间,并允许将用户数据存储在文件中。 在内部,一个文件被分成一个或多个块,这些块存储在一组 DataNode 中。 NameNode 执行文件系统命名空间操作,例如打开、关闭和重命名文件和目录。它还确定块到 DataNode 的映射。 DataNode 负责处理来自文件系统客户端的读取和写入请求。 DataNode 还根据 NameNode 的指令执行块创建、删除和复制。

详情请咨询HDFS architecture。

【讨论】:

以上是关于多个节点中的 Hive 表 - 处理的主要内容,如果未能解决你的问题,请参考以下文章

Redis中的跳跃表

如何处理hive中的数据倾斜

使用 Hadoop MapReduce 处理不同节点上的不同文件

如何在所有可用节点中运行 Hive mapreduce 任务?

单节点hadoop集群上的实验练习

Hive数据倾斜解决思路