Zelfstudie: Apache HBase gebruiken in Azure HDInsightTutorial: Use Apache HBase in Azure HDInsight

In deze zelf studie ziet u hoe u een Apache HBase-cluster maakt in azure HDInsight, HBase-tabellen en query tabellen maakt met behulp van Apache Hive.This tutorial demonstrates how to create an Apache HBase cluster in Azure HDInsight, create HBase tables, and query tables by using Apache Hive. Zie overzicht van HDInsight HBasevoor algemene informatie over HBase.For general HBase information, see HDInsight HBase overview.

In deze zelfstudie leert u het volgende:In this tutorial, you learn how to:

  • Apache HBase-cluster makenCreate Apache HBase cluster
  • HBase-tabellen maken en gegevens invoegenCreate HBase tables and insert data
  • Apache Hive gebruiken voor het opvragen van Apache HBaseUse Apache Hive to query Apache HBase
  • HBase REST API's gebruiken met CurlUse HBase REST APIs using Curl
  • De clusterstatus controlerenCheck cluster status

VereistenPrerequisites

Apache HBase-cluster makenCreate Apache HBase cluster

De volgende procedure maakt gebruik van een Azure Resource Manager sjabloon voor het maken van een HBase-cluster en het afhankelijke standaard Azure Storage-account.The following procedure uses an Azure Resource Manager template to create an HBase cluster and the dependent default Azure Storage account. Zie Op Linux gebaseerde Hadoop-clusters maken in HDInsight voor meer inzicht in de parameters die voor deze procedure worden gebruikt en andere methoden voor het maken van clusters.To understand the parameters used in the procedure and other cluster creation methods, see Create Linux-based Hadoop clusters in HDInsight.

  1. Selecteer de volgende afbeelding om de sjabloon te openen in de Azure Portal.Select the following image to open the template in the Azure portal. De sjabloon bevindt zich in Azure Quickstart-sjablonen.The template is located in Azure quickstart templates.

    Deploy to Azure

  2. Voer op de blade Aangepaste implementatie de volgende waarden in:From the Custom deployment blade, enter the following values:

    EigenschapProperty DescriptionDescription
    SubscriptionSubscription Selecteer uw Azure-abonnement dat wordt gebruikt om het cluster te maken.Select your Azure subscription that is used to create the cluster.
    Resource groupResource group Maak een Azure-resource beheer groep of gebruik een bestaande.Create an Azure Resource management group or use an existing one.
    LocationLocation Geef de locatie van de resource groep op.Specify the location of the resource group.
    ClusterNameClusterName Voer een naam in voor het HBase-cluster.Enter a name for the HBase cluster.
    Aanmeldings naam en wacht woord voor het clusterCluster login name and password De standaardaanmeldingsnaam is admin.The default login name is admin.
    SSH-gebruikers naam en-wacht woordSSH username and password De standaardgebruikersnaam is sshuser.The default username is sshuser.

    Andere parameters zijn optioneel.Other parameters are optional.

    Elk cluster is afhankelijk van een Azure Storage-account.Each cluster has an Azure Storage account dependency. Nadat u een cluster hebt verwijderd, blijven de gegevens in het opslagaccount staan.After you delete a cluster, the data retains in the storage account. De naam van het standaardopslagaccount voor het cluster is de naam waaraan 'store' is toegevoegd.The cluster default storage account name is the cluster name with "store" appended. Deze is vastgelegd in de sectie met sjabloonvariabelen.It is hardcoded in the template variables section.

  3. Selecteer Ik ga akkoord met de bovenstaande voorwaarden en selecteer vervolgens Kopen.Select I agree to the terms and conditions stated above, and then select Purchase. Het duurt ongeveer 20 minuten om een cluster te maken.It takes about 20 minutes to create a cluster.

Nadat een HBase-cluster is verwijderd, kunt u een ander HBase-cluster maken met de dezelfde standaard blob-container.After an HBase cluster is deleted, you can create another HBase cluster by using the same default blob container. Het nieuwe cluster haalt de HBase-tabellen op die u hebt gemaakt in het oorspronkelijke cluster.The new cluster picks up the HBase tables you created in the original cluster. Om inconsistenties te voorkomen, wordt u aangeraden de HBase-tabellen uit te schakelen voordat u het cluster verwijdert.To avoid inconsistencies, we recommend that you disable the HBase tables before you delete the cluster.

Tabellen maken en gegevens invoegenCreate tables and insert data

U kunt SSH gebruiken om verbinding te maken met HBase-clusters en vervolgens Apache HBase Shell gebruiken om HBase-tabellen te maken, gegevens in te voegen, en gegevens te doorzoeken.You can use SSH to connect to HBase clusters and then use Apache HBase Shell to create HBase tables, insert data, and query data.

Voor de meeste mensen worden de gegevens weergegeven in een tabelindeling:For most people, data appears in the tabular format:

Tabelgegevens in HDInsight HBase

In HBase (een implementatie van Bigtable), zien dezelfde gegevens er als volgt uit:In HBase (an implementation of Cloud BigTable), the same data looks like:

BigTable-gegevens in HDInsight HBase

De HBase-shell gebruikenTo use the HBase shell

  1. Gebruik ssh de opdracht om verbinding te maken met uw HBase-cluster.Use ssh command to connect to your HBase cluster. Bewerk de onderstaande opdracht door de CLUSTERNAME naam van uw cluster te vervangen en voer de volgende opdracht in:Edit the command below by replacing CLUSTERNAME with the name of your cluster, and then enter the command:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Gebruik hbase shell de opdracht om de HBase-interactieve shell te starten.Use hbase shell command to start the HBase interactive shell. Voer de volgende opdracht in voor uw SSH-verbinding:Enter the following command in your SSH connection:

    hbase shell
    
  3. Gebruik create de opdracht om een HBase-tabel met twee kolom families te maken.Use create command to create an HBase table with two-column families. De tabel-en kolom namen zijn hoofdletter gevoelig.The table and column names are case-sensitive. Voer de volgende opdracht in:Enter the following command:

    create 'Contacts', 'Personal', 'Office'
    
  4. Gebruik list de opdracht om alle tabellen in HBase weer te geven.Use list command to list all tables in HBase. Voer de volgende opdracht in:Enter the following command:

    list
    
  5. Gebruik put de opdracht om waarden in een opgegeven kolom in een opgegeven rij in een bepaalde tabel in te voegen.Use put command to insert values at a specified column in a specified row in a particular table. Voer de volgende opdrachten in:Enter the following commands:

    put 'Contacts', '1000', 'Personal:Name', 'John Dole'
    put 'Contacts', '1000', 'Personal:Phone', '1-425-000-0001'
    put 'Contacts', '1000', 'Office:Phone', '1-425-000-0002'
    put 'Contacts', '1000', 'Office:Address', '1111 San Gabriel Dr.'
    
  6. Gebruik scan de opdracht om de Contacts tabel gegevens te scannen en te retour neren.Use scan command to scan and return the Contacts table data. Voer de volgende opdracht in:Enter the following command:

    scan 'Contacts'
    

    HDInsight Hadoop HBase-shell

  7. Gebruik get de opdracht om de inhoud van een rij op te halen.Use get command to fetch contents of a row. Voer de volgende opdracht in:Enter the following command:

    get 'Contacts', '1000'
    

    U ziet vergelijk bare resultaten als met scan de opdracht omdat er slechts één rij is.You see similar results as using the scan command because there is only one row.

    Zie Introduction to Apache HBase schema design(Engelstalig) voor meer informatie over het HBase-tabel schema.For more information about the HBase table schema, see Introduction to Apache HBase Schema Design. Zie de Naslag Gids voor Apache HBasevoor meer HBase-opdrachten.For more HBase commands, see Apache HBase reference guide.

  8. Gebruik exit de opdracht om de HBase-interactieve shell te stoppen.Use exit command to stop the HBase interactive shell. Voer de volgende opdracht in:Enter the following command:

    exit
    

Gegevens bulksgewijs laden in de HBase-tabel met contactenTo bulk load data into the contacts HBase table

U kunt in HBase verschillende methoden gebruiken om gegevens in tabellen te laden.HBase includes several methods of loading data into tables. Zie Bulk loading (Bulkgsgewijs laden) voor meer informatie.For more information, see Bulk loading.

Een voor beeld van een gegevens bestand is te vinden in een open wasb://hbasecontacts\@hditutorialdata.blob.core.windows.net/contacts.txtbare BLOB-container.A sample data file can be found in a public blob container, wasb://hbasecontacts\@hditutorialdata.blob.core.windows.net/contacts.txt. De inhoud van het gegevensbestand is:The content of the data file is:

8396    Calvin Raji      230-555-0191    230-555-0191    5415 San Gabriel Dr.
16600   Karen Wu         646-555-0113    230-555-0192    9265 La Paz
4324    Karl Xie         508-555-0163    230-555-0193    4912 La Vuelta
16891   Jonn Jackson     674-555-0110    230-555-0194    40 Ellis St.
3273    Miguel Miller    397-555-0155    230-555-0195    6696 Anchor Drive
3588    Osa Agbonile     592-555-0152    230-555-0196    1873 Lion Circle
10272   Julia Lee        870-555-0110    230-555-0197    3148 Rose Street
4868    Jose Hayes       599-555-0171    230-555-0198    793 Crawford Street
4761    Caleb Alexander  670-555-0141    230-555-0199    4775 Kentucky Dr.
16443   Terry Chander    998-555-0171    230-555-0200    771 Northridge Drive

U kunt een tekstbestand maken en het bestand desgewenst uploaden naar uw eigen opslagaccount.You can optionally create a text file and upload the file to your own storage account. Zie gegevens uploaden voor Apache Hadoop-taken in HDInsightvoor instructies.For the instructions, see Upload data for Apache Hadoop jobs in HDInsight.

Deze procedure maakt gebruik Contacts van de HBase-tabel die u in de laatste procedure hebt gemaakt.This procedure uses the Contacts HBase table you created in the last procedure.

  1. Voer vanuit uw open SSH-verbinding de volgende opdracht uit om het gegevens bestand te transformeren naar transformeren naar en op te slaan op een Dimporttsv.bulk.outputrelatief pad dat is opgegeven door.From your open ssh connection, run the following command to transform the data file to StoreFiles and store at a relative path specified by Dimporttsv.bulk.output.

    hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns="HBASE_ROW_KEY,Personal:Name,Personal:Phone,Office:Phone,Office:Address" -Dimporttsv.bulk.output="/example/data/storeDataFileOutput" Contacts wasb://hbasecontacts@hditutorialdata.blob.core.windows.net/contacts.txt
    
  2. Voer de volgende opdracht uit om de gegevens te /example/data/storeDataFileOutput uploaden van naar de HBase-tabel:Run the following command to upload the data from /example/data/storeDataFileOutput to the HBase table:

    hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /example/data/storeDataFileOutput Contacts
    
  3. U kunt de HBase-shell openen en de scan -opdracht gebruiken om de inhoud van de tabel weer te geven.You can open the HBase shell, and use the scan command to list the table contents.

Apache Hive gebruiken voor het opvragen van Apache HBaseUse Apache Hive to query Apache HBase

U kunt gegevens in HBase-tabellen opvragen door gebruik te maken van Apache Hive.You can query data in HBase tables by using Apache Hive. In dit gedeelte maakt u een Hive-tabel die is toegewezen aan de HBase-tabel en deze gebruikt om een query voor de gegevens in uw HBase-tabel uit te voeren.In this section, you create a Hive table that maps to the HBase table and uses it to query the data in your HBase table.

  1. Gebruik vanuit uw open SSH-verbinding de volgende opdracht om Beeline te starten:From your open ssh connection, use the following command to start Beeline:

    beeline -u 'jdbc:hive2://localhost:10001/;transportMode=http' -n admin
    

    Zie voor meer informatie over Beeline Hive gebruiken met Hadoop in HDInsight met Beeline.For more information about Beeline, see Use Hive with Hadoop in HDInsight with Beeline.

  2. Voer het volgende HiveQL -script uit om een Hive-tabel te maken die is toegewezen aan de tabel HBase.Run the following HiveQL script to create a Hive table that maps to the HBase table. Zorg ervoor dat u de voorbeeld tabel hebt gemaakt die eerder in dit artikel is vermeld met behulp van de HBase-shell voordat u deze instructie uitvoert.Make sure that you have created the sample table referenced earlier in this article by using the HBase shell before you run this statement.

    CREATE EXTERNAL TABLE hbasecontacts(rowkey STRING, name STRING, homephone STRING, officephone STRING, officeaddress STRING)
    STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    WITH SERDEPROPERTIES ('hbase.columns.mapping' = ':key,Personal:Name,Personal:Phone,Office:Phone,Office:Address')
    TBLPROPERTIES ('hbase.table.name' = 'Contacts');
    
  3. Voer het volgende HiveQL-script uit om een query uit te voeren voor de gegevens in de HBase-tabel:Run the following HiveQL script to query the data in the HBase table:

    SELECT count(rowkey) AS rk_count FROM hbasecontacts;
    
  4. Gebruik !exitom Beeline af te sluiten.To exit Beeline, use !exit.

  5. Als u uw SSH-verbinding wilt exitafsluiten, gebruikt u.To exit your ssh connection, use exit.

HBase REST API's gebruiken met CurlUse HBase REST APIs using Curl

De REST API is beveiligd via basisverificatie.The REST API is secured via basic authentication. U moet aanvragen altijd uitvoeren via een beveiligde HTTP-verbinding (HTTPS). Zo zorgt u ervoor dat uw referenties veilig worden verzonden naar de server.You shall always make requests by using Secure HTTP (HTTPS) to help ensure that your credentials are securely sent to the server.

  1. Start de omgevings variabele voor gebruiks gemak.Initiate environment variable for ease of use. Bewerk de onderstaande opdrachten door te MYPASSWORD vervangen door het wacht woord voor de cluster aanmelding.Edit the commands below by replacing MYPASSWORD with the cluster login password. Vervang MYCLUSTERNAME door de naam van uw HBase-cluster.Replace MYCLUSTERNAME with the name of your HBase cluster. Voer vervolgens de opdrachten in.Then enter the commands.

    export password='MYPASSWORD'
    export clustername=MYCLUSTERNAME
    
  2. Gebruik de volgende opdracht om een lijst met bestaande HBase-tabellen weer te geven:Use the following command to list the existing HBase tables:

    curl -u admin:$password \
    -G https://$clustername.azurehdinsight.net/hbaserest/
    
  3. Gebruik de volgende opdracht om een nieuwe HBase-tabel met twee kolomfamilies te maken:Use the following command to create a new HBase table with two-column families:

    curl -u admin:$password \
    -X PUT "https://$clustername.azurehdinsight.net/hbaserest/Contacts1/schema" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "{\"@name\":\"Contact1\",\"ColumnSchema\":[{\"name\":\"Personal\"},{\"name\":\"Office\"}]}" \
    -v
    

    Het schema wordt opgegeven in de JSON-indeling.The schema is provided in the JSon format.

  4. Gebruik de volgende opdracht om enkele gegevens in te voegen:Use the following command to insert some data:

    curl -u admin:$password \
    -X PUT "https://$clustername.azurehdinsight.net/hbaserest/Contacts1/false-row-key" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "{\"Row\":[{\"key\":\"MTAwMA==\",\"Cell\": [{\"column\":\"UGVyc29uYWw6TmFtZQ==\", \"$\":\"Sm9obiBEb2xl\"}]}]}" \
    -v
    

    U moet de waarden die in de schakeloptie -d zijn opgegeven, met Base64 coderen.You must base64 encode the values specified in the -d switch. In het voorbeeld:In the example:

    • MTAwMA = =: 1000MTAwMA==: 1000

    • UGVyc29uYWw6TmFtZQ = =: Persoonlijk: naamUGVyc29uYWw6TmFtZQ==: Personal:Name

    • Sm9obiBEb2xl: John DavidsSm9obiBEb2xl: John Dole

      false-row-key maakt het mogelijk om meerdere waarden (in batch) in te voegen.false-row-key allows you to insert multiple (batched) values.

  5. Gebruik de volgende opdracht om een rij te verkrijgen:Use the following command to get a row:

    curl -u admin:$password \
    GET "https://$clustername.azurehdinsight.net/hbaserest/Contacts1/1000" \
    -H "Accept: application/json" \
    -v
    

Zie Apache HBase Reference Guide (Snelzoekgids voor Apache HBase) voor meer informatie over HBase REST.For more information about HBase Rest, see Apache HBase Reference Guide.

Notitie

Thrift wordt niet ondersteund door HBase in HDInsight.Thrift is not supported by HBase in HDInsight.

Wanneer u Curl of een andere REST-communicatie gebruikt met WebHCat, moet u de aanvragen verifiëren door de gebruikersnaam en het wachtwoord voor de beheerder van het HDInsight-cluster op te geven.When using Curl or any other REST communication with WebHCat, you must authenticate the requests by providing the user name and password for the HDInsight cluster administrator. U moet ook de clusternaam gebruiken als onderdeel van de URI (Uniform Resource Identifier) die wordt gebruikt om de aanvragen naar de server te verzenden:You must also use the cluster name as part of the Uniform Resource Identifier (URI) used to send the requests to the server:

   curl -u <UserName>:<Password> \
   -G https://<ClusterName>.azurehdinsight.net/templeton/v1/status

Het antwoord dat u ontvangt, is vergelijkbaar met het volgende antwoord:You should receive a response similar to the following response:

   {"status":"ok","version":"v1"}

De clusterstatus controlerenCheck cluster status

HBase in HDInsight wordt geleverd met een webgebruikersinterface voor het bewaken van clusters.HBase in HDInsight ships with a Web UI for monitoring clusters. Met de webgebruikersinterface kunt u statistieken of informatie over regio's aanvragen.Using the Web UI, you can request statistics or information about regions.

De HBase-hoofdinterface openenTo access the HBase Master UI

  1. Meld u aan bij de Ambari- https://CLUSTERNAME.azurehdinsight.net webgebruikersinterface op waar CLUSTERNAME de naam van uw HBase-cluster is.Sign into the Ambari Web UI at https://CLUSTERNAME.azurehdinsight.net where CLUSTERNAME is the name of your HBase cluster.

  2. Selecteer HBase in het menu links.Select HBase from the left menu.

  3. Selecteer snelle koppelingen boven aan de pagina, wijs de actieve Zookeeper-knooppunt koppeling aan en selecteer vervolgens HBase Master gebruikers interface.Select Quick links on the top of the page, point to the active Zookeeper node link, and then select HBase Master UI. De interface wordt in een nieuw browsertabblad geopend:The UI is opened in another browser tab:

    HDInsight HBase HMaster-interface

    De HBase-hoofdinterface bevat de volgende onderdelen:The HBase Master UI contains the following sections:

    • regioserversregion servers
    • back-upmastersbackup masters
    • tabellentables
    • takentasks
    • softwarekenmerkensoftware attributes

Resources opschonenClean up resources

Om inconsistenties te voorkomen, wordt u aangeraden de HBase-tabellen uit te schakelen voordat u het cluster verwijdert.To avoid inconsistencies, we recommend that you disable the HBase tables before you delete the cluster. U kunt de HBase-opdracht disable 'Contacts'gebruiken.You can use the HBase command disable 'Contacts'. Als u deze toepassing verder niet meer gebruikt, verwijdert u het HBase-cluster dat u hebt gemaakt, via de volgende stappen:If you're not going to continue to use this application, delete the HBase cluster that you created with the following steps:

  1. Meld u aan bij Azure Portal.Sign in to the Azure portal.
  2. Typ HDInsight in het Zoekvak bovenaan.In the Search box at the top, type HDInsight.
  3. Selecteer onder Services de optie HDInsight-clusters.Select HDInsight clusters under Services.
  4. Klik in de lijst met HDInsight-clusters die wordt weergegeven, op de ... naast het cluster dat u voor deze zelfstudie hebt gemaakt.In the list of HDInsight clusters that appears, click the ... next to the cluster that you created for this tutorial.
  5. Klik op Verwijderen.Click Delete. Klik op Ja.Click Yes.

Volgende stappenNext steps

In deze zelf studie hebt u geleerd hoe u een Apache HBase-cluster maakt en hoe u tabellen maakt en de gegevens in deze tabellen weergeeft vanuit de HBase-shell.In this tutorial, you learned how to create an Apache HBase cluster and how to create tables and view the data in those tables from the HBase shell. U hebt ook geleerd hoe u een Hive-query op gegevens in HBase-tabellen uitvoert en hoe u de HBase C# REST API's gebruikt om een HBase-tabel te maken en gegevens op te halen uit de tabel.You also learned how to use a Hive query on data in HBase tables and how to use the HBase C# REST APIs to create an HBase table and retrieve data from the table. Voor meer informatie zie:To learn more, see: