Oktatóanyag: Az Apache HBase használata az Azure HDInsightbanTutorial: Use Apache HBase in Azure HDInsight

Ez az oktatóanyag bemutatja, hogyan hozhat létre Apache HBase-fürtöt az Azure HDInsightban, hogyan hozhat létre HBase-táblákat és lekérdezési táblákat az Apache Hive használatával.This tutorial demonstrates how to create an Apache HBase cluster in Azure HDInsight, create HBase tables, and query tables by using Apache Hive. A HBase-re vonatkozó általános információért lásd: HDInsight HBase overview (A HDInsight HBase áttekintése).For general HBase information, see HDInsight HBase overview.

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:In this tutorial, you learn how to:

  • Apache HBase fürt létrehozásaCreate Apache HBase cluster
  • HBase táblák létrehozása és adatok beszúrásaCreate HBase tables and insert data
  • Apache Hive használata az Apache HBase lekérdezéséhezUse Apache Hive to query Apache HBase
  • HBase REST API-k használata Curl használatávalUse HBase REST APIs using Curl
  • A fürt állapotának ellenőrzéseCheck cluster status

ElőfeltételekPrerequisites

Apache HBase fürt létrehozásaCreate Apache HBase cluster

Az alábbi eljárás egy Azure Resource Manager-sablont használ egy HBase-fürt és a függő alapértelmezett Azure Storage-fiók létrehozásához.The following procedure uses an Azure Resource Manager template to create an HBase cluster and the dependent default Azure Storage account. Az eljárásban és egyéb fürtlétrehozási módszerekben használt paraméterek megértéséhez lásd: Create Linux-based Hadoop clusters in HDInsight (Linux-alapú Hadoop-fürtök létrehozása a HDInsightban).To understand the parameters used in the procedure and other cluster creation methods, see Create Linux-based Hadoop clusters in HDInsight.

  1. Válassza ki az alábbi képet a sablon megnyitásához az Azure Portalon.Select the following image to open the template in the Azure portal. A sablon az Azure rövid útmutató sablonjaibantalálható.The template is located in Azure quickstart templates.

    Deploy to Azure button for new cluster

  2. Az Egyéni üzembe helyezés panelen adja meg a következő értékeket:From the Custom deployment blade, enter the following values:

    TulajdonságProperty LeírásDescription
    ElőfizetésSubscription Válassza ki a fürt létrehozásához használt Azure-előfizetést.Select your Azure subscription that is used to create the cluster.
    ErőforráscsoportResource group Hozzon létre egy Azure Erőforrás-kezelési csoportot, vagy használjon egy meglévőt.Create an Azure Resource management group or use an existing one.
    HelyLocation Adja meg az erőforráscsoport helyét.Specify the location of the resource group.
    ClusterNameClusterName Adja meg a HBase-fürt nevét.Enter a name for the HBase cluster.
    A fürt bejelentkezési neve és jelszavaCluster login name and password Az alapértelmezett bejelentkezési név az admin.The default login name is admin.
    SSH-felhasználónév és jelszóSSH username and password Az alapértelmezett felhasználónév az sshuser.The default username is sshuser.

    Más paraméterek opcionálisak.Other parameters are optional.

    Minden egyes fürt az Azure Storage-fióktól függ.Each cluster has an Azure Storage account dependency. A fürtök törlése után az adatok megmaradnak a tárfiókban.After you delete a cluster, the data retains in the storage account. A fürt alapértelmezett tárfiókneve a fürt neve a „store” kifejezéssel kiegészítve.The cluster default storage account name is the cluster name with "store" appended. A név szoftveresen kötött a sablonváltozók szakaszban.It is hardcoded in the template variables section.

  3. Válassza az Elfogadom a fent meghatározott feltételeket, majd a Vásárláslehetőséget.Select I agree to the terms and conditions stated above, and then select Purchase. Egy fürt létrehozása nagyjából 20 percet vesz igénybe.It takes about 20 minutes to create a cluster.

A HBase-fürtök törlése után egy másik HBase-fürtöt hozhat létre ugyanazon alapértelmezett blobtárolóval.After an HBase cluster is deleted, you can create another HBase cluster by using the same default blob container. Az új fürt felveszi az eredeti fürtben létrehozott HBase-táblákat.The new cluster picks up the HBase tables you created in the original cluster. Az inkonzisztenciák elkerülése érdekében javasoljuk, hogy a fürt törlése előtt tiltsa le a HBase-táblákat.To avoid inconsistencies, we recommend that you disable the HBase tables before you delete the cluster.

