使用 Beeline 連線至 HiveServer2,或在本機安裝 Beeline 以從本機連線
Apache Beeline 是 HDInsight 叢集的前端節點隨附的 Hive 用戶端。 本文說明如何使用 HDInsight 叢集上安裝的 Beeline 用戶端,以透過各種不同的連線來連線至 HiveServer2。 也討論如何在本機安裝 Beeline 用戶端。
連線類型
從 SSH 工作階段
當您從 SSH 工作階段連線到叢集前端節點時,就可以連線到 headnodehost
埠 10001
上的位址:
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:
從網頁瀏覽器瀏覽至
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
當您直接從叢集前端節點或與 HDInsight 叢集相同的 Azure 虛擬網絡 內的資源連線時,10002
埠應該用於 Spark Thrift 伺服器,而不是 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