本文为您介绍在E-MapReduce集群提交Hive SQL的两种方式。

前提条件

已登录集群,详情请参见登录集群

方式一:通过Hive客户端

  • 普通集群,提交方式如下所示。
    hive
    返回信息如下所示。
    Logging initialized using configuration in file:/etc/ecm/hive-conf-2.3.5-2.0.3/hive-log4j2.properties Async: true
    Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
  • 当集群有高安全选项时,提交方式如下所示。
    1. 执行如下命令进行认证。
      kinit -kt /etc/ecm/hive-conf/hive.keytab hive/emr-header-1.cluster-xxx@EMR.xxx.COM

      本文示例中的xxx,您可以在emr-header-1上通过命令hostname获取。

      您也可以通过用户管理功能创建用户,在连接Hive前使用kinit 用户名并输入密码,即可通过新建的用户使用Hive客户端。创建用户详情请参见管理用户
      1. 执行如下命令进行认证。
        kinit 用户名
      2. 根据提示输入用户的密码。
        Password for 用户名@EMR.xxx.COM:
    2. 连接Hive。
      hive
      返回信息如下所示。
      Logging initialized using configuration in file:/etc/ecm/hive-conf-2.3.5-2.0.3/hive-log4j2.properties Async: true
      Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.

方式二:通过Beeline

  • 普通集群,提交方式如下所示。
    beeline -u jdbc:hive2://emr-header-1:10000
    返回信息如下所示。
    Connecting to jdbc:hive2://emr-header-1:10000
    Connected to: Apache Hive (version 2.3.5)
    Driver: Hive JDBC (version 2.3.5)
    Transaction isolation: TRANSACTION_REPEATABLE_READ
    Beeline version 2.3.5 by Apache Hive
    0: jdbc:hive2://emr-header-1:10000>
  • 当集群有高可用选项时,提交方式如下所示
    beeline -u 'jdbc:hive2://emr-header-1:2181,emr-header-2:2181,emr-header-3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2'
    返回信息如下。
    Connecting to jdbc:hive2://emr-header-1:2181,emr-header-2:2181,emr-header-3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
    21/08/27 14:37:03 [main]: INFO jdbc.HiveConnection: Connected to emr-header-1.cluster-***:10000
    Connected to: Apache Hive (version 3.1.2)
    Driver: Hive JDBC (version 3.1.2)Transaction isolation: TRANSACTION_REPEATABLE_READ
    Beeline version 3.1.2 by Apache Hive
    0: jdbc:hive2://emr-header-1:2181,emr-header->
  • 当集群有高安全选项时,通过以下步骤提交。
    1. 执行如下命令进行认证。
      kinit -kt /etc/ecm/hive-conf/hive.keytab hive/emr-header-1.cluster-xxx@EMR.xxx.COM

      本文示例中的xxx,您可以在emr-header-1上通过命令hostname获取。

      您也可以通过用户管理功能创建用户,在连接Beeline前使用kinit 用户名并输入密码,即可通过新建用户使用Beeline客户端。创建用户详情请参见管理用户
      1. 执行如下命令进行认证。
        kinit 用户名
      2. 根据提示输入用户的密码。
        Password for 用户名@EMR.xxx.COM:
    2. 连接Beeline。
      beeline -u "jdbc:hive2://emr-header-1:10000/;principal=hive/emr-header-1.cluster-xxx@EMR.xxx.COM"
      说明 jdbc链接串需要用双引号括起来。
      返回信息如下。
      Connecting to jdbc:hive2://emr-header-1:10000/;principal=hive/emr-header-1.cluster-202618@EMR.202618.COM
      Connected to: Apache Hive (version 2.3.5)
      Driver: Hive JDBC (version 2.3.5)
      Transaction isolation: TRANSACTION_REPEATABLE_READ
      Beeline version 2.3.5 by Apache Hive
      0: jdbc:hive2://emr-header-1:10000/>