Informazioni sull'uso di HDInsight in Linux

I cluster Azure HDInsight mettono a disposizione Hadoop in un ambiente Linux familiare, in esecuzione nel cloud di Azure. Per la maggior parte delle operazioni, dovrebbe funzionare esattamente come qualsiasi altra installazione di Hadoop in Linux. Questo documento indica le differenze specifiche che è opportuno conoscere.

Importante

Linux è l'unico sistema operativo usato in HDInsight versione 3.4 o successiva. Per altre informazioni, vedere la sezione relativa al ritiro di HDInsight in Windows.

Prerequisiti

In molti passaggi di questo documento vengono usate le utilità seguenti che devono essere installate nel sistema.

Utenti

A meno che non sia aggiunto al dominio, HDInsight deve essere considerato un sistema a utente singolo. Con il cluster viene creato un singolo account utente SSH, con autorizzazioni a livello di amministratore. Possono essere creati altri account SSH, che avranno sempre l'accesso di amministratore al cluster.

HDInsight aggiunto al dominio offre il supporto per più utenti e impostazioni di autorizzazioni e ruoli più granulari. Per altre informazioni, vedere Manage Domain-joined HDInsight clusters (Gestire cluster HDInsight aggiunti al dominio).

Nomi di dominio

Il nome di dominio completo (FQDN) da usare per la connessione al cluster da Internet è <nome cluster>.azurehdinsight.net o (solo per SSH) <nome cluster-ssh>.azurehdinsight.net.

Internamente, ogni nodo del cluster ha un nome assegnato durante la configurazione del cluster. Per individuare i nomi del cluster, vedere la pagina Host nell'interfaccia utente Web Ambari. È anche possibile usare il codice seguente per restituire un elenco di host dall'API REST Ambari:

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

Sostituire PASSWORD con la password dell'account amministratore e CLUSTERNAME con il nome del cluster. Questo comando restituisce un documento JSON che contiene un elenco degli host nel cluster. Jq viene usato per estrarre il valore dell'elemento host_name per ogni host.

Se è necessario trovare il nome del nodo per un servizio specifico, è possibile eseguire una query in Ambari per tale componente. Ad esempio, per trovare gli host per il nodo con nome HDFS, usare il comando seguente:

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

Questo comando restituisce un documento JSON che descrive il servizio e quindi jq estrae solo il valore host_name per gli host.

Accesso remoto ai servizi

  • Ambari (Web): https://<nomecluster>.azurehdinsight.net

    Eseguire l'autenticazione usando il nome utente e la password di amministratore cluster, quindi accedere ad Ambari.

    L'autenticazione è in testo non crittografato. Usare sempre HTTPS per garantire che la connessione sia protetta.

    Importante

    Alcune delle interfacce utente Web disponibili tramite Ambari hanno accesso ai nodi tramite un nome di dominio interno. I nomi di dominio interno non sono accessibili al pubblico da Internet. È possibile ricevere errori di "server non trovato" se si tenta di accedere ad alcune funzionalità tramite Internet.

    Per usare le funzionalità complete dell'interfaccia utente Web di Ambari, usare un tunnel SSH per inoltrare il traffico Web al nodo head del cluster. Vedere Usare il tunneling SSH per accedere all'interfaccia Web di Ambari, ResourceManager, JobHistory, NameNode, Oozie e altre interfacce Web

  • Ambari (REST): https://<nomecluster>.azurehdinsight.net/ambari

    Nota

    Eseguire l'autenticazione usando il nome utente e la password di amministratore cluster.

    L'autenticazione è in testo non crittografato. Usare sempre HTTPS per garantire che la connessione sia protetta.

  • WebHCat (Templeton): https://<nomecluster>.azurehdinsight.net/templeton

    Nota

    Eseguire l'autenticazione usando il nome utente e la password di amministratore cluster.

    L'autenticazione è in testo non crittografato. Usare sempre HTTPS per garantire che la connessione sia protetta.

  • SSH - <nome cluster>-ssh.azurehdinsight.net sulla porta 22 o 23. La porta 22 viene utilizzata per connettersi al nodo head primario, mentre la porta 23 viene utilizzata per connettersi a quello secondario. Per maggiori informazioni sui nodi head, vedere Disponibilità e affidabilità dei cluster Hadoop in HDInsight.

    Nota

    È possibile accedere al nodo head del cluster solo tramite SSH da un computer client. Una volta connessi, è quindi possibile accedere ai nodi di lavoro mediante SSH da un nodo head.

Percorsi dei file

I file relativi ad Hadoop si trovano nei nodi del cluster in /usr/hdp. La directory contiene le sottodirectory seguenti:

  • 2.2.4.9-1: il nome della directory è la versione di Hortonworks Data Platform usata da HDInsight. Il numero nel cluster può essere diverso da quello elencato di seguito.
  • current: questa directory contiene collegamenti alle sottodirectory nella directory 2.2.4.9-1. Questa directory esiste in modo da non dover ricordare il numero di versione.

I dati di esempio e i file con estensione jar sono disponibili nel file system Hadoop Distributed File System (HDFS) in /example e /HdiSamples

HDFS, Archiviazione di Azure e Data Lake Store

Nella maggior parte delle distribuzioni di Hadoop, il file system HDFS è supportato dall'archiviazione locale nei computer del cluster. L'uso di sistema locale può essere costoso per una soluzione basata su cloud dove viene addebitata una tariffa oraria o al minuto per le risorse di calcolo.

HDInsight usa i BLOB in Archiviazione di Azure o Azure Data Lake Store come archivio predefinito. Questo servizio offre i seguenti vantaggi:

  • Archiviazione a lungo termine economica
  • Accessibilità da servizi esterni, ad esempio siti Web, utilità di caricamento e download di file, SDK di linguaggi diversi e Web browser

Avviso

HDInsight supporta solo account di archiviazione di Azure per uso generico. Non supporta attualmente il tipo di account di archiviazione BLOB.

Un account di Archiviazione di Azure può contenere fino a 4,75 TB, anche se ogni BLOB (o file, da una prospettiva HDInsight) può arrivare fino a 195 GB. Azure Data Lake Store è scalabile in modo dinamico fino a contenere miliardi di file, con singoli file di dimensioni superiori a petabyte. Per altre informazioni, leggere gli articoli di approfondimento sui BLOB e su Data Lake Store.

Quando si usa Archiviazione di Azure o Data Lake Store, non è necessario eseguire alcuna operazione speciale da HDInsight per accedere ai dati. Ad esempio, il comando seguente elenca i file della cartella /example/data, indipendentemente dal fatto che sia disponibile in Archiviazione di Azure o in Data Lake Store:

hdfs dfs -ls /example/data

URI e schema

Alcuni comandi richiedono di specificare lo schema come parte dell'URI quando si accede a un file. Ad esempio, il componente Storm-HDFS richiede di specificare lo schema. Quando si usa un archivio non predefinito (aggiunto al cluster come spazio di archiviazione "aggiuntivo"), è sempre necessario usare lo schema come parte dell'URI.

Quando si usa Archiviazione di Azure, usare uno degli schemi URI seguenti:

  • wasb:///: per accedere allo spazio di archiviazione predefinito usando la comunicazione non crittografata.

  • wasbs:///: per accedere allo spazio di archiviazione predefinito usando la comunicazione crittografata. Lo schema wasbs è supportato solo da HDInsight versione 3.6 in poi.

  • wasb://<container-name>@<account-name>.blob.core.windows.net/: usato durante la comunicazione con un account di archiviazione non predefinito, ad esempio quando si dispone di un account di archiviazione aggiuntivo o quando si accede a dati archiviati in un account di archiviazione pubblicamente accessibile.

Quando si usa Data Lake Store, usare uno degli schemi URI seguenti:

  • adl:///: per accedere all' archivio Data Lake predefinito per il cluster.

  • adl://<storage-name>.azuredatalakestore.net/: usato durante la comunicazione con un Data Lake Store non predefinito. Usato anche per accedere ai dati all'esterno della directory radice del cluster HDInsight.

Importante

Quando si usa Data Lake Store come archivio predefinito per HDInsight, è necessario specificare un percorso all'interno dell'archivio da usare come radice per l'archiviazione HDInsight. Il percorso predefinito è /clusters/<cluster-name>/.

