Usare una risorsa di archiviazione di Azure con cluster Azure HDInsight
È possibile memorizzare i dati in Archiviazione BLOB di Azure o Azure Data Lake Storage Gen2. o in una combinazione di queste opzioni. Queste opzioni di archiviazione consentono l'eliminazione sicura dei cluster HDInsight usati per i calcoli, senza perdita di dati degli utenti.
Apache Hadoop supporta una nozione del file system predefinito. Il file system predefinito implica uno schema e un'autorità predefiniti e può essere usato anche per risolvere percorsi relativi. Durante il processo di creazione del cluster HDInsight è possibile specificare un contenitore BLOB in Archiviazione di Azure come file system predefinito. In alternativa, con HDInsight 3.6, è possibile selezionare Archiviazione BLOB di Azure o Azure Data Lake Storage Gen2 come file system predefinito con alcune eccezioni.
Questo articolo illustra come usare Archiviazione di Azure con i cluster HDInsight.
- Per informazioni sull'uso di Data Lake Storage Gen2 con i cluster HDInsight, vedere Usare Azure Data Lake Storage Gen2 con cluster Azure HDInsight.
- Per altre informazioni sulla creazione di un cluster HDInsight, vedere Configurare i cluster di HDInsight con Hadoop, Spark, Kafka e altro ancora.
Importante
Il tipo di account di archiviazione BlobStorage può essere usato solo come archiviazione secondaria per i cluster HDInsight.
Tipo di account di archiviazione | Servizi supportati | Livelli di prestazioni supportati | Livelli di prestazioni non supportati | Livelli di accesso supportati |
---|---|---|---|---|
Archiviazione v2 (utilizzo generico v2) | BLOB | Standard | Premium | Hot, Cool, Archive* |
Archiviazione (utilizzo generico v1) | BLOB | Standard | Premium | N/D |
BlobStorage | BLOB | Standard | Premium | Hot, Cool, Archive* |
Non è consigliabile usare il contenitore BLOB predefinito per l'archiviazione dei dati aziendali. È consigliabile eliminare il contenitore BLOB predefinito dopo ogni uso per ridurre i costi di archiviazione. Il contenitore predefinito include log di sistema e applicazioni. Assicurarsi di recuperare i log prima di eliminare il contenitore.
La condivisione di un contenitore BLOB come file system predefinito per più cluster non è supportata.
Nota
Il livello di accesso archivio è un livello offline con una latenza di recupero di diverse ore e non è consigliato per l'uso con HDInsight. Per altre informazioni, vedere Livello di accesso archivio.
Accedere ai file dall'interno del cluster
Nota
Il team di Archiviazione di Azure ha interrotto tutti gli sviluppi attivi su WASB e consiglia a tutti i clienti di usare il driver ABFS per interagire con BLOB e ADLS Gen2. Per ulteriori informazioni, consultare Driver ABFS (Azure Blob File System): un driver di Archiviazione di Azure dedicato per Hadoop
Uso di nomi completi. Con questo approccio viene fornito il percorso completo al file a cui si desidera accedere.
wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/ wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
Uso del formato con percorso abbreviato. Con questo approccio si sostituisce il percorso fino alla radice del cluster con:
wasb:///<file.path>/ wasbs:///<file.path>/
Uso del percorso relativo. Con questo approccio viene fornito unicamente il percorso relativo al file a cui si desidera accedere.
/<file.path>/
Esempi di accesso ai dati
Gli esempi sono basati su una connessione SSH al nodo head del cluster. Negli esempi vengono usati tutti e tre gli schemi URI. Sostituire CONTAINERNAME
e STORAGEACCOUNT
con i valori appropriati
Alcuni comandi HDFS
Creare un file nell'archiviazione locale.
touch testFile.txt
Creare directory nell'archiviazione del cluster.
hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -mkdir wasbs:///sampledata2/ hdfs dfs -mkdir /sampledata3/
Copiare i dati dall'archiviazione locale all'archiviazione del cluster.
hdfs dfs -copyFromLocal testFile.txt wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -copyFromLocal testFile.txt wasbs:///sampledata2/ hdfs dfs -copyFromLocal testFile.txt /sampledata3/
Elencare il contenuto della directory nell'archiviazione del cluster.
hdfs dfs -ls wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -ls wasbs:///sampledata2/ hdfs dfs -ls /sampledata3/
Nota
Quando si usano i BLOB al di fuori di HDInsight, la maggior parte delle utilità non riconosce il formato WASB e richiede invece un formato del percorso di base, ad esempio example/jars/hadoop-mapreduce-examples.jar
.
Creazione di una tabella Hive
Per scopi illustrativi, vengono visualizzati tre percorsi di file. Per l'esecuzione effettiva, usare solo una delle voci LOCATION
.
DROP TABLE myTable;
CREATE EXTERNAL TABLE myTable (
t1 string,
t2 string,
t3 string,
t4 string,
t5 string,
t6 string,
t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE
LOCATION 'wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/example/data/';
LOCATION 'wasbs:///example/data/';
LOCATION '/example/data/';
Accedere ai file dall'esterno del cluster
Microsoft fornisce gli strumenti seguenti da usare con Archiviazione di Azure:
Strumento | Linux | OS X | Finestre |
---|---|---|---|
Azure portal | ✔ | ✔ | ✔ |
Interfaccia della riga di comando di Azure | ✔ | ✔ | ✔ |
Azure PowerShell | ✔ | ||
AzCopy | ✔ | ✔ |
Identificare il percorso di archiviazione da Ambari
Per identificare il percorso completo dell'archivio predefinito configurato, passare a
HDFS>Configs e immettere
fs.defaultFS
nella casella di input di filtro.Per verificare se l'archivio wasb è configurato come archiviazione secondaria, passare a
HDFS>Configs e immettere
blob.core.windows.net
nella casella di input di filtro.
Per ottenere il percorso usando l'API REST di Ambari, vedere Ottenere l'archiviazione predefinita.
Contenitori BLOB
Per usare i BLOB, è necessario creare prima un account di archiviazione di Azure. Come parte della procedura, specificare l'area di Azure in cui viene creato l'account di archiviazione. L'account di archiviazione deve trovarsi nella stessa area del cluster. Il database di SQL Server del metastore Hive e il database di SQL Server di metastore Apache Oozie devono trovarsi nella stessa area.
Ovunque si trovi, ogni oggetto BLOB creato appartiene a un contenitore presente nell'account di archiviazione di Azure. Questo contenitore può essere un BLOB esistente creato all'esterno di HDInsight. Oppure può essere un contenitore creato per un cluster HDInsight.
Il contenitore BLOB predefinito archivia informazioni specifiche del cluster come i log e la cronologia processo. Non condividere un contenitore BLOB predefinito con più cluster HDInsight. Questa operazione potrebbe danneggiare la cronologia dei processi. È consigliabile usare un contenitore diverso per ogni cluster. Inserire i dati condivisi in un account di archiviazione collegato specificato per tutti i cluster pertinenti invece che nell'account di archiviazione predefinito. Per altre informazioni sulla configurazione degli account di archiviazione collegati, vedere Creare cluster HDInsight. È comunque possibile riusare un contenitore di archiviazione predefinito dopo l'eliminazione del cluster HDInsight originale. Per i cluster HBase, è possibile mantenere i dati e lo schema della tabella HBase creando un nuovo cluster HBase tramite il contenitore BLOB predefinito usato da un cluster HBase eliminato
Nota
La funzionalità che richiede il trasferimento sicuro trasmette tutte le richieste all'account dell'utente tramite una connessione sicura. Questa funzionalità è supportata solo dal cluster HDInsight versione 3.6 o successiva. Per altre informazioni, vedere Creare un cluster Apache Hadoop con account di archiviazione con trasferimento sicuro in Azure HDInsight.
Usare account di archiviazione aggiuntivi
Durante la creazione di un cluster HDInsight viene specificato l'account di Archiviazione di Azure da associare al cluster. Inoltre, durante o dopo la creazione di un cluster è possibile aggiungere altri account di archiviazione della stessa sottoscrizione di Azure o di una diversa. Per istruzioni sull'aggiunta di altri account di archiviazione, vedere Creare cluster HDInsight.
Avviso
L'uso di un account di archiviazione aggiuntivo in una località diversa rispetto al cluster HDInsight non è supportato.
Passaggi successivi
In questo articolo è stato descritto come usare una risorsa di archiviazione di Azure compatibile con HDFS con HDInsight. Questo approccio consente di creare soluzioni adattabili di acquisizione e archiviazione dei dati a lungo termine e di usare HDInsight per sbloccare le informazioni all'interno dei dati strutturati e non strutturati archiviati.
Per altre informazioni, vedi:
- Avvio rapido: creare un cluster Apache Hadoop
- Esercitazione: creare cluster HDInsight
- Usare Azure Data Lake Storage Gen2 con cluster Azure HDInsight
- Caricare dati in HDInsight
- Esercitazione: estrarre, trasformare e caricare dati usando Interactive Query in Azure HDInsight
- Usare le firme di accesso condiviso di Archiviazione di Azure per limitare l'accesso ai dati con HDInsight