使用 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:
從網頁瀏覽器瀏覽至
https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary
,其中CLUSTERNAME
是叢集的名稱。 請確定 HiveServer2 在執行中。使用剪貼簿複製 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 版為基礎。
更新封裝清單。 在 bash 殼層中輸入下列命令:
sudo apt-get update
安裝 JAVA (如果未安裝)。 您可以使用
which java
命令來檢查。如果未安裝 JAVA 套件,請輸入下列命令:
sudo apt install openjdk-11-jre-headless
開啟 bashrc 檔案 (通常位於 ~/.bashrc 中):
nano ~/.bashrc
。修改 bashrc 檔案。 在檔案結尾處加入下列這一行︰
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
然後按 Ctrl+X、Y 及 Enter 鍵。
下載 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
解壓縮封存,輸入下列命令:
tar -xvzf hadoop-2.7.3.tar.gz tar -xvzf apache-hive-1.2.1-bin.tar.gz
進一步修改 bashrc 檔案。 您必須找出封存解壓縮的路徑。 如果使用 Windows 子系統 Linux 版,而且完全遵循步驟,則路徑為
/mnt/c/Users/user/
,其中user
是您的使用者名稱。開啟檔案:
nano ~/.bashrc
。以適當的路徑修改下列命令,然後在 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
然後按 Ctrl+X、Y 及 Enter 鍵。
關閉 Bash 工作階段再重新開啟。
測試連線。 使用上述透過公用或私人端點中的連線格式。
下一步
- 有關使用 Beeline 用戶端搭配 Apache Hive 的範例,請參閱使用 Apache Beeline 搭配 Apache Hive
- 如需 Hive in HDInsight 的更多一般資訊,請參閱使用 Apache Hive 搭配 Apache Hadoop on HDInsight