在 Azure 虛擬網路中的 HDInsight 上建立 Apache HBase 叢集

了解如何在 Azure 虛擬網路中建立 Azure HDInsight Apache HBase 叢集。

由於 Apache HBase 叢集已與虛擬網路整合,因此能夠部署到與您應用程式相同的虛擬網路,讓應用程式得以和 HBase 直接通訊。 這些好處包括:

  • Web 應用程式可以直接連接到 HBase 叢集節點,因而能夠使用 HBase Java 遠端程序呼叫 (RPC) API 來進行通訊。
  • 透過使流量不須經過多個閘道器及負載平衡器,以提升其效能。
  • 能夠以更安全的方式處理敏感資訊,而不會暴露公用端點。

如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶

在虛擬網路中建立 Apache HBase 叢集

在本節中,您會使用 Azure Resource Manager 範本,在 Azure 虛擬網路中建立以 Linux 為基礎的 Apache HBase 叢集與相依的 Azure 儲存體帳戶。 如需其他叢集建立方法及了解各項設定,請參閱 建立 HDInsight 叢集。 如需有關使用範本在 HDInsight 中建立 Apache Hadoop 叢集的詳細資訊,請參閱 使用 Azure Resource Manager 範本在 HDInsight 中建立 Apache Hadoop 叢集

注意

某些屬性已以硬式編碼方式寫入範本。 例如:

  • 位置:美國東部 2
  • 叢集版本:3.6
  • 叢集背景工作節點計數:2
  • 預設儲存體帳戶:唯一的字串
  • 虛擬網路名稱:CLUSTERNAME-vnet
  • 虛擬網路位址空間10.0.0.0/16
  • 子網路名稱:subnet1
  • 子網路位址範圍:10.0.0.0/24

使用範本時,CLUSTERNAME 會取代為您提供的叢集名稱。

  1. 選取以下影像,在 Azure 入口網站中開啟範本。 範本位在 Azure 快速入門範本

    Deploy to Azure button for new cluster

  2. 從 [自訂部署] 對話方塊中,選取 [編輯範本]

  3. 在第 165 行上,將值 Standard_A3 變更為 Standard_A4_V2。 然後選取儲存

  4. 以下列資訊完成剩餘的範本:

    屬性
    訂用帳戶 選取用來建立 HDInsight 叢集、相依儲存體帳戶和 Azure 虛擬網路的 Azure 訂用帳戶。
    資源群組 選取 [新建] 並指定新的資源群組名稱。
    Location 選取資源群組的位置。
    叢集名稱 輸入要建立的 Hadoop 叢集的名稱。
    叢集登入使用者名稱和密碼 預設的使用者名稱為 admin。提供密碼。
    SSH 使用者名稱和密碼 預設的使用者名稱為 sshuser。 提供密碼。

    選取 [我同意條款及條件]

  5. 選取 [購買] 。 大約需要 20 分鐘的時間來建立叢集。 一旦建立了叢集,您就可以在入口網站選取叢集來將其開啟。

完成本文之後,您可能想要刪除叢集。 利用 HDInsight,您的資料會儲存在 Azure 儲存體中,以便您在未使用叢集時安全地進行刪除。 您也需支付 HDInsight 叢集的費用 (即使未使用)。 由於叢集費用是儲存體費用的許多倍,所以刪除未使用的叢集符合經濟效益。 如需有關刪除叢集的指示,請參閱使用 Azure 入口網站管理 HDInsight 中的 Apache Hadoop 叢集

若要開始使用新的 HBase 叢集,您可以使用開始在 HDInsight 中搭配使用 Apache HBase 與 Apache Hadoop 中提供的程序。

使用 Apache HBase Java RPC API 連線至 Apache HBase 叢集

建立虛擬機器

相同的 Azure 虛擬網路和相同的子網路中建立基礎結構即服務 (IaaS) 虛擬機器。 如需建立新的 IaaS 虛擬機器的指示,請參閱建立執行 Windows Server 的虛擬機器。 當遵循本文件中的步驟時,您必須針對網路設定使用下列值:

  • 虛擬網路:CLUSTERNAME-vnet
  • 子網路:subnet1

重要

CLUSTERNAME 取代為在上一個步驟中建立 HDInsight 叢集時使用的名稱。

使用這些值,會將虛擬機器放置在與 HDInsight 叢集相同的虛擬網路和子網路。 此組態可讓它們彼此直接通訊。 有一個使用空白邊緣節點建立 HDInsight 叢集的方法。 邊緣節點可用來管理叢集。 如需詳細資訊,請參閱 Use empty edge nodes in HDInsight (在 HDInsight 中使用空白的邊緣節點)

取得完整網域名稱

使用 Java 應用程式從遠端連接到 HBase 時,您必須使用完整網域名稱 (FQDN)。 若要決定此名稱,您必須取得 HBase 叢集的連線特定 DNS 尾碼。 若要這麼做,您可以使用下列其中一種方法:

  • 使用網頁瀏覽器進行 Apache Ambari 呼叫︰

    瀏覽至 https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/hosts?minimal_response=true。 其會傳回具有 DNS 尾碼的 JSON 檔案。

  • 使用 Ambari 網站︰

    1. 瀏覽至 https://CLUSTERNAME.azurehdinsight.net
    2. 從頂端功能表中選取 [主機]
  • 使用 Curl 進行 REST 呼叫︰

    curl -u <username>:<password> -k https://CLUSTERNAME.azurehdinsight.net/ambari/api/v1/clusters/CLUSTERNAME.azurehdinsight.net/services/hbase/components/hbrest
    

在傳回的 JavaScript 物件標記法 (JSON) 資料中,找出 "host_name" 項目。 其中包含叢集中節點的 FQDN。 例如:

"host_name" : "hn*.hjfrnszlumfuhfk4pi1guh410c.bx.internal.cloudapp.net"

以叢集名稱開頭的網域名稱部分就是 DNS 尾碼。 例如: hjfrnszlumfuhfk4pi1guh410c.bx.internal.cloudapp.net

驗證虛擬網路內的通訊

若要驗證虛擬機器能夠與 HBase 叢集通訊,請從虛擬機器使用命令 ping headnode0.<dns suffix> 。 例如: ping hn*.hjfrnszlumfuhfk4pi1guh410c.bx.internal.cloudapp.net

若要在 Java 應用程式中使用此資訊,您可以依照使用 Apache Maven 建置在 HDInsight (Hadoop) 上使用 Apache HBase 的 Java 應用程式中的步驟來建立應用程式。 若要讓應用程式連接到遠端 HBase 伺服器,請修改此範例中的 hbase-site.xml 檔案,以使用 Zookeeper 的 FQDN。 例如:

<property>
    <name>hbase.zookeeper.quorum</name>
    <value>zookeeper0.<dns suffix>,zookeeper1.<dns suffix>,zookeeper2.<dns suffix></value>
</property>

注意

如需 Azure 虛擬網路中名稱解析的詳細資訊,包括如何使用您自己的 DNS 伺服器,請參閱名稱解析 (DNS)

下一步

在本文中,您已了解如何建立 Apache HBase 叢集。 若要深入了解,請參閱: