Share via


使用 Beeline 連線至 HiveServer2,或在本機安裝 Beeline 以從本機連線

Apache Beeline 是 HDInsight 叢集的前端節點隨附的 Hive 用戶端。 本文說明如何使用 HDInsight 叢集上安裝的 Beeline 用戶端,以透過各種不同的連線來連線至 HiveServer2。 也討論如何在本機安裝 Beeline 用戶端

連線類型

從 SSH 工作階段

從 SSH 工作階段連線至叢集前端節點時,您可以在連接埠 10001 連線至 headnodehost 位址:

beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'

透過 Azure 虛擬網路

透過 Azure 虛擬網路從用戶端連線至 HDInsight 時,您必須提供叢集前端節點的完整網域名稱 (FQDN)。 由於此連線是直接連線到叢集節點,因此會使用連接埠 10001 進行連線:

beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/;transportMode=http'

<headnode-FQDN> 換成叢集前端節點的完整網域名稱。 若要找出前端節點的完整網域名稱,請利用使用 Apache Ambari REST API 管理 HDInsight 文件中的資訊。

使用 Kerberos 連線至 HDInsight 企業安全性套件 (ESP)

如果企業安全性套件 (ESP) 叢集已加入 Microsoft Entra 網域服務,在與叢集位於同一個領域中的機器上,若要從用戶端連線至叢集,您還必須指定網域名稱 <AAD-Domain>,以及有權存取叢集的網域使用者帳戶名稱 <username>

kinit <username>
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/default;principal=hive/_HOST@<AAD-Domain>;auth-kerberos;transportMode=http' -n <username>

以網域上具備叢集存取權限的帳戶名稱取代 <username>。 將 <AAD-DOMAIN> 取代為叢集所加入 Microsoft Entra ID 的名稱。 請針對 <AAD-DOMAIN> 值使用大寫字串,否則會找不到認證。 如有需要,請檢查 /etc/krb5.conf 以尋找領域名稱。

若要從 Ambari 尋找 JDBC URL:

  1. 從網頁瀏覽器瀏覽至 https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary,其中 CLUSTERNAME 是叢集的名稱。 請確定 HiveServer2 在執行中。

  2. 使用剪貼簿複製 HiveServer2 JDBC URL。

透過公用或私人端點

使用公用或私人端點來連線至叢集時,您必須提供叢集登入帳戶名稱 (預設 admin) 和密碼。 例如,使用 Beeline 從用戶端系統連線到 clustername.azurehdinsight.net 位址。 此連線透過連接埠 443 建立,並以 TLS/SSL 加密。

clustername 替換為 HDInsight 叢集的名稱。 將 admin 取代為叢集的叢集登入帳戶。 若為 ESP 叢集,請使用完整 UPN (例如 user@domain.com)。 將 password 取代為叢集登入帳戶的密碼。

beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'

或透過私人端點:

beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'

私人端點指向基本負載平衡器,這只能從相同區域中對等互連的 VNET 存取。 如需詳細資訊,請參閱全域 VNet 對等互連和負載平衡器的限制。 使用 beeline 之前,您可以使用 curl 命令搭配 -v 選項,針對公用或私人端點的任何連線問題進行疑難排解。

使用 Beeline 搭配 Apache Spark

Apache Spark 提供自己的 HiveServer2 (有時稱為 Spark Thrift 伺服器) 實作。 此服務使用 Spark SQL 來解析查詢,而非使用 Hive。 視查詢而定,效能可能更高。

透過公用或私人端點

使用的連接字串稍有不同。 不含 httpPath=/hive2,而是使用 httpPath/sparkhive2。 將 clustername 替換為 HDInsight 叢集的名稱。 將 admin 取代為叢集的叢集登入帳戶。 將 password 取代為叢集登入帳戶的密碼。

注意

若為 ESP 叢集,請將 admin 換成完整 UPN (例如 user@domain.com)。

beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'

或透過私人端點:

beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'

私人端點指向基本負載平衡器,這只能從相同區域中對等互連的 VNET 存取。 如需詳細資訊,請參閱全域 VNet 對等互連和負載平衡器的限制。 使用 beeline 之前,您可以使用 curl 命令搭配 -v 選項,針對公用或私人端點的任何連線問題進行疑難排解。

從叢集前端節點或在 Azure 虛擬網路內搭配 Apache Spark

直接從叢集前端節點,或是從 Azure 虛擬網路 (與 HDInsight 叢集相同) 內的資源進行連線時,應對 Spark Thrift 伺服器使用連接埠 10002,而非 10001。 下列範例示範如何直接連線到前端節點:

/usr/hdp/current/spark2-client/bin/beeline -u 'jdbc:hive2://headnodehost:10002/;transportMode=http'

安裝 Beeline 用戶端

雖然 Beeline 隨附於前端節點,但建議安裝在本機。 本機電腦的安裝步驟以 Windows 子系統 Linux 版為基礎。

  1. 更新封裝清單。 在 bash 殼層中輸入下列命令:

    sudo apt-get update
    
  2. 安裝 JAVA (如果未安裝)。 您可以使用 which java 命令來檢查。

    1. 如果未安裝 JAVA 套件,請輸入下列命令:

      sudo apt install openjdk-11-jre-headless
      
    2. 開啟 bashrc 檔案 (通常位於 ~/.bashrc 中):nano ~/.bashrc

    3. 修改 bashrc 檔案。 在檔案結尾處加入下列這一行︰

      export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
      

      然後按 Ctrl+XY 及 Enter 鍵。

  3. 下載 Hadoop 和 Beeline 封存,輸入下列命令:

    wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz
    wget https://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
    
  4. 解壓縮封存,輸入下列命令:

    tar -xvzf hadoop-2.7.3.tar.gz
    tar -xvzf apache-hive-1.2.1-bin.tar.gz
    
  5. 進一步修改 bashrc 檔案。 您必須找出封存解壓縮的路徑。 如果使用 Windows 子系統 Linux 版,而且完全遵循步驟,則路徑為 /mnt/c/Users/user/,其中 user 是您的使用者名稱。

    1. 開啟檔案:nano ~/.bashrc

    2. 以適當的路徑修改下列命令,然後在 bashrc 檔案結尾輸入命令:

      export HADOOP_HOME=/path_where_the_archives_were_unpacked/hadoop-2.7.3
      export HIVE_HOME=/path_where_the_archives_were_unpacked/apache-hive-1.2.1-bin
      PATH=$PATH:$HIVE_HOME/bin
      
    3. 然後按 Ctrl+XY 及 Enter 鍵。

  6. 關閉 Bash 工作階段再重新開啟。

  7. 測試連線。 使用上述透過公用或私人端點中的連線格式。

下一步