Táblák létrehozása és adatok beszúrásaCreate tables and insert data

Az SSH segítségével csatlakozhat a HBase-fürtökhöz, majd az Apache HBase Shell segítségével HBase táblákat hozhat létre, adatokat szúrhat be és lekérdezési adatokat.You can use SSH to connect to HBase clusters and then use Apache HBase Shell to create HBase tables, insert data, and query data.

A legtöbbek számára az adatok táblázatos formátumban jelennek meg:For most people, data appears in the tabular format:

HDInsight Apache HBase táblázatos adatok

A HBase (végrehajtása Cloud BigTable), ugyanazokaz adatok néz ki:In HBase (an implementation of Cloud BigTable), the same data looks like:

HDInsight Apache HBase BigTable adatok

A Hbase-rendszerhéj használataTo use the HBase shell

  1. A ssh Parancs segítségével csatlakozzon a HBase fürthöz.Use ssh command to connect to your HBase cluster. Az alábbi parancs szerkesztése a fürt nevének cseréjével, CLUSTERNAME majd írja be a parancsot: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. A hbase shell HBase interaktív rendszerhéj indításához használja a parancsot.Use hbase shell command to start the HBase interactive shell. Írja be a következő parancsot az SSH-kapcsolatba:Enter the following command in your SSH connection:

    hbase shell
    
  3. A create parancs segítségével hozzon létre egy HBase táblát kétoszlopos családokkal.Use create command to create an HBase table with two-column families. A tábla- és oszlopnevekben a kis- és nagybetűket nem lehet figyelembe.The table and column names are case-sensitive. Írja be a következő parancsot:Enter the following command:

    create 'Contacts', 'Personal', 'Office'
    
  4. A list parancs segítségével a HBase összes tábláját listázhassa.Use list command to list all tables in HBase. Írja be a következő parancsot:Enter the following command:

    list
    
  5. A put parancs segítségével értékeket szúrhat be egy adott tábla megadott sorának megadott oszlopába.Use put command to insert values at a specified column in a specified row in a particular table. Írja be a következő parancsokat: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. A scan parancs segítségével beszkandelheti és visszaadhatja a Contacts táblaadatait.Use scan command to scan and return the Contacts table data. Írja be a következő parancsot:Enter the following command:

    scan 'Contacts'
    

    HDInsight Apache Hadoop HBase rendszerhéj

  7. A get parancs segítségével lekéri egy sor tartalmát.Use get command to fetch contents of a row. Írja be a következő parancsot:Enter the following command:

    get 'Contacts', '1000'
    

    Hasonló eredményeket lát, scan mint a parancs használata, mert csak egy sor van.You see similar results as using the scan command because there is only one row.

    A HBase táblasémáról további információt az Apache HBase sématervezés – bevezetés című témakörben talál.For more information about the HBase table schema, see Introduction to Apache HBase Schema Design. További Hbase-parancsokért lásd: Apache HBase reference guide (Apache HBase referencia-útmutató).For more HBase commands, see Apache HBase reference guide.

  8. A exit Parancs segítségével állítsa le a HBase interaktív rendszerhéjat.Use exit command to stop the HBase interactive shell. Írja be a következő parancsot:Enter the following command:

    exit
    

Adatok kötegelt betöltése a névjegyek HBase-táblábaTo bulk load data into the contacts HBase table

A HBase több módszert tartalmaz az adatok táblába töltéséhez.HBase includes several methods of loading data into tables. További információ: Bulk loading (Kötegelt betöltés).For more information, see Bulk loading.

Egy minta adatfájl található a következő nyilvános blobtárolóban található: wasb://hbasecontacts\@hditutorialdata.blob.core.windows.net/contacts.txt.A sample data file can be found in a public blob container, wasb://hbasecontacts\@hditutorialdata.blob.core.windows.net/contacts.txt. Az adatfájl tartalma a következő: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

Igény szerint létrehozhat egy szövegfájlt, és feltöltheti a fájlt a saját tárfiókjába.You can optionally create a text file and upload the file to your own storage account. Az utasításokat az Apache Hadoop-feladatok adatainak feltöltése a HDInsightban című témakörben találja.For the instructions, see Upload data for Apache Hadoop jobs in HDInsight.

Ez az Contacts eljárás az utolsó eljárásban létrehozott HBase táblát használja.This procedure uses the Contacts HBase table you created in the last procedure.

  1. A nyitott ssh kapcsolaton futtassa a következő parancsot az adatfájl StoreFiles Dimporttsv.bulk.outputfájllá alakításához, és tárolja a.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. Futtassa a következő parancsot az adatok feltöltéséhez a HBase táblába: /example/data/storeDataFileOutputRun 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. Megnyithatja a HBase rendszerhéjat, és a scan paranccsal felsorolhatja a táblázat tartalmát.You can open the HBase shell, and use the scan command to list the table contents.

Apache Hive használata az Apache HBase lekérdezéséhezUse Apache Hive to query Apache HBase

A HBase-táblákban az Apache Hivehasználatával lekérdezheti az adatokat.You can query data in HBase tables by using Apache Hive. Ebben a szakaszban egy, a HBase-táblára leképezést biztosító Hive-táblát hoz létre, amellyel lekérdezheti a HBase-táblában lévő adatokat.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. A nyitott ssh kapcsolatból a következő paranccsal indítsa el a Beeline-t:From your open ssh connection, use the following command to start Beeline:

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

    A Beeline-nal kapcsolatos további információkért lásd a Hive és a Hadoop együttes, a Beeline-nal történő használatát a HDInsightban ismertető cikket.For more information about Beeline, see Use Hive with Hadoop in HDInsight with Beeline.

  2. Futtassa a következő HiveQL parancsfájlt egy Hive-tábla létrehozásához, amely leképezi a HBase-táblát.Run the following HiveQL script to create a Hive table that maps to the HBase table. Győződjön meg arról, hogy a jelen cikkben korábban hivatkozott mintatáblát a HBase rendszerhéj használatával hozta létre a jelen utasítás futtatása előtt.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. Futtassa a következő HiveQL-parancsfájlt a HBase-tábla adatainak lekérdezéséhez:Run the following HiveQL script to query the data in the HBase table:

    SELECT count(rowkey) AS rk_count FROM hbasecontacts;
    
  4. A Beeline-ból !exitvaló kilépéshez használja a használatát.To exit Beeline, use !exit.

  5. Az ssh kapcsolatból exitvaló kilépéshez használja a használatát.To exit your ssh connection, use exit.

HBase REST API-k használata Curl használatávalUse HBase REST APIs using Curl

A REST API védelméről alapszintű hitelesítés gondoskodik.The REST API is secured via basic authentication. Mindig biztonságos HTTP-n (HTTPS-en) keresztül kell kéréseket végeznie, hogy a hitelesítő adatait biztonságos módon küldje el a kiszolgálónak.You shall always make requests by using Secure HTTP (HTTPS) to help ensure that your credentials are securely sent to the server.

  1. Környezeti változó kezdeményezése a könnyű használat érdekében.Initiate environment variable for ease of use. Az alábbi parancsokat MYPASSWORD a fürt bejelentkezési jelszavával szerkeszthetjük.Edit the commands below by replacing MYPASSWORD with the cluster login password. Cserélje MYCLUSTERNAME le a HBase-fürt nevére.Replace MYCLUSTERNAME with the name of your HBase cluster. Ezután adja meg a parancsokat.Then enter the commands.

    export password='MYPASSWORD'
    export clustername=MYCLUSTERNAME
    
  2. Használja az alábbi parancsot a meglévő HBase-táblák listázásához:Use the following command to list the existing HBase tables:

    curl -u admin:$password \
    -G https://$clustername.azurehdinsight.net/hbaserest/
    
  3. Használja az alábbi parancsot egy új, kétoszlopos családokkal rendelkező HBase-tábla létrehozásához: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
    

    A séma a JSon formátumban van megadva.The schema is provided in the JSon format.

  4. Használja az alábbi parancsot néhány adat beviteléhez: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
    

    A -d kapcsolóban megadott értékeket a base64 használatával kell kódolnia.You must base64 encode the values specified in the -d switch. A példában:In the example:

    • MTAwMA==: 1000MTAwMA==: 1000

    • UGVyc29uYWw6TmFtZQ==: Personal:NameUGVyc29uYWw6TmFtZQ==: Personal:Name

    • Sm9obiBEb2xl: John DoleSm9obiBEb2xl: John Dole

      A false-row-key lehetővé teszi több (kötegelt) érték beszúrását.false-row-key allows you to insert multiple (batched) values.

  5. Használja az alábbi parancsot egy sor lekéréséhez: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
    

További információ a HBase REST-ről: Apache HBase Reference Guide (Apache HBase referencia-útmutató).For more information about HBase Rest, see Apache HBase Reference Guide.

Megjegyzés

A HBase nem támogatja a Thriftet a HDInsightban.Thrift is not supported by HBase in HDInsight.

Amikor a Curl vagy más REST kommunikációt használ a WebHCattel, hitelesítenie kell a kéréseket a HDInsight fürt rendszergazdája felhasználónevének és jelszavának megadásával.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. A fürtnevet a kérések a kiszolgálóhoz küldéséhez használt egységes erőforrás-azonosító (URI) részeként is használnia kell.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

A következőhöz hasonló választ kell kapnia:You should receive a response similar to the following response:

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

A fürt állapotának ellenőrzéseCheck cluster status

A HBase a HDInsightban a fürtök megfigyelésére szolgáló webes felhasználói felülettel kapható.HBase in HDInsight ships with a Web UI for monitoring clusters. A webes felhasználói felülettel a régiók statisztikáit vagy információit kérheti le.Using the Web UI, you can request statistics or information about regions.

A HBase mesterfelületének eléréseTo access the HBase Master UI

  1. Jelentkezzen be az Ambari https://CLUSTERNAME.azurehdinsight.net web CLUSTERNAME felhasználói felületére, ahol a HBase-fürt neve található.Sign into the Ambari Web UI at https://CLUSTERNAME.azurehdinsight.net where CLUSTERNAME is the name of your HBase cluster.

  2. Válassza a Bal oldali menü HBase parancsát.Select HBase from the left menu.

  3. Válassza a gyorshivatkozások lehetőséget a lap tetején, mutasson az aktív Zookeeper csomópontra, és válassza a HBase főfelhasználói felületét.Select Quick links on the top of the page, point to the active Zookeeper node link, and then select HBase Master UI. A felület egy új böngészőlapon nyílik meg:The UI is opened in another browser tab:

    HDInsight Apache HBase HMaster felhasználói felület

    A HBase-mesterfelület az alábbi részeket tartalmazza:The HBase Master UI contains the following sections:

    • régiós kiszolgálókregion servers
    • biztonsági mentési főkiszolgálókbackup masters
    • tábláktables
    • feladatoktasks
    • szoftverattribútumoksoftware attributes

Az erőforrások eltávolításaClean up resources

Az inkonzisztenciák elkerülése érdekében javasoljuk, hogy a fürt törlése előtt tiltsa le a HBase-táblákat.To avoid inconsistencies, we recommend that you disable the HBase tables before you delete the cluster. Használhatja a HBase disable 'Contacts'parancsot .You can use the HBase command disable 'Contacts'. Ha nem fogja tovább használni ezt az alkalmazást, törölje a következő lépésekkel létrehozott HBase-fürtöt:If you're not going to continue to use this application, delete the HBase cluster that you created with the following steps:

  1. Jelentkezzen be az Azure Portalra.Sign in to the Azure portal.
  2. A felső keresőmezőbe írja be a HDInsight kifejezést.In the Search box at the top, type HDInsight.
  3. Válassza a HDInsight-fürtök et a Szolgáltatások csoportban.Select HDInsight clusters under Services.
  4. A megjelenő HDInsight-fürtök listájában kattintson az oktatóanyaghoz létrehozott fürt melletti ... elemre.In the list of HDInsight clusters that appears, click the ... next to the cluster that you created for this tutorial.
  5. Kattintson a Törlés gombra.Click Delete. Kattintson az Igen gombra.Click Yes.

További lépésekNext steps

Ebben az oktatóanyagban megtanulta, hogyan hozhat létre apache HBase-fürtöt, és hogyan hozhat létre táblákat, és hogyan tekintheti meg az adatokat ezekben a táblákban a HBase rendszerhéjból.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. Azt is megtanulta, hogyan használhat Hive-lekérdezést a HBase-táblákban lévő adatokon, és hogyan használhatja a HBase C# REST API-kat egy HBase-tábla létrehozásához és adatok lekérdezéséhez a táblából.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. További tudnivalókért lásd:To learn more, see: