Informace o používání HDInsightu v Linuxu
Clustery Azure HDInsight poskytují Apache Hadoop ve známém linuxovém prostředí běžícím v cloudu Azure. Ve většině věcí by měla fungovat přesně jako jakákoli jiná instalace Hadoop-on-Linux. Tento dokument označuje konkrétní rozdíly, o které byste měli vědět.
Požadavky
Mnoho kroků v tomto dokumentu používá následující nástroje, které mohou být nutné nainstalovat do systému.
- cURL – používá se ke komunikaci s webovými službami.
- jq, procesor JSON příkazového řádku. Viz třída https://stedolan.github.io/jq/.
- Azure CLI – slouží ke vzdálené správě služeb Azure.
- Klient SSH. Další informace najdete v tématu Připojení ke službě HDInsight (Apache Hadoop) pomocí SSH.
Uživatelé
Pokud není připojený k doméně, hdInsight by se měl považovat za systém s jedním uživatelem. V clusteru se vytvoří jeden uživatelský účet SSH s oprávněními na úrovni správce. Můžete vytvořit další účty SSH, ale mají také přístup správce ke clusteru.
HDInsight připojený k doméně podporuje více uživatelů a podrobnější oprávnění a nastavení rolí. Další informace najdete v tématu Správa clusterů HDInsight připojených k doméně.
Názvy domén
Plně kvalifikovaný název domény (FQDN), který se má použít při připojování ke clusteru z internetu, je CLUSTERNAME.azurehdinsight.net
nebo CLUSTERNAME-ssh.azurehdinsight.net
(jenom pro SSH).
Každý uzel v clusteru má interně název přiřazený během konfigurace clusteru. Názvy clusterů najdete na stránce Hostitelé ve webovém uživatelském rozhraní Ambari. K vrácení seznamu hostitelů z rozhraní Ambari REST API můžete použít také následující:
curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/hosts" | jq '.items[].Hosts.host_name'
Nahraďte CLUSTERNAME
názvem svého clusteru. Po zobrazení výzvy zadejte heslo pro účet správce. Tento příkaz vrátí dokument JSON, který obsahuje seznam hostitelů v clusteru. jq se používá k extrahování host_name
hodnoty prvku pro každého hostitele.
Pokud potřebujete najít název uzlu pro konkrétní službu, můžete se na tuto komponentu dotazovat Ambari. Pokud chcete například najít hostitele pro uzel názvu HDFS, použijte následující příkaz:
curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/HDFS/components/NAMENODE" | jq '.host_components[].HostRoles.host_name'
Tento příkaz vrátí dokument JSON popisující službu a pak jq vytáhne pouze host_name
hodnotu pro hostitele.
Vzdálený přístup ke službám
Ambari (web) -
https://CLUSTERNAME.azurehdinsight.net
Ověřte se pomocí uživatele a hesla správce clusteru a pak se přihlaste k Ambari.
Ověřování je prostý text – vždy používejte https, abyste zajistili, že je připojení zabezpečené.
Důležité
Některé webové uživatelské rozhraní dostupné prostřednictvím přístupových uzlů Ambari s použitím interního názvu domény. Interní názvy domén nejsou veřejně přístupné přes internet. Při pokusu o přístup k některým funkcím přes internet se může zobrazit chyba server nenalezena.
Pokud chcete použít úplnou funkčnost webového uživatelského rozhraní Ambari, použijte tunel SSH k proxy webovému provozu do hlavního uzlu clusteru. Viz Použití tunelového propojení SSH pro přístup k webovému uživatelskému rozhraní Apache Ambari, ResourceManageru, JobHistory, NameNode, Oozie a dalším webovým uživatelským rozhraním.
Ambari (REST) -
https://CLUSTERNAME.azurehdinsight.net/ambari
Poznámka:
Ověřte se pomocí uživatele a hesla správce clusteru.
Ověřování je prostý text – vždy používejte https, abyste zajistili, že je připojení zabezpečené.
WebHCat (Templeton) -
https://CLUSTERNAME.azurehdinsight.net/templeton
Poznámka:
Ověřte se pomocí uživatele a hesla správce clusteru.
Ověřování je prostý text – vždy používejte https, abyste zajistili, že je připojení zabezpečené.
SSH – CLUSTERNAME-ssh.azurehdinsight.net na portu 22 nebo 23. Port 22 slouží k připojení k primárnímu hlavnímu uzlu, zatímco 23 se používá pro připojení k sekundárnímu uzlu. Další informace o hlavníchuzch
Poznámka:
K hlavním uzlům clusteru můžete přistupovat pouze přes SSH z klientského počítače. Po připojení pak můžete k pracovním uzlům přistupovat pomocí SSH z hlavního uzlu.
Další informace najdete v dokumentu o portech používaných službami Apache Hadoop v dokumentu HDInsight .
Umístění souborů
Soubory související s Hadoopem najdete na uzlech clusteru na adrese /usr/hdp
. Tento adresář obsahuje následující podadresáře:
- 2.6.5.3009-43: Název adresáře je verze platformy Hadoop, kterou používá HDInsight. Číslo v clusteru se může lišit od čísla uvedeného tady.
- current: Tento adresář obsahuje odkazy na podadresáře v adresáři 2.6.5.3009-43 . Tento adresář existuje, takže si nemusíte pamatovat číslo verze.
Ukázková data a soubory JAR naleznete v systému souborů Hadoop Distributed File System at /example
a /HdiSamples
.
HDFS, Azure Storage a Data Lake Storage
Ve většině distribucí Hadoopu se data ukládají v HDFS. HDFS je podporováno místním úložištěm na počítačích v clusteru. Použití místního úložiště může být nákladné pro cloudové řešení, na kterém se účtují každou hodinu nebo minutu za výpočetní prostředky.
Když používáte HDInsight, datové soubory se ukládají v cloudu přizpůsobitelným a odolným způsobem pomocí Azure Blob Storage a volitelně Azure Data Lake Storage Gen2. Tyto služby poskytují následující výhody:
- Levné dlouhodobé skladování.
- Přístupnost z externích služeb, jako jsou weby, nástroje pro nahrávání a stahování souborů, různé jazykové sady SDK a webové prohlížeče.
- Velká kapacita souborů a velké přizpůsobitelné úložiště.
Další informace najdete v tématu Azure Blob Storage nebo Azure Data Lake Storage Gen2.
Pokud používáte Azure Blob Storage nebo Data Lake Storage Gen2, nemusíte pro přístup k datům dělat nic zvláštního. Následující příkaz například vypíše soubory ve složce, ať už jsou uložené ve službě /example/data
Azure Storage nebo Data Lake Storage:
hdfs dfs -ls /example/data
V HDInsight jsou prostředky úložiště dat (Azure Blob Storage a Azure Data Lake Storage) oddělené od výpočetních prostředků. Clustery HDInsight můžete vytvořit tak, aby prováděly výpočty podle potřeby, a později cluster po dokončení práce odstraňte. Mezitím uchovávejte datové soubory bezpečně v cloudovém úložišti, pokud potřebujete.
Identifikátor URI a schéma
Některé příkazy můžou vyžadovat, abyste schéma zadali jako součást identifikátoru URI při přístupu k souboru. Při použití nedefaultního úložiště (úložiště přidané jako "další" úložiště do clusteru) musíte vždy použít schéma jako součást identifikátoru URI.
Při použití Služby Azure Storage použijte jedno z následujících schémat identifikátorů URI:
wasb:///
: Přístup k výchozímu úložišti pomocí nešifrované komunikace.wasbs:///
: Přístup k výchozímu úložišti pomocí šifrované komunikace. Schéma wasbs je podporováno pouze z HDInsight verze 3.6 a vyšší.wasb://<container-name>@<account-name>.blob.core.windows.net/
: Používá se při komunikaci s nedefaultním účtem úložiště. Pokud máte například další účet úložiště nebo při přístupu k datům uloženým v veřejně přístupném účtu úložiště.
Při použití Azure Data Lake Storage Gen2 použijte následující schéma identifikátoru URI:
abfs://
: Přístup k výchozímu úložišti pomocí šifrované komunikace.abfs://<container-name>@<account-name>.dfs.core.windows.net/
: Používá se při komunikaci s nedefaultním účtem úložiště. Pokud máte například další účet úložiště nebo při přístupu k datům uloženým v veřejně přístupném účtu úložiště.
Důležité
Při použití Data Lake Storage jako výchozího úložiště pro HDInsight musíte zadat cestu v úložišti, která se má použít jako kořen úložiště HDInsight. Výchozí cesta je /clusters/<cluster-name>/
.
Při použití /
nebo adl:///
přístupu k datům můžete přistupovat pouze k datům uloženým v kořenovém adresáři (například /clusters/<cluster-name>/
) clusteru. Pokud chcete získat přístup k datům kdekoli v úložišti, použijte adl://<storage-name>.azuredatalakestore.net/
formát.
Jaké úložiště cluster používá
Ambari můžete použít k načtení výchozí konfigurace úložiště pro cluster. Pomocí následujícího příkazu načtěte informace o konfiguraci HDFS pomocí curl a vyfiltrujte je pomocí jq:
curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["fs.defaultFS"] | select(. != null)'
Poznámka:
Tento příkaz vrátí první konfiguraci použitou na server (service_config_version=1
), která obsahuje tyto informace. Možná budete muset zobrazit seznam všech verzí konfigurace, abyste našli nejnovější verzi.
Tento příkaz vrátí hodnotu podobnou následujícím identifikátorům URI:
wasb://<container-name>@<account-name>.blob.core.windows.net
pokud používáte účet Azure Storage.Název účtu je název účtu Azure Storage. Název kontejneru je kontejner objektů blob, který je kořenem úložiště clusteru.
adl://home
pokud používáte Azure Data Lake Storage. Pokud chcete získat název Data Lake Storage, použijte následující volání REST:curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.hostname"] | select(. != null)'
Tento příkaz vrátí následující název hostitele:
<data-lake-store-account-name>.azuredatalakestore.net
.Pokud chcete získat adresář v úložišti, který je kořenovým adresářem pro HDInsight, použijte následující volání REST:
curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.mountpoint"] | select(. != null)'
Tento příkaz vrátí cestu podobnou následující cestě:
/clusters/<hdinsight-cluster-name>/
.
Informace o úložišti najdete také na webu Azure Portal pomocí následujícího postupu:
Na webu Azure Portal vyberte cluster HDInsight.
V části Vlastnosti vyberte Účty úložiště. Zobrazí se informace o úložišti clusteru.
Návody přístupu k souborům mimo HDInsight
Existují různé způsoby přístupu k datům mimo cluster HDInsight. Tady je několik odkazů na nástroje a sady SDK, které se dají použít k práci s vašimi daty:
Pokud používáte Azure Blob Storage, podívejte se na následující odkazy, jak získat přístup k vašim datům:
Azure CLI: Příkazy rozhraní příkazového řádku pro práci s Azure Po instalaci použijte
az storage
příkaz pro pomoc s používáním úložiště neboaz storage blob
pro příkazy specifické pro objekty blob.blobxfer.py: Skript Pythonu pro práci s objekty blob ve službě Azure Storage.
Různé sady SDK:
Pokud používáte Azure Data Lake Storage Gen1, podívejte se na následující odkazy, jak získat přístup k datům:
- Webový prohlížeč
- PowerShell
- Azure CLI
- WebHDFS REST API
- Nástroje Data Lake pro Visual Studio
- .NET
- Java
- Python
Škálování clusteru
Funkce škálování clusteru umožňuje dynamicky měnit počet datových uzlů používaných clusterem. Operace škálování můžete provádět, zatímco v clusteru běží jiné úlohy nebo procesy. Viz Škálování clusterů HDInsight
Návody nainstalovat Hue (nebo jinou komponentu Hadoop)?
HDInsight je spravovaná služba. Pokud Azure zjistí problém s clusterem, může odstranit uzel, který selhává, a vytvořit uzel, který ho nahradí. Když ručně nainstalujete věci do clusteru, nebudou při této operaci trvalé. Místo toho použijte akce skriptu HDInsight. Akce skriptu se dá použít k provedení následujících změn:
- Nainstalujte a nakonfigurujte službu nebo web.
- Nainstalujte a nakonfigurujte komponentu, která vyžaduje změny konfigurace na více uzlech v clusteru.
Akce skriptů jsou skripty Bash. Skripty se spouští během vytváření clusteru a slouží k instalaci a konfiguraci dalších komponent. Informace o vývoji vlastních akcí skriptů naleznete v tématu Vývoj akcí skriptů v prostředí HDInsight.
Soubory Jar
Některé technologie Hadoop poskytují samostatné soubory JAR. Tyto soubory obsahují funkce používané jako součást úlohy MapReduce nebo z pigu nebo Hive. Často nevyžadují žádné nastavení a dají se po vytvoření a použití přímo nahrát do clusteru. Pokud se chcete ujistit, že komponenta přežije znovu zpracovávání clusteru, uložte soubor JAR do výchozího úložiště clusteru.
Pokud například chcete použít nejnovější verzi Apache DataFu, můžete stáhnout soubor JAR obsahující projekt a nahrát ho do clusteru HDInsight. Pak postupujte podle dokumentace DataFu o tom, jak ji používat z Pigu nebo Hive.
Důležité
Některé komponenty, které jsou samostatnými soubory JAR, jsou k dispozici ve službě HDInsight, ale nejsou v cestě. Pokud hledáte konkrétní komponentu, můžete ji vyhledat v clusteru pomocí následujícího příkazu:
find / -name *componentname*.jar 2>/dev/null
Tento příkaz vrátí cestu všech odpovídajících souborů JAR.
Pokud chcete použít jinou verzi komponenty, nahrajte požadovanou verzi a použijte ji ve svých úlohách.
Důležité
Komponenty poskytované clusterem HDInsight jsou plně podporované a podpora Microsoftu pomáhají izolovat a řešit problémy související s těmito komponentami.
Vlastní komponenty obdrží komerčně rozumnou podporu, která vám pomůže s dalším řešením tohoto problému. Výsledkem může být vyřešení problému NEBO se vás ptát, abyste se zapojili do dostupných kanálů pro opensourcové technologie, kde najdete hluboké znalosti dané technologie. Například existuje mnoho webů komunity, které lze použít, například: Stránka otázek Microsoft Q&A pro HDInsight, https://stackoverflow.com. Projekty Apache mají také weby projektů, https://apache.orgnapříklad Hadoop, Spark.