Apache HBase-clusters maken in HDInsight in Azure Virtual NetworkCreate Apache HBase clusters on HDInsight in Azure Virtual Network

Informatie over het maken van Azure HDInsight Apache HBase-clusters in een Azure Virtual Network.Learn how to create Azure HDInsight Apache HBase clusters in an Azure Virtual Network.

Met integratie van virtuele netwerken, kunnen Apache HBase-clusters worden geïmplementeerd in hetzelfde virtuele netwerk bevinden als uw toepassingen zodat toepassingen rechtstreeks met HBase communiceren kunnen.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. De volgende voordelen:The benefits include:

  • Directe verbinding van de web-App op de knooppunten van het HBase-cluster, waarmee communicatie via externe procedure HBase Java call (RPC) API's.Direct connectivity of the web application to the nodes of the HBase cluster, which enables communication via HBase Java remote procedure call (RPC) APIs.
  • Verbeterde prestaties omdat u niet hoeft uw verkeer gaat over meerdere gateways en load balancers.Improved performance by not having your traffic go over multiple gateways and load-balancers.
  • De mogelijkheid om gevoelige informatie op een veiliger manier zonder een openbaar eindpunt bloot te verwerken.The ability to process sensitive information in a more secure manner without exposing a public endpoint.

VereistenPrerequisites

Voordat u dit artikel, hebt u de volgende items:Before you begin this article, you must have the following items:

Apache HBase-cluster in virtueel netwerk makenCreate Apache HBase cluster into virtual network

In deze sectie maakt u een Apache HBase op basis van Linux-cluster maken met het afhankelijke Azure Storage-account in een virtueel Azure-netwerk met behulp van een Azure Resource Manager-sjabloon.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. Voor andere methoden voor het maken van cluster en inzicht in de instellingen, Zie maken van HDInsight-clusters.For other cluster creation methods and understanding the settings, see Create HDInsight clusters. Zie voor meer informatie over het gebruik van een sjabloon voor het maken van Apache Hadoop-clusters in HDInsight Apache Hadoop-clusters maken in HDInsight met behulp van Azure Resource Manager-sjablonenFor 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

Notitie

Sommige eigenschappen zijn vastgelegd in de sjabloon.Some properties are hard-coded into the template. Bijvoorbeeld:For example:

  • Locatie: US - oost 2Location: East US 2
  • Clusterversie: 3.6Cluster version: 3.6
  • Aantal worker-knooppunten cluster: 2Cluster worker node count: 2
  • Storage-account standaard: een unieke tekenreeksDefault storage account: a unique string
  • Virtuele-netwerknaam: <Clusternaam >-vnetVirtual network name: <Cluster Name>-vnet
  • Virtuele netwerkadresruimte: 10.0.0.0/16Virtual network address space: 10.0.0.0/16
  • Subnetnaam: subnet1Subnet name: subnet1
  • Subnetadresbereik: 10.0.0.0/24Subnet address range: 10.0.0.0/24

<Clusternaam > is vervangen door de naam van het cluster die u opgeeft bij het gebruik van de sjabloon.<Cluster Name> is replaced with the cluster name you provide when using the template.

  1. Klik op de volgende afbeelding om de sjabloon in Azure Portal te openen.Click the following image to open the template in the Azure portal. De sjabloon bevindt zich in Azure-snelstartsjablonen.The template is located in Azure quickstart templates.

    Deploy to Azure

  2. Uit de aangepaste implementatie blade, voer de volgende eigenschappen:From the Custom deployment blade, enter the following properties:

    • Abonnement: Selecteer een Azure-abonnement gebruikt voor het maken van het HDInsight-cluster, het afhankelijke opslagaccount en de Azure-netwerk.Subscription: Select an Azure subscription used to create the HDInsight cluster, the dependent Storage account and the Azure virtual network.
    • Resourcegroep: Selecteer nieuw, en geef de naam van een nieuwe resourcegroep.Resource group: Select Create new, and specify a new resource group name.
    • Locatie: Selecteer een locatie voor de resourcegroep.Location: Select a location for the resource group.
    • Clusternaam: Voer een naam voor de Hadoop-cluster moet worden gemaakt.ClusterName: Enter a name for the Hadoop cluster to be created.
    • Cluster-aanmeldingsnaam en dit wachtwoord: De standaardaanmeldingsnaam is admin.Cluster login name and password: The default login name is admin.
    • SSH-gebruikersnaam en wachtwoord: De standaardgebruikersnaam is sshuser.SSH username and password: The default username is sshuser. U kunt de naam wijzigen.You can rename it.
    • Ik ga akkoord met de voorwaarden en de bovenstaande voorwaarden: (Selecteren)I agree to the terms and the conditions stated above: (Select)
  3. Klik op Kopen.Click Purchase. Het duurt ongeveer 20 minuten om een cluster te maken.It takes about around 20 minutes to create a cluster. Zodra het cluster is gemaakt, kunt u de clusterblade in de portal om dit te openen.Once the cluster is created, you can click the cluster blade in the portal to open it.

Nadat u het artikel hebt voltooid, is het raadzaam om het cluster te verwijderen.After you complete the article, you might want to delete the cluster. Met HDInsight worden uw gegevens opgeslagen in Azure Storage zodat u een cluster veilig kunt verwijderen wanneer deze niet wordt gebruikt.With HDInsight, your data is stored in Azure Storage, so you can safely delete a cluster when it is not in use. Voor een HDInsight-cluster worden ook kosten in rekening gebracht, zelfs wanneer het niet wordt gebruikt.You are also charged for an HDInsight cluster, even when it is not in use. Aangezien de kosten voor het cluster vaak zoveel hoger zijn dan de kosten voor opslag, is het financieel gezien logischer clusters te verwijderen wanneer ze niet worden gebruikt.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. Zie voor de instructies van het verwijderen van een cluster, beheren Apache Hadoop-clusters in HDInsight met behulp van de Azure-portal.For the instructions of deleting a cluster, see Manage Apache Hadoop clusters in HDInsight by using the Azure portal.

Als u wilt werken met uw nieuwe HBase-cluster, kunt u de procedures die zijn gevonden in aan de slag met Apache HBase met Hadoop in HDInsight Apache.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.

Verbinding maken met de Apache HBase-cluster met behulp van Apache HBase Java RPC-API 'sConnect to the Apache HBase cluster using Apache HBase Java RPC APIs

  1. Maak een infrastructuur als een service (IaaS) virtuele machine in hetzelfde Azure virtual network en hetzelfde subnet bevinden.Create an infrastructure as a service (IaaS) virtual machine into the same Azure virtual network and the same subnet. Zie voor instructies over het maken van een nieuwe virtuele machine voor IaaS maken van een virtuele Machine Running Windows Server.For instructions on creating a new IaaS virtual machine, see Create a Virtual Machine Running Windows Server. Wanneer u de stappen in dit document, moet u de volgende waarden voor de configuratie van het netwerk:When following the steps in this document, you must use the following values for the Network configuration:

    • Virtueel netwerk: <Clusternaam >-vnetVirtual network: <Cluster name>-vnet
    • Subnet: subnet1Subnet: subnet1

    Belangrijk

    Vervang <Clusternaam > met de naam die u hebt gebruikt bij het HDInsight-cluster in de vorige stappen is gemaakt.Replace <Cluster name> with the name you used when creating the HDInsight cluster in previous steps.

    De virtuele machine wordt met behulp van deze waarden geplaatst in hetzelfde virtuele netwerk en subnet als het HDInsight-cluster.Using these values, the virtual machine is placed in the same virtual network and subnet as the HDInsight cluster. Deze configuratie kan ze rechtstreeks met elkaar communiceren.This configuration allows them to directly communicate with each other. Er is een manier om een HDInsight-cluster maken met een lege edge-knooppunt.There is a way to create an HDInsight cluster with an empty edge node. Het edge-knooppunt kan worden gebruikt voor het beheren van het cluster.The edge node can be used to manage the cluster. Zie voor meer informatie, lege edge-knooppunten gebruiken in HDInsight.For more information, see Use empty edge nodes in HDInsight.

  2. Wanneer u een Java-toepassing op afstand verbinding maken met HBase, moet u de volledig gekwalificeerde domeinnaam (FQDN) gebruiken.When using a Java application to connect to HBase remotely, you must use the fully qualified domain name (FQDN). Als u wilt bepalen, moet u het verbindingsspecifieke DNS-achtervoegsel van de HBase-cluster ophalen.To determine this, you must get the connection-specific DNS suffix of the HBase cluster. Om dit te doen, kunt u een van de volgende methoden gebruiken:To do that, you can use one of the following methods:

    • Een webbrowser gebruiken om een Apache Ambari aanroepen:Use a Web browser to make an Apache Ambari call:

      Blader naar https://<ClusterName >.azurehdinsight.net/api/v1/clusters/<ClusterName > / als host fungeert voor? minimal_response = true.Browse to https://<ClusterName>.azurehdinsight.net/api/v1/clusters/<ClusterName>/hosts?minimal_response=true. Hiermee schakelt u een JSON-bestand met de DNS-achtervoegsels.It turns a JSON file with the DNS suffixes.

    • Gebruik van de Ambari-website:Use the Ambari website:

      1. Blader naar https://<ClusterName >. azurehdinsight.net.Browse to https://<ClusterName>.azurehdinsight.net.
      2. Klik op Hosts in het menu bovenaan.Click Hosts from the top menu.
    • Gebruik Curl REST-aanroepen: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
      

      In het JavaScript Object Notation (JSON)-gegevens die zijn geretourneerd, vindt u de vermelding 'hostnaam'.In the JavaScript Object Notation (JSON) data returned, find the "host_name" entry. Het bevat de FQDN-naam voor de knooppunten in het cluster.It contains the FQDN for the nodes in the cluster. Bijvoorbeeld:For example:

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

      Het gedeelte van het domein naam die begint met de naam van het cluster is het DNS-achtervoegsel.The portion of the domain name beginning with the cluster name is the DNS suffix. Bijvoorbeeld, mycluster.b1.cloudapp.net.For example, mycluster.b1.cloudapp.net.

    • Azure PowerShell gebruikenUse Azure PowerShell

      De volgende Azure PowerShell-script gebruiken om te registreren de Get-ClusterDetail functie, die kan worden gebruikt om te retourneren van de DNS-achtervoegsel: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
             }
         }
      

      Nadat de Azure PowerShell-script is uitgevoerd, gebruikt u de volgende opdracht uit om terug te keren van de DNS-achtervoegsel met behulp van de Get-ClusterDetail functie.After running the Azure PowerShell script, use the following command to return the DNS suffix by using the Get-ClusterDetail function. De naam van HDInsight HBase-cluster, naam van de beheerder en beheerderswachtwoord opgeven wanneer u deze opdracht.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>
      

      Met deze opdracht retourneert de DNS-achtervoegsel.This command returns the DNS suffix. Bijvoorbeeld, yourclustername.b4.internal.cloudapp.net.For example, yourclustername.b4.internal.cloudapp.net.

Om te controleren dat de virtuele machine met de HBase-cluster communiceren kan, gebruikt u de opdracht ping headnode0.<dns suffix> van de virtuele machine.To verify that the virtual machine can communicate with the HBase cluster, use the command ping headnode0.<dns suffix> from the virtual machine. Bijvoorbeeld: ping headnode0.mycluster.b1.cloudapp.net.For example, ping headnode0.mycluster.b1.cloudapp.net.

Als u deze informatie in een Java-toepassing, kunt u Volg de stappen in Apache Maven gebruiken om Java-toepassingen die gebruikmaken van Apache HBase met HDInsight (Hadoop) te bouwen om een toepassing te maken.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. Als u de toepassing die verbinding maken met een externe HBase-server wilt weergeven, wijzigen de hbase-site.xml bestand in dit voorbeeld met de FQDN-naam voor Zookeeper.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. Bijvoorbeeld:For example:

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

Notitie

Zie voor meer informatie over naamomzetting in Azure virtuele netwerken, inclusief het gebruik van uw eigen DNS-server, Name Resolution (DNS).For more information about name resolution in Azure virtual networks, including how to use your own DNS server, see Name Resolution (DNS).

Volgende stappenNext steps

In dit artikel hebt u geleerd hoe u een Apache HBase-cluster maakt.In this article, you learned how to create an Apache HBase cluster. Voor meer informatie zie:To learn more, see: