Kurz: Použití Apache HBase v Azure HDInsightuTutorial: Use Apache HBase in Azure HDInsight

V tomto kurzu se dozvíte, jak vytvořit cluster Apache HBA v Azure HDInsight, vytvořit tabulky HBA a dotazovat tabulky pomocí 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. Obecné informace o adaptérech najdete v tématu Přehled HDInsight HBA.For general HBase information, see HDInsight HBase overview.

V tomto kurzu se naučíte:In this tutorial, you learn how to:

  • Vytvoření clusteru Apache HBACreate Apache HBase cluster
  • Vytváření tabulek HBA a vkládání datCreate HBase tables and insert data
  • Použití Apache Hive k dotazování Apache HBAUse Apache Hive to query Apache HBase
  • Použití rozhraní REST API HBase pomocí CurlUse HBase REST APIs using Curl
  • Kontrola stavu clusteruCheck cluster status

PožadavkyPrerequisites

Vytvoření clusteru Apache HBACreate Apache HBase cluster

Následující postup používá šablonu Azure Resource Manager k vytvoření clusteru HBA a závislého výchozího Azure Storage účtu.The following procedure uses an Azure Resource Manager template to create an HBase cluster and the dependent default Azure Storage account. Pro lepší pochopení parametrů použitých v postupu a dalších metod vytvoření clusteru si projděte téma Vytvoření Hadoop clusterů se systémem Linux v HDInsight.To understand the parameters used in the procedure and other cluster creation methods, see Create Linux-based Hadoop clusters in HDInsight.

  1. Výběrem následujícího obrázku otevřete šablonu v Azure Portal.Select the following image to open the template in the Azure portal. Šablona se nachází v šablonách rychlý Start pro Azure.The template is located in Azure quickstart templates.

    Deploy to Azure button for new cluster

  2. V okně Vlastní nasazení zadejte následující hodnoty:From the Custom deployment blade, enter the following values:

    VlastnostProperty PopisDescription
    SubscriptionSubscription Vyberte předplatné Azure, které se použije k vytvoření clusteru.Select your Azure subscription that is used to create the cluster.
    Resource groupResource group Vytvořte skupinu správy prostředků Azure nebo použijte existující.Create an Azure Resource management group or use an existing one.
    LocationLocation Zadejte umístění skupiny prostředků.Specify the location of the resource group.
    ClusterNameClusterName Zadejte název clusteru HBA.Enter a name for the HBase cluster.
    Přihlašovací jméno a heslo clusteruCluster login name and password Výchozí přihlašovací jméno je admin (správce).The default login name is admin.
    Uživatelské jméno a heslo SSHSSH username and password Výchozí uživatelské jméno je sshuser (uživatelssh).The default username is sshuser.

    Další parametry jsou volitelné.Other parameters are optional.

    Každý cluster obsahuje závislost účtu Azure Storage.Each cluster has an Azure Storage account dependency. Po odstranění clusteru se data zachovají na účtu úložiště.After you delete a cluster, the data retains in the storage account. Výchozí název účtu úložiště clusteru je název clusteru s připojenou příponou „úložiště“.The cluster default storage account name is the cluster name with "store" appended. Je pevně kódovaný v části proměnných šablon.It is hardcoded in the template variables section.

  3. Vyberte Souhlasím s podmínkami a ujednáními uvedenými nahořea pak vyberte koupit.Select I agree to the terms and conditions stated above, and then select Purchase. Vytvoření clusteru trvá přibližně 20 minut.It takes about 20 minutes to create a cluster.

Po odstranění clusteru služby HBase můžete vytvořit jiný cluster HBase pomocí stejného výchozího kontejneru blob.After an HBase cluster is deleted, you can create another HBase cluster by using the same default blob container. Nový cluster převezme tabulky HBase, které jste vytvořili v původním clusteru.The new cluster picks up the HBase tables you created in the original cluster. Aby se zabránilo nekonzistencím, doporučujeme zakázat tabulky HBase před odstraněním clusteru.To avoid inconsistencies, we recommend that you disable the HBase tables before you delete the cluster.

Vytváření tabulek a vkládání datCreate tables and insert data

Pomocí SSH se můžete připojit k clusterům HBA a pak pomocí prostředí Apache HBA vytvořit tabulky HBA, vkládat data a dotazovat data.You can use SSH to connect to HBase clusters and then use Apache HBase Shell to create HBase tables, insert data, and query data.

Pro většinu osob se data zobrazí v tabulkovém formátu:For most people, data appears in the tabular format:

Tabulková data HDInsight Apache HBA

V rámci adaptérů HBA (implementace cloudu BigTable) vypadají stejná data jako:In HBase (an implementation of Cloud BigTable), the same data looks like:

BigTable data o službě HDInsight Apache HBA

Použití prostředí HBaseTo use the HBase shell

  1. Pomocí ssh příkazu se připojte ke clusteru HBA.Use ssh command to connect to your HBase cluster. Níže uvedený příkaz upravte nahrazením CLUSTERNAME názvem vašeho clusteru a zadáním příkazu: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. Pomocí hbase shell příkazu spusťte interaktivní prostředí pro adaptéry HBA.Use hbase shell command to start the HBase interactive shell. Do připojení SSH zadejte následující příkaz:Enter the following command in your SSH connection:

    hbase shell
    
  3. Pomocí create příkazu vytvořte tabulku HBA se dvěma skupinami sloupců.Use create command to create an HBase table with two-column families. V názvech tabulek a sloupců se rozlišují velká a malá písmena.The table and column names are case-sensitive. Zadejte následující příkaz:Enter the following command:

    create 'Contacts', 'Personal', 'Office'
    
  4. K list vypsání všech tabulek v adaptérech HBA použijte příkaz.Use list command to list all tables in HBase. Zadejte následující příkaz:Enter the following command:

    list
    
  5. Použijte put příkaz pro vložení hodnot do zadaného sloupce v zadaném řádku v konkrétní tabulce.Use put command to insert values at a specified column in a specified row in a particular table. Zadejte následující příkazy: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. Pomocí scan příkazu naskenujte a Contacts vraťte data tabulky.Use scan command to scan and return the Contacts table data. Zadejte následující příkaz:Enter the following command:

    scan 'Contacts'
    

    Prostředí HDInsight Apache Hadoop HBA

  7. K get načtení obsahu řádku použijte příkaz.Use get command to fetch contents of a row. Zadejte následující příkaz:Enter the following command:

    get 'Contacts', '1000'
    

    Podobné výsledky se zobrazí při použití scan příkazu, protože existuje pouze jeden řádek.You see similar results as using the scan command because there is only one row.

    Další informace o schématu tabulky HBA najdete v tématu Úvod do návrhu schématu Apache HBA.For more information about the HBase table schema, see Introduction to Apache HBase Schema Design. Další příkazy HBA najdete v Referenční příručce k Apache HBA.For more HBase commands, see Apache HBase reference guide.

  8. Pomocí exit příkazu zastavte prostředí HBA interaktivní prostředí.Use exit command to stop the HBase interactive shell. Zadejte následující příkaz:Enter the following command:

    exit
    

Hromadné načítání dat do tabulky kontaktů HBaseTo bulk load data into the contacts HBase table

HBase obsahuje několik metod načítání dat do tabulek.HBase includes several methods of loading data into tables. Další informace naleznete v tématu Hromadné načítání.For more information, see Bulk loading.

Ukázkový datový soubor najdete ve veřejném kontejneru wasb://hbasecontacts\@hditutorialdata.blob.core.windows.net/contacts.txtobjektů BLOB.A sample data file can be found in a public blob container, wasb://hbasecontacts\@hditutorialdata.blob.core.windows.net/contacts.txt. Obsah datového souboru je: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

Volitelně můžete vytvořit textový soubor a nahrát ho do vlastního účtu úložiště.You can optionally create a text file and upload the file to your own storage account. Pokyny najdete v tématu nahrání dat pro úlohy Apache Hadoop v HDInsight.For the instructions, see Upload data for Apache Hadoop jobs in HDInsight.

Tento postup používá Contacts tabulku HBA, kterou jste vytvořili v posledním postupu.This procedure uses the Contacts HBase table you created in the last procedure.

  1. V otevřeném připojení SSH spusťte následující příkaz, který převede datový soubor na StoreFiles a uloží se do relativní cesty určené pomocí Dimporttsv.bulk.output.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. Spuštěním následujícího příkazu nahrajte data z /example/data/storeDataFileOutput do tabulky HBA: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. Můžete otevřít prostředí HBA a použít scan příkaz k vypsání obsahu tabulky.You can open the HBase shell, and use the scan command to list the table contents.

Použití Apache Hive k dotazování Apache HBAUse Apache Hive to query Apache HBase

Pomocí Apache Hivemůžete zadávat dotazy na data v adaptérech HBA.You can query data in HBase tables by using Apache Hive. V této části vytvoříte tabulku Hive, která se namapuje na tabulku HBase, a použijete ji k dotazování dat v tabulce HBase.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. V otevřeném připojení SSH spusťte Beeline pomocí následujícího příkazu:From your open ssh connection, use the following command to start Beeline:

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

    Další informace o Beeline najdete v tématu Použití Hivu s Hadoopem ve službě HDInsight s Beeline.For more information about Beeline, see Use Hive with Hadoop in HDInsight with Beeline.

  2. Spuštěním následujícího skriptu HiveQL vytvořte tabulku podregistru, která se mapuje na tabulku HBA.Run the following HiveQL script to create a Hive table that maps to the HBase table. Než spustíte tento příkaz, ujistěte se, že jste vytvořili ukázkovou tabulku, kterou jste si poznamenali dříve v tomto článku, pomocí prostředí HBA.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. Spusťte následující skript HiveQL pro dotaz na data v tabulce HBase:Run the following HiveQL script to query the data in the HBase table:

    SELECT count(rowkey) AS rk_count FROM hbasecontacts;
    
  4. K ukončení Beeline použijte !exit.To exit Beeline, use !exit.

  5. K ukončení připojení SSH použijte exit.To exit your ssh connection, use exit.

Použití rozhraní REST API HBase pomocí CurlUse HBase REST APIs using Curl

Rozhraní API REST je zabezpečeno pomocí základního ověřování.The REST API is secured via basic authentication. Požadavky byste vždy měli provádět pomocí protokolu HTTPS (Secure HTTP), čímž pomůžete zajistit, že se přihlašovací údaje budou na server odesílat bezpečně.You shall always make requests by using Secure HTTP (HTTPS) to help ensure that your credentials are securely sent to the server.

  1. Zahajte proměnnou prostředí pro snadné použití.Initiate environment variable for ease of use. Níže uvedené příkazy upravte tak, MYPASSWORD že nahradíte heslo pro přihlášení ke clusteru.Edit the commands below by replacing MYPASSWORD with the cluster login password. Nahraďte MYCLUSTERNAME názvem vašeho clusteru HBA.Replace MYCLUSTERNAME with the name of your HBase cluster. Pak zadejte příkazy.Then enter the commands.

    export password='MYPASSWORD'
    export clustername=MYCLUSTERNAME
    
  2. Pomocí následujícího příkazu můžete zobrazit seznam existujících tabulek HBase:Use the following command to list the existing HBase tables:

    curl -u admin:$password \
    -G https://$clustername.azurehdinsight.net/hbaserest/
    
  3. Pokud chcete vytvořit novou tabulku HBase se dvěma skupinami sloupců, použijte následující příkaz: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
    

    Schéma je k dispozici ve formátu JSon.The schema is provided in the JSon format.

  4. Chcete-li vložit nějaká data použijte následující příkaz: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
    

    Hodnoty určené v přepínači -d musíte zakódovat base64.You must base64 encode the values specified in the -d switch. V tomto příkladu:In the example:

    • MTAwMA = =: 1000MTAwMA==: 1000

    • UGVyc29uYWw6TmFtZQ==: Osobní: jménoUGVyc29uYWw6TmFtZQ==: Personal:Name

    • Sm9obiBEb2xl: Jan doleSm9obiBEb2xl: John Dole

      false-row-key umožňuje vložit více (dávkových) hodnot.false-row-key allows you to insert multiple (batched) values.

  5. Pro získání řádku použijte následující příkaz: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
    

Další informace o HBase Rest naleznete v tématu Referenční příručka Apache HBase.For more information about HBase Rest, see Apache HBase Reference Guide.

Poznámka

Thrift není podporovaný HBase v HDInsight.Thrift is not supported by HBase in HDInsight.

Pokud používáte Curl nebo jinou komunikaci REST s WebHCat, je třeba ověřit žádosti zadáním uživatelského jména a hesla pro správce clusteru HDInsight.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. Název clusteru také musíte použít jako součást identifikátoru URI (Uniform Resource Identifier) sloužícího k odesílání požadavků na server: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

Měla by se zobrazit odpověď podobná následující odpovědi:You should receive a response similar to the following response:

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

Kontrola stavu clusteruCheck cluster status

HBase v HDInsight se dodává s webovým uživatelským rozhraním pro sledování clusterů.HBase in HDInsight ships with a Web UI for monitoring clusters. Pomocí webového uživatelského rozhraní, můžete žádat o statistické údaje nebo informace o oblastech.Using the Web UI, you can request statistics or information about regions.

Přístup k hlavnímu uživatelskému rozhraní HBaseTo access the HBase Master UI

  1. Přihlaste se k webovému https://CLUSTERNAME.azurehdinsight.net uživatelskému rozhraní Ambari, kde CLUSTERNAME je název vašeho clusteru HBA.Sign into the Ambari Web UI at https://CLUSTERNAME.azurehdinsight.net where CLUSTERNAME is the name of your HBase cluster.

  2. V nabídce vlevo vyberte HBA .Select HBase from the left menu.

  3. V horní části stránky vyberte Rychlé odkazy , přejděte na aktivní odkaz na uzel Zookeeper a pak vyberte HBase Master uživatelské rozhraní.Select Quick links on the top of the page, point to the active Zookeeper node link, and then select HBase Master UI. Uživatelské rozhraní se otevře na nové kartě prohlížeče:The UI is opened in another browser tab:

    HMaster uživatelské rozhraní HDInsight Apache HBA

    Hlavní uživatelské rozhraní HBase obsahuje tyto části:The HBase Master UI contains the following sections:

    • oblastní serveryregion servers
    • zálohování hlavních serverůbackup masters
    • tabulkytables
    • úlohytasks
    • atributy softwarusoftware attributes

Vyčištění prostředkůClean up resources

Aby se zabránilo nekonzistencím, doporučujeme zakázat tabulky HBase před odstraněním clusteru.To avoid inconsistencies, we recommend that you disable the HBase tables before you delete the cluster. Můžete použít příkaz disable 'Contacts'HBA.You can use the HBase command disable 'Contacts'. Pokud nebudete tuto aplikaci nadále používat, odstraňte cluster HBA, který jste vytvořili, pomocí následujícího postupu:If you're not going to continue to use this application, delete the HBase cluster that you created with the following steps:

  1. Přihlaste se k webu Azure Portal.Sign in to the Azure portal.
  2. Do vyhledávacího pole v horní části zadejte HDInsight.In the Search box at the top, type HDInsight.
  3. V části službyvyberte clustery HDInsight .Select HDInsight clusters under Services.
  4. V seznamu clusterů HDInsight, které se zobrazí, klikněte na ... vedle clusteru, který jste vytvořili pro účely tohoto kurzu.In the list of HDInsight clusters that appears, click the ... next to the cluster that you created for this tutorial.
  5. Klikněte na tlačítko odstranit.Click Delete. Klikněte na Ano.Click Yes.

Další krokyNext steps

V tomto kurzu jste zjistili, jak vytvořit cluster Apache HBA a jak vytvářet tabulky a zobrazovat data v těchto tabulkách z prostředí HBA.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. Také jste se naučili, jak používat dotazy na data Hive v tabulkách HBase a jak používat rozhraní REST API HBase C# k vytvoření tabulky HBase a načtení dat z tabulky.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. Další informace naleznete v tématu:To learn more, see: