Information om hur du använder HDInsight på Linux

Azure HDInsight-kluster tillhandahåller Apache Hadoop i en välbekant Linux-miljö som körs i Azure-molnet. För de flesta saker bör det fungera exakt som alla andra Hadoop-on-Linux-installationer. I det här dokumentet beskrivs specifika skillnader som du bör känna till.

Förutsättningar

Många av stegen i det här dokumentet använder följande verktyg, som kan behöva installeras på systemet.

Användare

Om inte domänansluten bör HDInsight betraktas som ett system med en användare . Ett enda SSH-användarkonto skapas med klustret med behörigheter på administratörsnivå. Ytterligare SSH-konton kan skapas, men de har även administratörsåtkomst till klustret.

Domänansluten HDInsight har stöd för flera användare och mer detaljerad behörighet och rollinställningar. Mer information finns i Hantera domänanslutna HDInsight-kluster.

Domännamn

Det fullständigt kvalificerade domännamnet (FQDN) som ska användas när du ansluter till klustret från Internet är CLUSTERNAME.azurehdinsight.net eller CLUSTERNAME-ssh.azurehdinsight.net (endast för SSH).

Internt har varje nod i klustret ett namn som tilldelas under klusterkonfigurationen. Information om hur du hittar klusternamnen finns på sidan Värdar i webbgränssnittet för Ambari. Du kan också använda följande för att returnera en lista över värdar från Ambari REST API:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/hosts" | jq '.items[].Hosts.host_name'

Ersätt CLUSTERNAME med namnet på klustret. När du uppmanas till det anger du lösenordet för administratörskontot. Det här kommandot returnerar ett JSON-dokument som innehåller en lista över värdarna i klustret. jq används för att extrahera host_name elementvärdet för varje värd.

Om du behöver hitta namnet på noden för en specifik tjänst kan du fråga Ambari om komponenten. Om du till exempel vill hitta värdarna för HDFS-namnnoden använder du följande kommando:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/HDFS/components/NAMENODE" | jq '.host_components[].HostRoles.host_name'

Det här kommandot returnerar ett JSON-dokument som beskriver tjänsten och sedan hämtar jq endast host_name värdet för värdarna.

Fjärråtkomst till tjänster

  • Ambari (webb) - https://CLUSTERNAME.azurehdinsight.net

    Autentisera med hjälp av klusteradministratörens användare och lösenord och logga sedan in på Ambari.

    Autentiseringen är klartext – använd alltid HTTPS för att säkerställa att anslutningen är säker.

    Viktigt!

    Några av de webb-UIs som är tillgängliga via Ambari-åtkomstnoder med hjälp av ett internt domännamn. Interna domännamn är inte offentligt tillgängliga via Internet. Du kan få fel om att servern inte hittades när du försöker komma åt vissa funktioner via Internet.

    Om du vill använda alla funktioner i Ambari-webbgränssnittet använder du en SSH-tunnel för att proxywebbtrafik till klusterhuvudnoden. Se Använda SSH-tunnlar för att komma åt Apache Ambari-webbgränssnittet, ResourceManager, JobHistory, NameNode, Oozie och andra webb-UIs

  • Ambari (REST) - https://CLUSTERNAME.azurehdinsight.net/ambari

    Kommentar

    Autentisera med hjälp av klusteradministratörens användare och lösenord.

    Autentiseringen är klartext – använd alltid HTTPS för att säkerställa att anslutningen är säker.

  • WebHCat (Templeton) - https://CLUSTERNAME.azurehdinsight.net/templeton

    Kommentar

    Autentisera med hjälp av klusteradministratörens användare och lösenord.

    Autentiseringen är klartext – använd alltid HTTPS för att säkerställa att anslutningen är säker.

  • SSH – CLUSTERNAME-ssh.azurehdinsight.net på port 22 eller 23. Port 22 används för att ansluta till den primära huvudnoden, medan 23 används för att ansluta till den sekundära. Mer information om huvudnoderna finns i Tillgänglighet och tillförlitlighet för Apache Hadoop-kluster i HDInsight.

    Kommentar

    Du kan bara komma åt klusterhuvudnoderna via SSH från en klientdator. När du är ansluten kan du sedan komma åt arbetsnoderna med hjälp av SSH från en huvudnod.

Mer information finns i dokumentet Portar som används av Apache Hadoop-tjänster i HDInsight .

Sökvägar

Hadoop-relaterade filer finns på klusternoderna på /usr/hdp. Den här katalogen innehåller följande underkataloger:

  • 2.6.5.3009-43: Katalognamnet är den version av Hadoop-plattformen som används av HDInsight. Talet i klustret kan skilja sig från det som anges här.
  • aktuell: Den här katalogen innehåller länkar till underkataloger under katalogen 2.6.5.3009-43 . Den här katalogen finns så att du inte behöver komma ihåg versionsnumret.

Exempeldata och JAR-filer finns i Hadoop Distributed File System på /example och /HdiSamples.

HDFS, Azure Storage och Data Lake Storage

I de flesta Hadoop-distributioner lagras data i HDFS. HDFS backas upp av lokal lagring på datorerna i klustret. Att använda lokal lagring kan vara kostsamt för en molnbaserad lösning där du debiteras varje timme eller minut för beräkningsresurser.

När du använder HDInsight lagras datafilerna på ett anpassningsbart och motståndskraftigt sätt i molnet med hjälp av Azure Blob Storage och eventuellt Azure Data Lake Storage Gen1/Gen2. Dessa tjänster ger följande fördelar:

  • Billig långsiktig lagring.
  • Hjälpmedel från externa tjänster som webbplatser, verktyg för filuppladdning/nedladdning, olika språk-SDK:er och webbläsare.
  • Stor filkapacitet och stor anpassningsbar lagring.

Mer information finns i Azure Blob Storage, Azure Data Lake Storage Gen1 eller Azure Data Lake Storage Gen2.

När du använder antingen Azure Blob Storage eller Data Lake Storage Gen1/Gen2 behöver du inte göra något speciellt från HDInsight för att komma åt data. Följande kommando visar till exempel filer i /example/data mappen oavsett om de lagras i Azure Storage eller Data Lake Storage:

hdfs dfs -ls /example/data

I HDInsight är datalagringsresurserna (Azure Blob Storage och Azure Data Lake Storage) frikopplade från beräkningsresurser. Du kan skapa HDInsight-kluster för att göra beräkningar efter behov och senare ta bort klustret när arbetet är klart. Under tiden sparas dina datafiler på ett säkert sätt i molnlagringen så länge du behöver det.

URI och schema

Vissa kommandon kan kräva att du anger schemat som en del av URI:n vid åtkomst till en fil. När du använder icke-standardlagring (lagring som läggs till som "ytterligare" lagring i klustret) måste du alltid använda schemat som en del av URI:n.

När du använder Azure Storage använder du något av följande URI-scheman:

  • wasb:///: Åtkomst till standardlagring med okrypterad kommunikation.

  • wasbs:///: Åtkomst till standardlagring med krypterad kommunikation. Wasbs-schemat stöds endast från HDInsight version 3.6 och senare.

  • wasb://<container-name>@<account-name>.blob.core.windows.net/: Används vid kommunikation med ett lagringskonto som inte är standard. Till exempel när du har ett extra lagringskonto eller när du kommer åt data som lagras i ett offentligt tillgängligt lagringskonto.

När du använder Azure Data Lake Storage Gen2 använder du följande URI-schema:

  • abfs://: Åtkomst till standardlagring med krypterad kommunikation.

  • abfs://<container-name>@<account-name>.dfs.core.windows.net/: Används vid kommunikation med ett lagringskonto som inte är standard. Till exempel när du har ett extra lagringskonto eller när du kommer åt data som lagras i ett offentligt tillgängligt lagringskonto.

När du använder Azure Data Lake Storage Gen1 använder du något av följande URI-scheman:

  • adl:///: Få åtkomst till Data Lake Storage som standard för klustret.

  • adl://<storage-name>.azuredatalakestore.net/: Används när du kommunicerar med en Data Lake Storage som inte är standard. Används också för att komma åt data utanför rotkatalogen i ditt HDInsight-kluster.

Viktigt!

När du använder Data Lake Storage som standardlagringsplats för HDInsight måste du ange en sökväg i arkivet som ska användas som rot för HDInsight-lagring. Standardsökvägen är /clusters/<cluster-name>/.

När du använder / eller adl:/// för att komma åt data kan du bara komma åt data som lagras i klustrets rot (till exempel /clusters/<cluster-name>/) . Använd formatet för att komma åt data var som helst i arkivet adl://<storage-name>.azuredatalakestore.net/ .

Vilken lagring använder klustret?

Du kan använda Ambari för att hämta standardlagringskonfigurationen för klustret. Använd följande kommando för att hämta HDFS-konfigurationsinformation med curl och filtrera den med 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)'

Kommentar

Det här kommandot returnerar den första konfigurationen som tillämpas på servern (service_config_version=1), som innehåller den här informationen. Du kan behöva visa en lista över alla konfigurationsversioner för att hitta den senaste.

Det här kommandot returnerar ett värde som liknar följande URI:er:

  • wasb://<container-name>@<account-name>.blob.core.windows.net om du använder ett Azure Storage-konto.

    Kontonamnet är namnet på Azure Storage-kontot. Containernamnet är den blobcontainer som är roten för klusterlagringen.

  • adl://home om du använder Azure Data Lake Storage. Om du vill hämta Data Lake Storage-namnet använder du följande REST-anrop:

    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)'
    

    Det här kommandot returnerar följande värdnamn: <data-lake-store-account-name>.azuredatalakestore.net.

    Om du vill hämta katalogen i det arkiv som är roten för HDInsight använder du följande REST-anrop:

    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)'
    

    Det här kommandot returnerar en sökväg som liknar följande sökväg: /clusters/<hdinsight-cluster-name>/.

Du kan också hitta lagringsinformationen med hjälp av Azure-portalen med hjälp av följande steg:

  1. Från Azure-portalen väljer du ditt HDInsight-kluster.

  2. I avsnittet Egenskaper väljer du Lagringskonton. Lagringsinformationen för klustret visas.

Hur gör jag för att åtkomstfiler utanför HDInsight

Det finns olika sätt att komma åt data utanför HDInsight-klustret. Följande är några länkar till verktyg och SDK:er som kan användas för att arbeta med dina data:

Om du använder Azure Blob Storage kan du se följande länkar för hur du kan komma åt dina data:

  • Azure CLI: Kommandoradsgränssnittskommandon för att arbeta med Azure. När du har installerat använder az storage du kommandot för hjälp med att använda lagring eller az storage blob för blobspecifika kommandon.

  • blobxfer.py: Ett Python-skript för att arbeta med blobar i Azure Storage.

  • Olika SDK:er:

Om du använder Azure Data Lake Storage Gen1 kan du se följande länkar för hur du kan komma åt dina data:

Skala klustret

Med funktionen för klusterskalning kan du dynamiskt ändra antalet datanoder som används av ett kluster. Du kan utföra skalningsåtgärder medan andra jobb eller processer körs i ett kluster. Se Skala HDInsight-kluster

Hur gör jag för att installera Hue (eller någon annan Hadoop-komponent)?

HDInsight är en hanterad tjänst. Om Azure upptäcker ett problem med klustret kan den ta bort noden som misslyckas och skapa en nod som ersätter den. När du installerar saker i klustret manuellt sparas de inte när den här åtgärden inträffar. Använd i stället HDInsight Script Actions. En skriptåtgärd kan användas för att göra följande ändringar:

  • Installera och konfigurera en tjänst eller webbplats.
  • Installera och konfigurera en komponent som kräver konfigurationsändringar på flera noder i klustret.

Skriptåtgärder är Bash-skript. Skripten körs när klustret skapas och används för att installera och konfigurera ytterligare komponenter. Information om hur du utvecklar dina egna skriptåtgärder finns i Utveckling av skriptåtgärder med HDInsight.

Jar-filer

Vissa Hadoop-tekniker tillhandahåller fristående jar-filer. Dessa filer innehåller funktioner som används som en del av ett MapReduce-jobb, eller inifrån Pig eller Hive. De kräver ofta ingen konfiguration och kan laddas upp till klustret när de har skapats och använts direkt. Om du vill se till att komponenten överlever att återskapa klustret lagrar du jar-filen i klustrets standardlagring.

Om du till exempel vill använda den senaste versionen av Apache DataFu kan du ladda ned en jar som innehåller projektet och ladda upp den till HDInsight-klustret. Följ sedan DataFu-dokumentationen om hur du använder den från Pig eller Hive.

Viktigt!

Vissa komponenter som är fristående jar-filer tillhandahålls med HDInsight, men finns inte i sökvägen. Om du letar efter en specifik komponent kan du använda följande för att söka efter den i klustret:

find / -name *componentname*.jar 2>/dev/null

Det här kommandot returnerar sökvägen till alla matchande jar-filer.

Om du vill använda en annan version av en komponent laddar du upp den version du behöver och använder den i dina jobb.

Viktigt!

Komponenter som medföljer HDInsight-klustret stöds fullt ut och Microsoft Support hjälper till att isolera och lösa problem som rör dessa komponenter.

Anpassade komponenter får kommersiellt rimligt stöd för att hjälpa dig att ytterligare felsöka problemet. Detta kan leda till att du löser problemet eller ber dig att engagera tillgängliga kanaler för öppen källkod tekniker där djup expertis för den tekniken finns. Det finns till exempel många community-webbplatser som kan användas, till exempel: Microsoft Q&A-frågesida för HDInsight, https://stackoverflow.com. Apache-projekt har också projektwebbplatser på https://apache.org, till exempel: Hadoop, Spark.

Nästa steg