Quando si usa / o adl:/// per accedere ai dati, è possibile accedere solo ai dati memorizzati nella directory radice del cluster, ad esempio /clusters/<cluster-name>/. Per accedere ai dati in un punto qualsiasi dell'archivio, usare il formato adl://<storage-name>.azuredatalakestore.net/.

Archivio usato dal cluster

Ambari consente di recuperare le informazioni relative alla configurazione di archiviazione predefinita per il cluster. Usare il comando seguente per recuperare le informazioni di configurazione HDFS tramite curl e filtrarle tramite jq:

curl -u admin:PASSWORD -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)'

Nota

Viene restituita la prima configurazione applicata al server (service_config_version=1) che contiene queste informazioni. Potrebbe essere necessario elencare tutte le versioni di configurazione per trovare quella più recente.

Il comando restituisce un valore simile all'URI seguente:

  • wasb://<container-name>@<account-name>.blob.core.windows.net se si usa un account di archiviazione di Azure.

    Il nome dell'account è il nome dell'account di archiviazione di Azure, mentre il nome del contenitore è il contenitore BLOB che è la radice del cluster di archiviazione.

  • adl://home se si usa Azure Data Lake Store. Per recuperare il nome dell'archivio Data Lake, usare la chiamata REST seguente:

    curl -u admin:PASSWORD -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)'

    Questo comando restituisce il nome host seguente: <data-lake-store-account-name>.azuredatalakestore.net.

    Per recuperare la directory che nell'archivio è la radice di HDInsight, usare la chiamata REST seguente:

    curl -u admin:PASSWORD -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)'

    Il comando restituisce un percorso simile al seguente: /clusters/<hdinsight-cluster-name>/.

Per individuare le informazioni di archiviazione usando il portale di Azure, seguire questa procedura:

  1. Nel portale di Azureselezionare il cluster HDInsight.

  2. Nella sezione Proprietà selezionare Account di archiviazione. Vengono visualizzate le informazioni di archiviazione del cluster.

Come accedere ai file dall'esterno di HDInsight

Esistono vari modi per accedere ai dati dall'esterno del cluster HDInsight. Di seguito sono indicati alcuni collegamenti a utilità e SDK da usare per lavorare con i dati:

Se si usa Archiviazione di Azure, vedere i collegamenti seguenti per informazioni sulle modalità di accesso ai dati:

Se si usa Azure Data Lake Store, vedere i collegamenti seguenti per informazioni sulle modalità di accesso ai dati:

Ridimensionamento del cluster

La funzionalità di ridimensionamento del cluster consente di modificare il numero di nodi dati usati da un cluster in modo dinamico. È possibile eseguire operazioni di ridimensionamento mentre altri processi sono in esecuzione nel cluster.

L'operazione di ridimensionamento può influire sui tipi di cluster come indicato di seguito:

  • Hadoop: durante la riduzione del numero di nodi in un cluster, alcuni servizi nel cluster vengono riavviati. È quindi possibile che al termine dell'operazione di ridimensionamento, i processi in esecuzione o in sospeso abbiano esito negativo. In questo caso, inviare nuovamente i processi una volta completata l'operazione.
  • HBase: i server a livello di area vengono bilanciati automaticamente entro pochi minuti dal completamento dell'operazione di ridimensionamento. Per bilanciare manualmente i server a livello di area, seguire questa procedura:

    1. Connettersi al cluster HDInsight tramite SSH. Per altre informazioni, vedere Usare SSH con HDInsight.

    2. Usare il codice seguente per avviare la shell HBase:

       hbase shell
      
    3. Una volta caricata la shell HBase, usare il codice seguente per bilanciare manualmente i server a livello di area:

       balancer
      
  • Storm: al termine dell'operazione di ridimensionamento, ribilanciare qualsiasi topologia Storm in esecuzione. Il ridimensionamento consente alla topologia di rettificare le impostazioni di parallelismo in base al nuovo numero di nodi nel cluster. Per ribilanciare le topologie in esecuzione, usare una delle opzioni seguenti:

    • SSH: connettersi al server e usare il comando seguente per ribilanciare una topologia:

        storm rebalance TOPOLOGYNAME
      

      È anche possibile specificare parametri per eseguire l'override degli hint di parallelismo forniti in origine dalla topologia. Ad esempio, storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10 riconfigura la topologia con 5 processi di lavoro, 3 esecutori per il componente blue-spout e 10 esecutori per il componente yellow-bolt.

    • Interfaccia utente Storm: usare la procedura seguente per ribilanciare una topologia usando l'interfaccia utente Storm.

      1. Aprire https://CLUSTERNAME.azurehdinsight.net/stormui nel Web browser, dove CLUSTERNAME corrisponde al nome del cluster Storm. Se richiesto, immettere il nome amministratore (admin) del cluster HDInsight e la password specificata durante la creazione del cluster.
      2. Selezionare la topologia da ribilanciare e quindi fare clic sul pulsante Rebalance (Ribilancia). Specificare il ritardo prima dell'esecuzione dell'operazione di ribilanciamento.

Per informazioni specifiche sul ridimensionamento del cluster HDInsight, vedere:

Come si installa Hue (o un altro componente Hadoop)?

HDInsight è un servizio gestito. Se Azure rileva un problema con il cluster, è possibile eliminare il nodo con l'errore e creare un nodo per sostituirlo. Se si esegue l'installazione manuale degli elementi nel cluster, questi non vengono salvati in modo permanente quando si esegue questa operazione. Usare invece le azioni script di HDInsight. Un'azione script può essere usata per apportare le modifiche seguenti:

  • Installare e configurare un servizio o un sito Web, ad esempio Spark o Hue.
  • Installare o configurare un componente che richiede modifiche di configurazione in più nodi del cluster, ad esempio una variabile di ambiente necessaria, la creazione di una directory di registrazione o la creazione di un file di configurazione.

Le azioni script sono script Bash. Gli script vengono eseguiti durante il provisioning del cluster e possono essere usati per installare e configurare componenti aggiuntivi nel cluster. Sono disponibili script di esempio per installare i componenti seguenti:

Per informazioni su come sviluppare azioni script personalizzate, vedere Sviluppo di azioni script con HDInsight.

File con estensione jar

Alcune tecnologie Hadoop vengono fornite in file con estensione jar indipendenti contenenti funzioni usate come parte di un processo MapReduce o dall'interno di Pig o Hive. Sebbene sia possibile installarli usando azioni script, spesso non richiedono alcuna installazione e possono essere caricati nel cluster dopo il provisioning ed essere usati direttamente. Per assicurarsi che il componente venga mantenuto dopo la nuova creazione dell'immagine del cluster, è possibile archiviare il file nella risorsa di archiviazione predefinita per il cluster (WASB o ADL).

Se ad esempio si desidera usare l'ultima versione di DataFu, è possibile scaricare un file con estensione jar contenente il progetto e caricarlo nel cluster HDInsight. Seguire quindi la documentazione di DataFu per informazioni sull'uso da Pig o Hive.

Importante

Alcuni componenti che sono file con estensione jar autonomi vengono forniti con HDInsight, ma non sono presenti nel percorso. Se si desidera un componente specifico, è possibile usare il comando seguente per cercarlo nel cluster:

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

Viene restituito il percorso dei file con estensione jar corrispondenti.

Per usare una versione diversa di un componente, caricare la versione desiderata e usarla nei processi.

Avviso

I componenti forniti con il cluster HDInsight sono supportati in modo completo e il supporto tecnico Microsoft contribuirà a isolare e risolvere i problemi correlati a questi componenti.

I componenti personalizzati ricevono supporto commercialmente ragionevole per semplificare la risoluzione dei problemi. È possibile che si ottenga la risoluzione dei problemi o che venga richiesto di usare i canali disponibili per le tecnologie open source, in cui è possibile ottenere supporto approfondito per la tecnologia specifica. È ad esempio possibile ricorrere a molti siti di community, come il forum MSDN per HDInsight o http://stackoverflow.com. Per i progetti Apache sono anche disponibili siti specifici in http://apache.org, ad esempio Hadoop e Spark.

Passaggi successivi