Kerberos是一种基于对称密钥技术的身份认证协议,可以为其他服务提供身份认证功能。本文为您介绍Hive在开启Kerberos的情况下,如何访问Hive Client。

前提条件

已创建集群,且在软件配置页面的高级设置区域中,打开了Kerberos身份认证开关。创建集群详情请参见创建集群Kerberos

操作步骤

  1. 使用SSH方式登录集群,详情请参见登录集群
  2. 执行以下命令,进入Kerberos的admin.local工具。
    • 如果您是使用root用户,登录KDC(Kerberos的服务端程序)所在的master-1-1节点,则可以执行以下命令,直接进入admin工具。
      kadmin.local
      当返回信息中包含如下信息时,表示已进入admin.local命令行。
      Authenticating as principal hadoop/admin@EMR.C-85D4B8D74296****.COM with password.
      kadmin.local:
    • 如果您登录的是其他节点或者使用Gateway时,则可以通过填写admin-user和admin-password进入admin工具。
      kadmin -p <admin-user> -w <admin-password>
      说明 如果您使用的是EMR自建的KDC,则参数:
      • <admin-user>:固定值为root/admin
      • <admin-password>:您可以在E-MapReduce控制台,Kerberos服务的配置页面,获取admin_pwd的参数值。
      当返回信息中包含如下信息时,表示已进入admin命令行。
      Authenticating as principal root/admin with password.
      kadmin:
  3. 执行以下命令,创建用户名为test的Principal。
    本文示例密码设置为123456。
    addprinc -pw 123456 test
    当返回信息中包含如下信息时,表示创建成功。
    Principal "test@EMR.C-85D4B8D74296****.COM" created.
    说明 需要记录用户名和密码,在创建TGT(Ticket Granting Ticket)时会用到。

    执行quit命令,可以退出Kerberos的admin.local工具。

  4. 登录您需要运行Hive Client的机器,执行以下命令,创建并切换至test用户。
    useradd test
    su test
  5. 执行以下命令,创建TGT。
    kinit

    回车后输入test用户的密码,本文示例密码为123456。

  6. 访问Hive Client。
    • 方式一:直接使用hive命令访问Hive Client
      hive
    • 方式二:使用Beeline访问Hive Client
      beeline -u "jdbc:hive2://master-1-1:10000/;principal=hive/_HOST@EMR"

相关文档