在Kerberized HDP 2.6.2环境中安装Hive 2.1.0交互式查询(LLAP)

时间:2017-10-17 09:19:12

标签: hadoop hive apache-zookeeper kerberos hadoop2

我在HDP 2.6.2群集上安装/激活Hive 2.1.0时遇到了很多问题。但最后我得到了它的工作,所以我想分享与社区有关的步骤。我从不同的来源获得了这些步骤,我将在每一步下面提到。我的规格:

  • 群集HDP 2.6.2(hortonworks)环境
  • 的Kerberos
  • Hive 1.2.1000 - > Hive 2.1.0

步骤1:启用Hive交互式查询

按照Hortonworks网站上的步骤操作。这包括启用YARN抢占和其他一些纱线设置。调整YARN后,您可以通过Ambari启用Hive Interactive Query。您还必须指定一个默认队列,该队列至少占总集群容量的20%。

Source

第2步:与Kerberos相关的设置

确保将以下设置添加到Ambari中的自定义hiveserver2-交互式网站。其中$ {REALMNAME}是LDAP领域的名称。

hive.llap.zk.sm.keytab.file=/etc/security/keytabs/hive.llap.zk.sm.keytab
hive.llap.zk.sm.principal=hive/_HOST@${REALMNAME}
hive.llap.daemon.keytab.file=/etc/security/keytabs/hive.service.keytab
hive.llap.daemon.service.principal=hive/_HOST@${REALMNAME}

现在你必须在每个 YARN节点上放置这两个keytabs(基本上是相同的keytabs)。这可以手动完成或通过Ambari(Kerberos服务)完成。确保这些关键标记为chown hive:hadoop,并且chmod 440(读取组)。

注意:您还需要所有这些节点上的用户配置单元

Source

第3步:Zookeeper配置

可能是Zookeeper无法识别Hive,这会在尝试启动HiveServer2 Interactive时出现acl错误。为了解决这个问题,我通过zookeeper客户端主机添加了正确的hive acl节点。

    su -
    # First, authenticate with the hive keytab
    kinit hive/'hostname' -kt /etc/security/keytabs/hive.service.keytab
    # Second, connect to a zookeeper client on your cluster
    /usr/hdp/current/zookeeper-server/bin/zkCli.sh -server ${ZOOKEEPER_CLIENT}
    # Third, check the current status of the user-hive acl
    getAcl /llap-sasl/user-hive
    # Fourth, If this is not there create the following nodes
    create /llap-sasl/user-hive "" sasl:hive:cdrwa,world:anyone:r
    create /llap-sasl/user-hive/llap0 "" sasl:hive:cdrwa,world:anyone:r
    create /llap-sasl/user-hive/llap0/workers "" sasl:hive:cdrwa,world:anyone:r
    # Fifth, change the llap-sasl node to add the user hive
    setAcl /llap-sasl sasl:hive:cdrwa,world:anyone:r

Source 1Source 2

基本上,这适用于Kerberized环境。如果您遇到与ACL相关的错误,请返回Zookeeper设置并查看是否一切正常。如果您有与丢失的Hive用户相关的错误,您应该看到hive用户已正确添加到节点。如果您有与Kerberos(principal或keytabs)相关的错误,请查看keytabs是否位于具有正确权限的指定(YARN)节点上。

0 个答案:

没有答案