共用方式為


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

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

連線類型

從 SSH 工作階段

當您從 SSH 工作階段連線到叢集前端節點時,就可以連線到 headnodehost10001上的位址:

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)

當您從用戶端連線到已加入叢集相同領域之計算機上Microsoft Entra Domain Services 的企業安全性套件 (ESP) 叢集時,您也必須指定 <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

當您直接從叢集前端節點或與 HDInsight 叢集相同的 Azure 虛擬網絡 內的資源連線時,10002埠應該用於 Spark Thrift 伺服器,而不是 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. 測試連線。 使用上述透過公用或私人端點中的連線格式。

下一步