Hive with Hadoop high availability



我想了解hive如何知道哪个hadoop名称节点处于活动状态以及当活动名称节点失败时会发生什么

Hive 通过 metatool 配置为指向为 HA HDFS 配置的dfs.nameservices。 请参阅 https://cwiki.apache.org/confluence/display/Hive/Hive+MetaTool。 dfs.nameservices 是一个逻辑地址,而实际的名称节点配置为 dfs.ha.namenodes.[id]

至于哪个Namenode处于活动状态,状态存储在Zookeeper中。 当活动名称节点发生故障时,将在配置的时间(默认值为 5 秒,ha.zookeeper.session-timeout.ms )后触发故障转移。 需要屏蔽脚本,并触发备用名称节点变为活动状态。

在 hdfs HA 环境中,节点名称应该是一个逻辑名称(例如 hdfs://logicalnamenode)。我们需要将 Hive 配置为使用 HA。为此,您需要使用 metatool 命令更改 hive 名称节点配置。

  1. 列出当前 NN 配置
    ~# 元工具 -listFSRoot
    hdfs://namenode:8020/user/hive/warehouse
  2. 以下命令将使用逻辑名称更新旧的 NN 配置
    metatool -updateLocation hdfs://logicalnamenode hdfs://namenode:8020 -tablePropKey avro.schema.url

最新更新