impala 数据存储分配在哪里?

Posted

技术标签:

【中文标题】impala 数据存储分配在哪里?【英文标题】:Where is impala data storage allocated ? 【发布时间】:2015-02-22 18:04:37 【问题描述】:

如果表完全由 impala 管理,是否有任何指定目录供 impala 存储数据?

还是由datanode将数据分配到由datanode目录配置的HDFS中的任何位置,例如/dfs/dn?

如果我的应用程序运行的节点没有运行 datanode,我应该运行 impalad 是最佳实践吗?这样我就可以只使用 localhost 连接到 impala 了吗?否则我将连接到特定的主机和端口?

【问题讨论】:

【参考方案1】:

对于由 Impala 管理的表,数据存储在 Hive Metastore 仓库目录中,该目录由 hive-site.xml 中的 Hive Metastore 配置属性“hive.metastore.warehouse.dir”配置。这是 HDFS 中的一个目录,因此数据节点的底层存储位置由 HDFS 配置决定。

您应该在运行数据节点的节点上运行 Impala 守护程序,以便扫描可以与数据位于同一位置。您的应用程序应该连接到远程 Impala 守护程序。在集群中分发请求通常是一个好主意,甚至是必要的,具体取决于工作负载,以避免单个协调器 impalad 的瓶颈。很多人使用 HAProxy 来做这件事,详情见this documentation。

【讨论】:

如果我的节点不运行datanode(因为它不提供hdfs存储),impalad不应该运行我的节点吗?如果是这样,如果有 500 个主机,datanode 和 impalad 都在同一主机上运行,​​我如何确定为 impala 连接到哪个主机?我应该使用循环吗?这是否意味着我的节点只会安装 impala 而不会运行 impalad? 没错。您应该只在具有数据节点的节点上运行 Impala 守护程序。在集群中分发请求通常是一个好主意,甚至是必要的,具体取决于工作负载,以避免单个协调器 impalad 的瓶颈。很多人使用 HAProxy 来做到这一点:cloudera.com/content/cloudera/en/documentation/core/v5-2-x/…

以上是关于impala 数据存储分配在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

Hive和Impala加载和存储数据功能曝光

数据存储在哪里?

static的变量是放在哪里

Hive 和 Impala 集成是不是可行?

inode 存储在哪里?

impala使用指南