Kurz: použití Apache HBA v 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. Obecné informace o HBase najdete v tématu Přehled HBase ve službě HDInsight.
V tomto kurzu se naučíte:
- Vytvoření clusteru Apache HBA
- Vytváření tabulek HBA a vkládání dat
- Použití Apache Hive k dotazování Apache HBA
- Použití rozhraní REST API HBase pomocí Curl
- Kontrola stavu clusteru
Požadavky
Klient SSH. Další informace najdete v tématu Připojení ke službě HDInsight (Apache Hadoop) pomocí SSH.
Bash. příklady v tomto článku používají pro příkazy oblé prostředí Bash v Windows 10. pokyny k instalaci najdete v tématu průvodce instalací Subsystém Windows pro Linux pro Windows 10 . Budou fungovat i další prostředí UNIX . příklady složených s některými drobnými úpravami mohou pracovat na příkazovém řádku Windows. případně můžete použít rutinu Windows PowerShell Invoke-RestMethod.
Vytvoření clusteru Apache HBA
Následující postup používá šablonu Azure Resource Manager k vytvoření clusteru HBA. šablona také vytvoří závislý výchozí účet Azure Storage. 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.
Výběrem následujícího obrázku otevřete šablonu v Azure Portal. Šablona se nachází v šablonách rychlý Start pro Azure.
V dialogovém okně vlastní nasazení zadejte následující hodnoty:
Vlastnost Popis Předplatné Vyberte předplatné Azure, které se použije k vytvoření clusteru. Skupina prostředků Vytvořte skupinu správy prostředků Azure nebo použijte existující. Umístění Zadejte umístění skupiny prostředků. Název clusteru Zadejte název clusteru HBA. Přihlašovací jméno a heslo clusteru Výchozí přihlašovací jméno je admin. Uživatelské jméno a heslo SSH Výchozí uživatelské jméno je sshuser. Další parametry jsou volitelné.
Každý cluster obsahuje závislost účtu Azure Storage. Po odstranění clusteru zůstanou tato data v účtu úložiště. Výchozí název účtu úložiště clusteru je název clusteru s připojenou příponou „úložiště“. Je pevně zakódované v části proměnné šablony.
Vyberte Souhlasím s podmínkami a ujednáními uvedenými nahoře a pak vyberte koupit. Vytvoření clusteru trvá přibližně 20 minut.
Po odstranění clusteru služby HBase můžete vytvořit jiný cluster HBase pomocí stejného výchozího kontejneru blob. Nový cluster převezme tabulky HBase, které jste vytvořili v původním clusteru. Aby se zabránilo nekonzistencím, doporučujeme zakázat tabulky HBase před odstraněním clusteru.
Vytváření tabulek a vkládání dat
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.
Pro většinu osob se data zobrazí v tabulkovém formátu:
V rámci adaptérů HBA (implementace cloudu BigTable) vypadají stejná data jako:
Použití prostředí HBase
Pomocí
sshpříkazu se připojte ke clusteru HBA. Níže uvedený příkaz upravte nahrazenímCLUSTERNAMEnázvem vašeho clusteru a zadáním příkazu:ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.netPomocí
hbase shellpříkazu spusťte interaktivní prostředí pro adaptéry HBA. Do připojení SSH zadejte následující příkaz:hbase shellPomocí
createpříkazu vytvořte tabulku HBA se dvěma skupinami sloupců. V názvech tabulek a sloupců se rozlišují velká a malá písmena. Zadejte následující příkaz:create 'Contacts', 'Personal', 'Office'listK vypsání všech tabulek v adaptérech HBA použijte příkaz. Zadejte následující příkaz:listPoužijte
putpříkaz pro vložení hodnot do zadaného sloupce v zadaném řádku v konkrétní tabulce. Zadejte následující příkazy: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.'Pomocí
scanpříkazu naskenujte a vraťteContactsdata tabulky. Zadejte následující příkaz:scan 'Contacts'
getK načtení obsahu řádku použijte příkaz. Zadejte následující příkaz:get 'Contacts', '1000'Podobné výsledky se zobrazí při použití
scanpříkazu, protože existuje pouze jeden řádek.Další informace o schématu tabulky HBA najdete v tématu Úvod do návrhu schématu Apache HBA. Další příkazy HBase najdete v tématu Referenční příručka Apache HBase.
Pomocí
exitpříkazu zastavte prostředí HBA interaktivní prostředí. Zadejte následující příkaz:exit
Hromadné načítání dat do tabulky kontaktů HBase
HBase obsahuje několik metod načítání dat do tabulek. Další informace naleznete v tématu Hromadné načítání.
Ukázkový datový soubor najdete ve veřejném kontejneru objektů blob: wasb://hbasecontacts@hditutorialdata.blob.core.windows.net/contacts.txt. Obsah datového souboru je:
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ě. pokyny najdete v tématu Upload data pro úlohy Apache Hadoop v HDInsight.
Tento postup používá Contacts tabulku HBA, kterou jste vytvořili v posledním postupu.
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.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.txtSpuštěním následujícího příkazu nahrajte data z
/example/data/storeDataFileOutputdo tabulky HBA:hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /example/data/storeDataFileOutput ContactsMůžete otevřít prostředí HBA a použít
scanpříkaz k vypsání obsahu tabulky.
Použití Apache Hive k dotazování Apache HBA
Pomocí Apache Hivemůžete zadávat dotazy na data v adaptérech HBA. 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.
V otevřeném připojení SSH spusťte Beeline pomocí následujícího příkazu:
beeline -u 'jdbc:hive2://localhost:10001/;transportMode=http' -n adminDalší informace o Beeline najdete v tématu Použití Hivu s Hadoopem ve službě HDInsight s Beeline.
Spuštěním následujícího skriptu HiveQL vytvořte tabulku podregistru, která se mapuje na tabulku HBA. 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.
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');Spusťte následující skript HiveQL pro dotaz na data v tabulce HBase:
SELECT count(rowkey) AS rk_count FROM hbasecontacts;K ukončení Beeline použijte
!exit.K ukončení připojení SSH použijte
exit.
Samostatné clustery podregistru a HBA
Dotaz na podregistr pro přístup k datům HBA nemusíte spouštět z clusteru HBA. Každý cluster, který je součástí podregistru (včetně Sparku, Hadoop, HBA nebo interaktivního dotazu), se dá použít k dotazování na data HBA za předpokladu, že jsou splněné následující kroky:
- Oba clustery musí být připojeny ke stejnému Virtual Network a podsíti
- Zkopírujte
/usr/hdp/$(hdp-select --version)/hbase/conf/hbase-site.xmlz clusteru HBA hlavních do clusteru podregistru hlavních a workernodes.
Zabezpečené clustery
Data HBA je také možné dotazovat z podregistru pomocí adaptérů HBA s povoleným protokolem ESP:
- Pokud budete postupovat podle vzoru více clusterů, musí být oba clustery povolené ESP.
- Pokud chcete, aby se v podregistru mohly dotazovat data HBA, ujistěte se, že
hiveuživatel má udělená oprávnění pro přístup k datům HBA přes modul plug-in HBA Ranger. - Při použití samostatných clusterů s povoleným protokolem ESP se
/etc/hostsmusí obsah z clusteru HBA hlavních připojit k/etc/hostspodregistru clusteru hlavních a workernodes.
Poznámka
Po škálování obou clusterů se /etc/hosts musí znovu připojit.
Použít REST API HBA přes kudrlinkou
REST API HBA jsou zabezpečené prostřednictvím základního ověřování. 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ě.
Pokud chcete povolit REST API HBA v clusteru HDInsight, přidejte do oddílu akce skriptu následující vlastní spouštěcí skript. Spouštěcí skript můžete přidat po vytvoření clusteru nebo po jeho vytvoření. V poli typ uzlu vyberte servery oblastí , aby se zajistilo, že se skript spustí jenom v adaptérech HBA na serverech oblasti.
#! /bin/bash THIS_MACHINE=`hostname` if [[ $THIS_MACHINE != wn* ]] then printf 'Script to be executed only on worker nodes' exit 0 fi RESULT=`pgrep -f RESTServer` if [[ -z $RESULT ]] then echo "Applying mitigation; starting REST Server" sudo python /usr/lib/python2.7/dist-packages/hdinsight_hbrest/HbaseRestAgent.py else echo "Rest server already running" exit 0 fiNastavte proměnnou prostředí pro snadné použití. Níže uvedené příkazy upravte tak, že nahradíte
MYPASSWORDheslo pro přihlášení ke clusteru. NahraďteMYCLUSTERNAMEnázvem vašeho clusteru HBA. Pak zadejte příkazy.export password='MYPASSWORD' export clustername=MYCLUSTERNAMEPomocí následujícího příkazu můžete zobrazit seznam existujících tabulek HBase:
curl -u admin:$password \ -G https://$clustername.azurehdinsight.net/hbaserest/Pokud chcete vytvořit novou tabulku HBase se dvěma skupinami sloupců, použijte následující příkaz:
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\"}]}" \ -vSchéma je k dispozici ve formátu JSon.
Chcete-li vložit nějaká data použijte následující příkaz:
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\"}]}]}" \ -vKódování Base64 hodnoty zadané v přepínači-d V tomto příkladu:
MTAwMA==: 1000
UGVyc29uYWw6TmFtZQ = =: osobní: název
Sm9obiBEb2xl: John Dole
false-row-key umožňuje vložit více (dávkových) hodnot.
Pro získání řádku použijte následující příkaz:
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.
Poznámka
Thrift není podporovaný HBase v 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. 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:
curl -u <UserName>:<Password> \
-G https://<ClusterName>.azurehdinsight.net/templeton/v1/status
Měla by se zobrazit odpověď podobná následující odpovědi:
{"status":"ok","version":"v1"}
Kontrola stavu clusteru
HBase v HDInsight se dodává s webovým uživatelským rozhraním pro sledování clusterů. Pomocí webového uživatelského rozhraní, můžete žádat o statistické údaje nebo informace o oblastech.
Přístup k hlavnímu uživatelskému rozhraní HBase
Přihlaste se k webovému uživatelskému rozhraní Ambari,
https://CLUSTERNAME.azurehdinsight.netkdeCLUSTERNAMEje název vašeho clusteru HBA.V nabídce vlevo vyberte HBA .
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í. Uživatelské rozhraní se otevře na nové kartě prohlížeče:
Hlavní uživatelské rozhraní HBase obsahuje tyto části:
- oblastní servery
- zálohování hlavních serverů
- V tabulkách
- úlohy
- atributy softwaru
Rekreace clusteru
Po odstranění clusteru služby HBase můžete vytvořit jiný cluster HBase pomocí stejného výchozího kontejneru blob. Nový cluster převezme tabulky HBase, které jste vytvořili v původním clusteru. Aby ale nedocházelo k nekonzistencím, doporučujeme před odstraněním clusteru zakázat tabulky HBA.
Můžete použít příkaz HBA disable 'Contacts' .
Vyčištění prostředků
Pokud nebudete tuto aplikaci nadále používat, odstraňte cluster HBA, který jste vytvořili, pomocí následujícího postupu:
- Přihlaste se k webu Azure Portal.
- Do vyhledávacího pole v horní části zadejte HDInsight.
- V části služby vyberte clustery HDInsight .
- V seznamu clusterů HDInsight, které se zobrazí, klikněte na ... vedle clusteru, který jste vytvořili pro účely tohoto kurzu.
- Klikněte na Odstranit. Klikněte na Ano.
Další kroky
V tomto kurzu jste zjistili, jak vytvořit cluster Apache HBA. A vytváření tabulek a zobrazení dat v těchto tabulkách z prostředí HBA. Zjistili jste také, jak použít dotaz na podregistr na data v rámci tabulek HBA. A způsob použití REST APIů HBA v C# k vytvoření tabulky HBA a načtení dat z tabulky. Další informace najdete v následujících tématech:
