Usare più cluster HDInsight con un account Azure Data Lake StoreUse multiple HDInsight clusters with an Azure Data Lake Store account

A partire da HDInsight versione 3.5, è possibile creare cluster HDInsight con account Azure Data Lake Store come file system predefinito.Starting with HDInsight version 3.5, you can create HDInsight clusters with Azure Data Lake Store accounts as the default filesystem. Supportando l'archiviazione illimitata, Data Lake Store è ideale non solo per l'hosting di grandi quantità di dati, ma anche per l'hosting di più cluster HDInsight che condividono un unico account Data Lake Store.Data Lake Store supports unlimited storage that makes it ideal not only for hosting large amounts of data; but also for hosting multiple HDInsight clusters that share a single Data Lake Store Account. Per istruzioni su come creare un cluster HDInsight con Data Lake Store come risorsa di archiviazione, vedere Creare cluster HDInsight con Data Lake Store.For instructionson how to create an HDInsight cluster with Data Lake Store as the storage, see Create HDInsight clusters with Data Lake Store.

Questo articolo fornisce agli amministratori di Data Lake Store le informazioni necessarie per configurare un singolo account Data Lake Store condiviso, che possa essere usato in più cluster HDInsight attivi.This article provides recommendations to the Data Lake store administrator for setting up a single and shared Data Lake Store Account that can be used across multiple active HDInsight clusters. Queste indicazioni valgono per l'hosting di più cluster Hadoop sicuri e non sicuri in un account Data Lake Store condiviso.These recommendations apply to hosting multiple secure as well as non-secure Hadoop clusters on a shared Data Lake store account.

ACL a livello di file e cartella di Data Lake StoreData Lake Store file and folder level ACLs

La parte rimanente di questo articolo presuppone una buona conoscenza degli ACL a livello di file e cartella in Azure Data Lake Store, descritte nel dettaglio in Controllo di accesso in Azure Data Lake Store.The rest of this article assumes that you have a good knowledge of file and folder level ACLs in Azure Data Lake Store, which is described in detail at Access control in Azure Data Lake Store.

Configurazione di Data Lake Store per più cluster HDInsightData Lake Store setup for multiple HDInsight clusters

Si userà una gerarchia di cartelle a due livelli per spiegare i suggerimenti relativi all'uso di più cluster HDInsight con un account Data Lake Store.Let us take a two-level folder hierarchy to explain the recommendations for using mutilple HDInsight clusters with a Data Lake Store account. Si consideri, ad esempio, di avere un account Data Lake Store con la struttura di cartelle /clusters/finance.Consider you have a Data Lake Store account with the folder structure /clusters/finance. Con questa struttura, tutti i cluster necessari all'organizzazione Finanza possono usare /clusters/finance come percorso di archiviazione.With this structure, all the clusters required by the Finance organization can use /clusters/finance as the storage location. Se un'altra organizzazione, ad esempio Marketing, volesse creare in futuro cluster HDInsight usando lo stesso account Data Lake Store, potrà creare il percorso cluster/marketing.In the future, if another organization, say Marketing, wants to create HDInsight clusters using the same Data Lake Store account, they could create /clusters/marketing. Per il momento si userà solo /clusters/finance.For now, let's just use /clusters/finance.

Per far sì che questa struttura di cartelle venga usata dai cluster HDInsight in modo efficace, l'amministratore di Data Lake Store deve assegnare le autorizzazioni appropriate, come descritto nella tabella.To enable this folder structure to be effectively used by HDInsight clusters, the Data Lake Store administrator must assign appropriate permissions, as described in the table. Le autorizzazioni illustrate nella tabella corrispondono ad ACL di accesso, non ad ACL predefiniti.The permissions shown in the table correspond to Access-ACLs, and not Default-ACLs.

CartellaFolder AutorizzazioniPermissions utente proprietarioOwning user gruppo proprietarioOwning group Utente non anonimoNamed user Autorizzazioni utente non anonimoNamed user permissions Gruppo non anonimoNamed group Autorizzazioni gruppo non anonimoNamed group permissions
/ rwxr-x--xrwxr-x--x adminadmin adminadmin Entità servizioService principal --x--x FINGRPFINGRP r-xr-x
/clusters/clusters rwxr-x--xrwxr-x--x adminadmin adminadmin Entità servizioService principal --x--x FINGRPFINGRP r-xr-x
/clusters/finance/clusters/finance rwxr-x--trwxr-x--t adminadmin FINGRPFINGRP Entità servizioService principal rwxrwx - -

Nella tabella,In the table,

  • admin è l'autore e amministratore dell'account Data Lake Store.admin is the creator and administrator of the Data Lake Store account.
  • Entità servizio è l'entità servizio di Azure Active Directory (AAD) associata all'account.Service principal is the Azure Active Directory (AAD) service principal associated with the account.
  • FINGRP è un gruppo di utenti creato in AAD in cui sono contenuti gli utenti dell'organizzazione Finance.FINGRP is a user group created in AAD that contains users from the Finance organization.

Per istruzioni su come creare un'applicazione AAD (che crea anche un'entità servizio), vedere Creare un'applicazione Azure Active Directory.For instructions on how to create an AAD application (that also creates a Service Principal), see Create an AAD application. Per istruzioni su come creare un gruppo di utenti in AAD, vedere Gestione dei gruppi in Azure Active Directory.For instructions on how to create a user group in AAD, see Managing groups in Azure Active Directory.

Alcuni punti chiave di cui tener conto.Some key points to consider.

  • La struttura di cartelle a due livelli (/cluster/finance/) deve essere creata e configurata con le autorizzazioni appropriate dall'amministratore di Data Lake Store prima di usare l'account di archiviazione per i cluster.The two level folder structure (/clusters/finance/) must be created and provisioned with appropriate permissions by the Data Lake Store admin before using the storage account for clusters. Questa struttura non viene creata automaticamente durante la creazione dei cluster.This structure is not created automatically while creating clusters.
  • Nell'esempio precedente si consiglia di impostare il gruppo proprietario di /cluster/finance come FINGRP e di fornire a FINGRP l'autorizzazione r-x per accedere all'intera gerarchia di cartelle, a partire dalla radice.The example above recommends setting the owning group of /clusters/finance as FINGRP and permitting r-x access to FINGRP to the entire folder hierarchy starting from the root. In questo modo, i membri di FINGRP possono esplorare la struttura di cartelle a partire dalla radice.This ensures that the members of FINGRP can navigate the folder structure starting from root.
  • Nel caso in cui più entità servizio AAD possano creare cluster in /cluster/finance, lo sticky bit (se impostato sulla cartella finance) garantisce che le cartelle create da un'entità servizio non possano essere eliminate da altre entità servizio.In the case when different AAD Service Principals can create clusters under /clusters/finance, the sticky-bit (when set on the finance folder) ensures that folders created by one Service Principal cannot be deleted by the other.
  • Dopo aver impostato la struttura di cartelle e le relative autorizzazioni, il processo di creazione di cluster HDInsight crea un percorso di archiviazione specifico del cluster in /clusters/finance/.Once the folder structure and permissions are in place, HDInsight cluster creation process creates a cluster-specific storage loaction under /clusters/finance/. La risorsa di archiviazione per un cluster con nome fincluster01, ad esempio, può essere /clusters/finance/fincluster01.For example, the storage for a cluster with the name fincluster01 could be /clusters/finance/fincluster01. La tabella seguente elenca la proprietà e le autorizzazioni relative alle cartelle create dal cluster HDInsight.The ownership and permissions for the folders created by HDInsight cluster is shown in the table here.

    CartellaFolder AutorizzazioniPermissions utente proprietarioOwning user gruppo proprietarioOwning group Utente non anonimoNamed user Autorizzazioni utente non anonimoNamed user permissions Gruppo non anonimoNamed group Autorizzazioni gruppo non anonimoNamed group permissions
    /clusters/finanace/ fincluster01/clusters/finanace/ fincluster01 rwxr-x---rwxr-x--- Entità servizioService Principal FINGRPFINGRP - - - -

Suggerimenti per i dati di input e di output del processoRecommendations for job input and output data

È consigliabile che i dati di input di un processo e i dati di output del processo vengano archiviati in una cartella esterna a /cluster.We recommend that input data to a job, and the outputs from a job be stored in a folder outside /clusters. In questo modo, anche se la cartella specifica del cluster viene eliminata per liberare spazio di archiviazione, gli input e gli output del processo rimangono disponibili per un utilizzo futuro.This ensures that even if the cluster-specific folder is deleted to reclaim some storage space,the job inputs and outputs are still available for future use. In tal caso, assicurarsi che la gerarchia di cartelle per l'archiviazione dei dati di input e di output del processo consenta il livello di accesso appropriato per l'entità servizio.In such a case, ensure that the folder hierarchy for storing the job inputs and outputs allows appropriate level of access for the Service Principal.

Limite di cluster che condividono un unico account di archiviazioneLimit on clusters sharing a single storage account

Il limite relativo al numero di cluster che possono condividere un singolo account Data Lake Store dipende dal carico di lavoro in esecuzione sui cluster.The limit on the number of clusters that can share a single Data Lake Store account depends on the workload being run on those clusters. La presenza di troppi cluster o di carichi di lavoro molto elevati nei cluster che condividono un account di archiviazione può causare una limitazione del traffico in ingresso/uscita dall'account di archiviazione.Having too many clusters or very heavy workloads on the clusters that share a storage account might cause the storage account ingress/egress to get throttled.

Supporto per gli ACL predefinitiSupport for Default-ACLs

Quando si crea un'entità servizio con accesso utente non anonimo (come illustrato nella tabella precedente), è consigliabile non aggiungere l'utente non anonimo con un ACL predefinito.When creating a Service Principal with named-user access (as shown in the table above), we recommend not adding the named-user with a default-ACL. L'assegnazione di un accesso utente non anonimo con ACL predefiniti determina l'assegnazione di 770 autorizzazioni per l'utente proprietario, il gruppo proprietario e altri membri.Provisioning named-user access using default-ACLs results in the assignment of 770 permissions for owning-user, owning-group, and others. Sebbene non sottragga autorizzazioni all'utente proprietario (7) o al gruppo proprietario (7), il valore predefinito di 770 sottrae tutte le autorizzazioni agli altri membri (0).While this default value of 770 does not take away permissions from owning-user (7) or owning-group (7), it takes away all permissions for others (0). Questo genera un problema noto con un particolare caso d'uso analizzato in dettaglio nella sezione Problemi noti e soluzioni alternative.This results in a known issue with one particular use-case that is discussed in detail in the Known issues and workarounds section.

Problemi noti e soluzioni alternativeKnown issues and workarounds

In questa sezione sono elencati i problemi noti relativi all'uso di HDInsight con Data Lake Store e le relative soluzioni alternative.This section lists the known issues for using HDInsight with Data Lake Store, and their workarounds.

Risorse YARN localizzate visibili pubblicamentePublicly visible localized YARN resources

Quando viene creato un nuovo account Azure Data Lake Store, la directory radice viene automaticamente configurata con i bit di autorizzazione dell'ACL di accesso impostati su 770.When a new Azure Data Lake store account is created, the root directory is automatically provisioned with Access-ACL permission bits set to 770. L'utente proprietario della cartella radice è impostato sull'utente che ha creato l'account (l'amministratore di Data Lake Store) e il gruppo proprietario è impostato sul gruppo principale dell'utente che ha creato l'account.The root folder’s owning user is set to the user that created the account (the Data Lake Store admin) and the owning group is set to the primary group of the user that created the account. Per gli altri membri non è previsto alcun tipo di acceso.No access is provided for "others".

Queste impostazioni influiscono su uno specifico caso d'uso di HDInsight acquisito in YARN 247.These settings are known to affect one specific HDInsight use-case captured in YARN 247. Gli invii di processi possono avere esito negativo con un messaggio di errore simile al seguente:Job submissions could fail with an error message similar to this:

Resource XXXX is not publicly accessible and as such cannot be part of the public cache.

Come indicato nel documento JIRA YARN citato in precedenza, durante la localizzazione delle risorse pubbliche il localizzatore verifica che tutte le risorse richieste siano realmente pubbliche controllandone le autorizzazioni sul file system remoto.As stated in the YARN JIRA linked earlier, while localizing public resources, the localizer validates that all the requested resources are indeed public by checking their permissions on the remote file-system. Eventuali LocalResource che non soddisfano questa condizione vengono rifiutate per la localizzazione.Any LocalResource that does not fit that condition is rejected for localization. Il controllo delle autorizzazioni include l'accesso in lettura al file per gli altri membri.The check for permissions, includes read-access to the file for "others". Questo scenario non può essere applicato direttamente per l'hosting di cluster HDInsight in Azure Data Lake, poiché Azure Data Lake nega agli altri membri l'accesso a livello di cartella radice.This scenario does not work out-of-the-box when hosting HDInsight clusters on Azure Data Lake, since Azure Data Lake denies all access to "others" at root folder level.

Soluzione alternativaWorkaround

Impostare le autorizzazioni di lettura ed esecuzione per gli altri membri attraverso la gerarchia, ad esempio in corrispondenza di /, /clusters e /clusters/finance, come illustrato nella tabella precedente.Set read-execute permissions for others through the hierarchy, for example, at /, /clusters and /clusters/finance as shown in the table above.

Vedere ancheSee also