Erstellen von Apache HBase-Clustern in HDInsight in Azure Virtual NetworkCreate Apache HBase clusters on HDInsight in Azure Virtual Network

Hier erfahren Sie, wie Sie Apache HBase-Cluster in Azure HDInsight in einem virtuellen Azure-Netzwerk erstellen.Learn how to create Azure HDInsight Apache HBase clusters in an Azure Virtual Network.

Mit der Integration in virtuelle Netzwerke können Apache HBase-Cluster im selben virtuellen Netzwerk bereitgestellt werden wie Ihre Anwendungen, sodass Anwendungen direkt mit HBase kommunizieren können.With virtual network integration, Apache HBase clusters can be deployed to the same virtual network as your applications so that applications can communicate with HBase directly. Es ergeben sich folgende Vorteile:The benefits include:

  • Direkte Konnektivität der Webanwendung mit den Knoten des HBase-Clusters, wodurch die Kommunikation über HBase Java-RPC-APIs (Remoteprozeduraufrufe) ermöglicht wird.Direct connectivity of the web application to the nodes of the HBase cluster, which enables communication via HBase Java remote procedure call (RPC) APIs.
  • Optimierte Leistung, da Datenverkehr nicht über mehrere Gateways und Lastenausgleichsmodule fließt.Improved performance by not having your traffic go over multiple gateways and load-balancers.
  • Möglichkeit einer höheren Sicherheit bei der Verarbeitung sensibler Informationen ohne exponierten öffentlichen Endpunkt.The ability to process sensitive information in a more secure manner without exposing a public endpoint.

VoraussetzungenPrerequisites

Bevor Sie mit diesem Artikel beginnen können, benötigen Sie Folgendes:Before you begin this article, you must have the following items:

Erstellen von Apache HBase-Clustern in einem virtuellen NetzwerkCreate Apache HBase cluster into virtual network

In diesem Abschnitt erstellen Sie mit einer Azure Resource Manager-Vorlage einen Linux-basierten Apache HBase-Cluster mit dem abhängigen Azure Storage-Konto in einem virtuellen Azure-Netzwerk.In this section, you create a Linux-based Apache HBase cluster with the dependent Azure Storage account in an Azure virtual network using an Azure Resource Manager template. Andere Methoden zur Erstellung von Clustern und Informationen zu den Einstellungen finden Sie unter Erstellen von Linux-basierten Hadoop-Clustern in HDInsight.For other cluster creation methods and understanding the settings, see Create HDInsight clusters. Weitere Informationen zur Verwendung einer Vorlage zum Erstellen von Apache Hadoop-Clustern in HDInsight finden Sie unter Erstellen Linux-basierter Apache Hadoop-Cluster in HDInsight mithilfe von Azure Resource Manager-Vorlagen.For more information about using a template to create Apache Hadoop clusters in HDInsight, see Create Apache Hadoop clusters in HDInsight using Azure Resource Manager templates

Hinweis

Einige Eigenschaften sind in der Vorlage hartcodiert.Some properties are hard-coded into the template. Beispiel:For example:

  • Standort: USA (Ost) 2Location: East US 2
  • Clusterversion: 3.6Cluster version: 3.6
  • Anzahl der Workerknoten im Cluster: 2Cluster worker node count: 2
  • Standard-Speicherkonto: eine eindeutige ZeichenfolgeDefault storage account: a unique string
  • Name des virtuellen Netzwerks: <Clustername>-vnetVirtual network name: <Cluster Name>-vnet
  • Adressraum des virtuellen Netzwerks: 10.0.0.0/16Virtual network address space: 10.0.0.0/16
  • Subnetzname: subnet1Subnet name: subnet1
  • Subnetzadressbereich: 10.0.0.0/24Subnet address range: 10.0.0.0/24

<Clustername> wird durch den Clusternamen ersetzt, den Sie bei Verwendung der Vorlage angeben.<Cluster Name> is replaced with the cluster name you provide when using the template.

  1. Klicken Sie auf die folgende Abbildung, um die Vorlage im Azure-Portal zu öffnen:Click the following image to open the template in the Azure portal. Die Vorlage finden Sie unter Azure-Schnellstartvorlagen.The template is located in Azure quickstart templates.

    Deploy to Azure

  2. Geben Sie auf dem Blatt Benutzerdefinierte Bereitstellung die folgenden Eigenschaften ein:From the Custom deployment blade, enter the following properties:

    • Abonnement: Wählen Sie ein Azure-Abonnement aus, um den HDInsight-Cluster, das abhängige Speicherkonto und das virtuelle Azure-Netzwerk zu erstellen.Subscription: Select an Azure subscription used to create the HDInsight cluster, the dependent Storage account and the Azure virtual network.
    • Ressourcengruppe: Wählen Sie Neu erstellen aus, und geben Sie einen neuen Ressourcengruppennamen ein.Resource group: Select Create new, and specify a new resource group name.
    • Standort: Wählen Sie einen Speicherort für die Ressourcengruppe aus.Location: Select a location for the resource group.
    • ClusterName: Geben Sie einen Namen für den zu erstellenden Hadoop-Cluster ein.ClusterName: Enter a name for the Hadoop cluster to be created.
    • Clusteranmeldename und Kennwort: Der Standardanmeldename lautet admin.Cluster login name and password: The default login name is admin.
    • SSH-Benutzername und Kennwort: Der Standardbenutzername lautet sshuser.SSH username and password: The default username is sshuser. Sie können auch einen anderen Namen festlegen.You can rename it.
    • Ich stimme den oben genannten Geschäftsbedingungen zu: (Auswählen)I agree to the terms and the conditions stated above: (Select)
  3. Klicken Sie auf Kaufen.Click Purchase. Das Erstellen eines Clusters dauert ca. 20 Minuten.It takes about around 20 minutes to create a cluster. Wenn der Cluster erstellt wurde, öffnen Sie ihn, indem Sie im Portal auf das Clusterblatt klicken.Once the cluster is created, you can click the cluster blade in the portal to open it.

Nach Abschluss des Artikels ist es ratsam, den Cluster zu löschen.After you complete the article, you might want to delete the cluster. Mit HDInsight werden Ihre Daten im Azure-Speicher gespeichert, sodass Sie einen Cluster problemlos löschen können, wenn er nicht verwendet wird.With HDInsight, your data is stored in Azure Storage, so you can safely delete a cluster when it is not in use. Für einen HDInsight-Cluster fallen auch dann Gebühren an, wenn er nicht verwendet wird.You are also charged for an HDInsight cluster, even when it is not in use. Da die Gebühren für den Cluster erheblich höher sind als die Kosten für den Speicher, ist es sinnvoll, nicht verwendete Cluster zu löschen.Since the charges for the cluster are many times more than the charges for storage, it makes economic sense to delete clusters when they are not in use. Anweisungen zum Löschen eines Clusters finden Sie unter Verwalten von Windows-basierten Apache Hadoop-Clustern in HDInsight mit dem Azure-Portal.For the instructions of deleting a cluster, see Manage Apache Hadoop clusters in HDInsight by using the Azure portal.

Führen Sie die Schritte unter Erste Schritte mit einem Apache HBase-Beispiel in HDInsight aus, um mit Ihrem neu erstellten HBase-Cluster zu arbeiten.To begin working with your new HBase cluster, you can use the procedures found in Get started using Apache HBase with Apache Hadoop in HDInsight.

Herstellen einer Verbindung mit dem Apache HBase-Cluster mithilfe von Apache HBase-Java-RPC-APIsConnect to the Apache HBase cluster using Apache HBase Java RPC APIs

  1. Erstellen Sie einen virtuellen IaaS-Computer (Infrastructure-as-a-Service) im gleichen virtuellen Azure-Netzwerk und im gleichen Subnetz.Create an infrastructure as a service (IaaS) virtual machine into the same Azure virtual network and the same subnet. Anweisungen zum Erstellen eines neuen virtuellen IaaS-Computers finden Sie im Abschnitt zum Erstellen eines virtuellen Computers unter Windows Server.For instructions on creating a new IaaS virtual machine, see Create a Virtual Machine Running Windows Server. Beim Ausführen der in diesem Dokument beschriebenen Schritte müssen Sie die folgenden Werte für die Netzwerkkonfiguration verwenden:When following the steps in this document, you must use the following values for the Network configuration:

    • Virtuelles Netzwerk: <Clustername>-vnetVirtual network: <Cluster name>-vnet
    • Subnetz: subnet1Subnet: subnet1

    Wichtig

    Ersetzen Sie <Clustername> durch den Namen, den Sie beim Erstellen des HDInsight-Clusters in den vorherigen Schritten verwendet haben.Replace <Cluster name> with the name you used when creating the HDInsight cluster in previous steps.

    Mit diesen Werten wird der virtuelle Computer im selben virtuellen Netzwerk und Subnetz platziert wie der HDInsight-Cluster.Using these values, the virtual machine is placed in the same virtual network and subnet as the HDInsight cluster. Diese Konfiguration ermöglicht eine direkte Kommunikation zwischen virtuellem Computer und Cluster.This configuration allows them to directly communicate with each other. Es gibt eine Möglichkeit zum Erstellen eines HDInsight-Clusters mit einem leeren Edgeknoten.There is a way to create an HDInsight cluster with an empty edge node. Der Edgeknoten kann zum Verwalten des Clusters verwendet werden.The edge node can be used to manage the cluster. Weitere Informationen finden Sie unter Use empty edge nodes in HDInsight(Verwenden leerer Edgeknoten in HDInsight).For more information, see Use empty edge nodes in HDInsight.

  2. Für Remote-Verbindungen zwischen Java-Anwendungen und HBase müssen Sie den vollqualifizierten Domänennamen (FQDN) verwenden.When using a Java application to connect to HBase remotely, you must use the fully qualified domain name (FQDN). Rufen Sie hierzu das verbindungsspezifische DNS-Suffix des HBase-Clusters ab.To determine this, you must get the connection-specific DNS suffix of the HBase cluster. Dazu können Sie eine der folgenden Methoden verwenden:To do that, you can use one of the following methods:

    • Ausführen eines Apache Ambari-Aufrufs mithilfe eines Webbrowsers:Use a Web browser to make an Apache Ambari call:

      Wechseln Sie zu „https://<Clustername>.azurehdinsight.net/api/v1/clusters/<Clustername>/hosts?minimal_response=true“.Browse to https://<ClusterName>.azurehdinsight.net/api/v1/clusters/<ClusterName>/hosts?minimal_response=true. Es wird eine JSON-Datei mit den DNS-Suffixen zurückgegeben.It turns a JSON file with the DNS suffixes.

    • Verwenden der Ambari-Website:Use the Ambari website:

      1. Wechseln Sie zu „https://<Clustername>.azurehdinsight.net“.Browse to https://<ClusterName>.azurehdinsight.net.
      2. Klicken Sie im Menü am oberen Rand auf Hosts .Click Hosts from the top menu.
    • Durchführen von REST-Aufrufen mithilfe von Curl:Use Curl to make REST calls:

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

      Suchen Sie in den zurückgegebenen JSON-Daten (JavaScript Object Notation) den Eintrag "host_name".In the JavaScript Object Notation (JSON) data returned, find the "host_name" entry. Er enthält den vollqualifizierten Domänennamen (FQDN) für die Knoten im Cluster.It contains the FQDN for the nodes in the cluster. Beispiel:For example:

      ...
      "host_name": "wordkernode0.<clustername>.b1.cloudapp.net
      ...
      

      Der Teil des Domänennamens, der mit dem Clusternamen beginnt, ist das DNS-Suffix.The portion of the domain name beginning with the cluster name is the DNS suffix. Zum Beispiel: mycluster.b1.cloudapp.net.For example, mycluster.b1.cloudapp.net.

    • Mithilfe von Azure PowerShellUse Azure PowerShell

      Verwenden Sie das folgende Azure PowerShell-Skript, um die Get-ClusterDetail -Funktion zu registrieren, mit der Sie das DNS-Suffix zurückgeben können:Use the following Azure PowerShell script to register the Get-ClusterDetail function, which can be used to return the DNS suffix:

         function Get-ClusterDetail(
             [String]
             [Parameter( Position=0, Mandatory=$true )]
             $ClusterDnsName,
             [String]
             [Parameter( Position=1, Mandatory=$true )]
             $Username,
             [String]
             [Parameter( Position=2, Mandatory=$true )]
             $Password,
             [String]
             [Parameter( Position=3, Mandatory=$true )]
             $PropertyName
             )
         {
         <#
             .SYNOPSIS
             Displays information to facilitate an HDInsight cluster-to-cluster scenario within the same virtual network.
             .Description
             This command shows the following 4 properties of an HDInsight cluster:
             1. ZookeeperQuorum (supports only HBase type cluster)
                 Shows the value of HBase property "hbase.zookeeper.quorum".
             2. ZookeeperClientPort (supports only HBase type cluster)
                 Shows the value of HBase property "hbase.zookeeper.property.clientPort".
             3. HBaseRestServers (supports only HBase type cluster)
                 Shows a list of host FQDNs that run the HBase REST server.
             4. FQDNSuffix (supports all cluster types)
                 Shows the FQDN suffix of hosts in the cluster.
             .EXAMPLE
             Get-ClusterDetail -ClusterDnsName {clusterDnsName} -Username {username} -Password {password} -PropertyName ZookeeperQuorum
             This command shows the value of HBase property "hbase.zookeeper.quorum".
             .EXAMPLE
             Get-ClusterDetail -ClusterDnsName {clusterDnsName} -Username {username} -Password {password} -PropertyName ZookeeperClientPort
             This command shows the value of HBase property "hbase.zookeeper.property.clientPort".
             .EXAMPLE
             Get-ClusterDetail -ClusterDnsName {clusterDnsName} -Username {username} -Password {password} -PropertyName HBaseRestServers
             This command shows a list of host FQDNs that run the HBase REST server.
             .EXAMPLE
             Get-ClusterDetail -ClusterDnsName {clusterDnsName} -Username {username} -Password {password} -PropertyName FQDNSuffix
             This command shows the FQDN suffix of hosts in the cluster.
         #>
      
             $DnsSuffix = ".azurehdinsight.net"
      
             $ClusterFQDN = $ClusterDnsName + $DnsSuffix
             $webclient = new-object System.Net.WebClient
             $webclient.Credentials = new-object System.Net.NetworkCredential($Username, $Password)
      
             if($PropertyName -eq "ZookeeperQuorum")
             {
                 $Url = "https://" + $ClusterFQDN + "/ambari/api/v1/clusters/" + $ClusterFQDN + "/configurations?type=hbase-site&tag=default&fields=items/properties/hbase.zookeeper.quorum"
                 $Response = $webclient.DownloadString($Url)
                 $JsonObject = $Response | ConvertFrom-Json
                 Write-host $JsonObject.items[0].properties.'hbase.zookeeper.quorum'
             }
             if($PropertyName -eq "ZookeeperClientPort")
             {
                 $Url = "https://" + $ClusterFQDN + "/ambari/api/v1/clusters/" + $ClusterFQDN + "/configurations?type=hbase-site&tag=default&fields=items/properties/hbase.zookeeper.property.clientPort"
                 $Response = $webclient.DownloadString($Url)
                 $JsonObject = $Response | ConvertFrom-Json
                 Write-host $JsonObject.items[0].properties.'hbase.zookeeper.property.clientPort'
             }
             if($PropertyName -eq "HBaseRestServers")
             {
                 $Url1 = "https://" + $ClusterFQDN + "/ambari/api/v1/clusters/" + $ClusterFQDN + "/configurations?type=hbase-site&tag=default&fields=items/properties/hbase.rest.port"
                 $Response1 = $webclient.DownloadString($Url1)
                 $JsonObject1 = $Response1 | ConvertFrom-Json
                 $PortNumber = $JsonObject1.items[0].properties.'hbase.rest.port'
      
                 $Url2 = "https://" + $ClusterFQDN + "/ambari/api/v1/clusters/" + $ClusterFQDN + "/services/hbase/components/hbrest"
                 $Response2 = $webclient.DownloadString($Url2)
                 $JsonObject2 = $Response2 | ConvertFrom-Json
                 foreach ($host_component in $JsonObject2.host_components)
                 {
                     $ConnectionString = $host_component.HostRoles.host_name + ":" + $PortNumber
                     Write-host $ConnectionString
                 }
             }
             if($PropertyName -eq "FQDNSuffix")
             {
                 $Url = "https://" + $ClusterFQDN + "/ambari/api/v1/clusters/" + $ClusterFQDN + "/services/YARN/components/RESOURCEMANAGER"
                 $Response = $webclient.DownloadString($Url)
                 $JsonObject = $Response | ConvertFrom-Json
                 $FQDN = $JsonObject.host_components[0].HostRoles.host_name
                 $pos = $FQDN.IndexOf(".")
                 $Suffix = $FQDN.Substring($pos + 1)
                 Write-host $Suffix
             }
         }
      

      Verwenden Sie nach der Ausführung des Azure PowerShell-Skripts den folgenden Befehl, um das DNS-Suffix mithilfe der Get-ClusterDetail -Funktion zurückzugeben.After running the Azure PowerShell script, use the following command to return the DNS suffix by using the Get-ClusterDetail function. Geben Sie den Namen Ihres HDInsight HBase-Clusters sowie den Admin-Namen und das Admin-Kennwort an, wenn Sie diesen Befehl ausführen.Specify your HDInsight HBase cluster name, admin name, and admin password when using this command.

         Get-ClusterDetail -ClusterDnsName <yourclustername> -PropertyName FQDNSuffix -Username <clusteradmin> -Password <clusteradminpassword>
      

      Dieser Befehl gibt das DNS-Suffix zurück.This command returns the DNS suffix. Zum Beispiel: yourclustername.b4.internal.cloudapp.net.For example, yourclustername.b4.internal.cloudapp.net.

Führen Sie den Befehl ping headnode0.<dns suffix> auf dem virtuellen Computer aus, um zu überprüfen, ob der virtuelle Computer mit dem HBase-Cluster kommunizieren kann.To verify that the virtual machine can communicate with the HBase cluster, use the command ping headnode0.<dns suffix> from the virtual machine. Beispiel: ping headnode0.mycluster.b1.cloudapp.net.For example, ping headnode0.mycluster.b1.cloudapp.net.

Führen Sie die unter Erstellen von Java-Anwendungen für die Apache-HBase beschriebenen Schritte aus, um diese Informationen in einer Java-Anwendung zu verwenden.To use this information in a Java application, you can follow the steps in Use Apache Maven to build Java applications that use Apache HBase with HDInsight (Hadoop) to create an application. Wenn die Anwendung eine Verbindung mit einem HBase-Remoteserver herstellen soll, müssen Sie den FQDN für Zookeeper in der Datei hbase-site.xml eintragen.To have the application connect to a remote HBase server, modify the hbase-site.xml file in this example to use the FQDN for Zookeeper. Beispiel:For example:

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

Hinweis

Weitere Informationen zur Namensauflösung in virtuellen Azure-Netzwerken und Verwendung eigener DNS-Server finden Sie unter Namensauflösung (DNS).For more information about name resolution in Azure virtual networks, including how to use your own DNS server, see Name Resolution (DNS).

Nächste SchritteNext steps

In diesem Artikel haben Sie gelernt, wie Sie einen Apache HBase-Cluster erstellen.In this article, you learned how to create an Apache HBase cluster. Weitere Informationen finden Sie unter:To learn more, see: