Uso de Azure Data Lake Storage Gen2 con clústeres de Azure HDInsightUse Azure Data Lake Storage Gen2 with Azure HDInsight clusters

Azure Data Lake Storage Gen2 es un servicio de almacenamiento en la nube dedicado al análisis de macrodatos e integrado en Azure Blob Storage.Azure Data Lake Storage Gen2 is a cloud storage service dedicated to big data analytics, built on Azure Blob storage. Data Lake Storage Gen2 combina las funcionalidades de Azure Blob Storage y Azure Data Lake Storage Gen1.Data Lake Storage Gen2 combines the capabilities of Azure Blob storage and Azure Data Lake Storage Gen1. El servicio resultante ofrece características de Azure Data Lake Storage Gen1, entre las que se incluyen la semántica del sistema de archivos, la seguridad de nivel de directorio y de archivo y la adaptabilidad.The resulting service offers features from Azure Data Lake Storage Gen1 including: file system semantics, directory-level and file-level security, and adaptability. Junto con las funcionalidades de bajo costo, almacenamiento en capas, alta disponibilidad y recuperación ante desastres de Azure Blob Storage.Along with the low-cost, tiered storage, high availability, and disaster-recovery capabilities from Azure Blob storage.

Para ver una comparación completa de las opciones de creación de clústeres con Data Lake Storage Gen2, consulte Comparación de opciones de almacenamiento para los clústeres de Azure HDInsight.For a full comparison of cluster creation options using Data Lake Storage Gen2, see Compare storage options for use with Azure HDInsight clusters.

Advertencia

La facturación de los clústeres de HDInsight se prorratea por minuto, tanto si se usan como si no.Billing for HDInsight clusters is prorated per minute, whether you use them or not. Por consiguiente, asegúrese de eliminar el clúster cuando termine de usarlo.Be sure to delete your cluster after you finish using it. Consulte Eliminación de un clúster de HDInsight.See how to delete an HDInsight cluster.

Disponibilidad de Data Lake Storage Gen2Data Lake Storage Gen2 availability

Data Lake Storage Gen2 está disponible como opción de almacenamiento para casi todos los tipos de clúster de Azure HDInsight como una cuenta de almacenamiento predeterminada o adicional.Data Lake Storage Gen2 is available as a storage option for almost all Azure HDInsight cluster types as both a default and an additional storage account. Aun así, HBase solo puede tener una cuenta con Data Lake Storage Gen2.HBase, however, can have only one account with Data Lake Storage Gen2.

Nota

Una vez que selecciona Data Lake Storage Gen2 como el tipo de almacenamiento principal, no puede seleccionar Data Lake Storage Gen1 como almacenamiento adicional.After you select Data Lake Storage Gen2 as your primary storage type, you cannot select a Data Lake Storage Gen1 as additional storage.

Creación de clústeres de HDInsight con Data Lake Storage Gen2Create HDInsight clusters using Data Lake Storage Gen2

Use los vínculos siguientes para obtener instrucciones detalladas sobre cómo crear clústeres de HDInsight con acceso a Data Lake Storage Gen2.Use the following links for detailed instructions on how to create HDInsight clusters with access to Data Lake Storage Gen2.

Control de acceso para Data Lake Storage Gen2 en HDInsightAccess control for Data Lake Storage Gen2 in HDInsight

¿Qué tipos de permisos admite Data Lake Storage Gen2?What kinds of permissions does Data Lake Storage Gen2 support?

Data Lake Storage Gen2 usa un modelo de control de acceso compatible con el control de acceso basado en roles de Azure (Azure RBAC) y las listas de control de acceso (ACL) de tipo POSIX.Data Lake Storage Gen2 uses an access control model that supports both Azure role-based access control (Azure RBAC) and POSIX-like access control lists (ACLs). Data Lake Storage Gen1 admite las listas de control de acceso solo para controlar el acceso a los datos.Data Lake Storage Gen1 supports access control lists only for controlling access to data.

Azure RBAC usa las asignaciones de roles para aplicar de forma eficaz conjuntos de permisos a usuarios, grupos y entidades de servicio para los recursos de Azure.Azure RBAC uses role assignments to effectively apply sets of permissions to users, groups, and service principals for Azure resources. Normalmente, los recursos de Azure están limitados a los recursos de nivel superior (por ejemplo, las cuentas de Azure Blob Storage).Typically, those Azure resources are constrained to top-level resources (for example, Azure Blob storage accounts). En el caso de Azure Blob Storage y también de Data Lake Storage Gen2, este mecanismo se ha ampliado al recurso del sistema de archivos.For Azure Blob storage, and also Data Lake Storage Gen2, this mechanism has been extended to the file system resource.

Para obtener más información sobre los permisos de archivo con Azure RBAC, consulte el Control de acceso basado en roles de Azure (Azure RBAC).For more information about file permissions with Azure RBAC, see Azure role-based access control (Azure RBAC).

Para más información sobre los permisos de archivo con las listas de control de acceso, consulte Listas de control de acceso en archivos y directorios.For more information about file permissions with ACLs, see Access control lists on files and directories.

¿Cómo se controla el acceso a mis datos en Data Lake Storage Gen2?How do I control access to my data in Data Lake Storage Gen2?

La capacidad que el clúster de HDInsight tiene de acceder a los archivos en Data Lake Storage Gen2 se controla mediante las identidades administradas.Your HDInsight cluster's ability to access files in Data Lake Storage Gen2 is controlled through managed identities. Una identidad administrada es una identidad registrada en Azure Active Directory (Azure AD) cuyas credenciales son administradas por Azure.A managed identity is an identity registered in Azure Active Directory (Azure AD) whose credentials are managed by Azure. Con identidades administradas, no es necesario registrar entidades de servicio en Azure AD.With managed identities, you don't need to register service principals in Azure AD. Tampoco mantener credenciales como certificados.Or maintain credentials such as certificates.

Los servicios de Azure tienen dos tipos de identidades administradas: asignadas por el sistema y asignadas por el usuario.Azure services have two types of managed identities: system-assigned and user-assigned. HDInsight usa las identidades administradas asignadas por el usuario para acceder a Data Lake Storage Gen2.HDInsight uses user-assigned managed identities to access Data Lake Storage Gen2. Una user-assigned managed identity se crea como un recurso de Azure independiente.A user-assigned managed identity is created as a standalone Azure resource. Mediante un proceso de creación, Azure crea una identidad en el inquilino de Azure AD de confianza para la suscripción que se utiliza.Through a create process, Azure creates an identity in the Azure AD tenant that's trusted by the subscription in use. Una vez creada la identidad, esta puede asignarse a una o varias instancias de servicio de Azure.After the identity is created, the identity can be assigned to one or more Azure service instances.

El ciclo de vida de una identidad asignada por el usuario no se administra junto con el ciclo de vida de las instancias de servicio de Azure a las que se asigna.The lifecycle of a user-assigned identity is managed separately from the lifecycle of the Azure service instances to which it's assigned. Para más información sobre las identidades administradas, consulte el artículo sobre ¿Qué son las identidades administradas para recursos de Azure?.For more information about managed identities, see What are managed identities for Azure resources?.

¿Cómo puedo establecer los permisos para que los usuarios de Azure AD consulten los datos en Data Lake Storage Gen2 mediante Hive u otros servicios?How do I set permissions for Azure AD users to query data in Data Lake Storage Gen2 by using Hive or other services?

Para establecer los permisos para que los usuarios consulten los datos, utilice grupos de seguridad de Azure AD como la entidad de seguridad asignada en las ACL.To set permissions for users to query data, use Azure AD security groups as the assigned principal in ACLs. No asigne directamente permisos de acceso a archivos a usuarios individuales ni a entidades de servicio.Don't directly assign file-access permissions to individual users or service principals. Si se usan los grupos de seguridad de Azure AD para controlar el flujo de los permisos, puede agregar y quitar usuarios o entidades de servicio sin volver a aplicar las ACL a la estructura de todo un directorio.With Azure AD security groups to control the flow of permissions, you can add and remove users or service principals without reapplying ACLs to an entire directory structure. Solo tiene que agregar o quitar los usuarios del grupo de seguridad de Azure AD adecuado.You only have to add or remove the users from the appropriate Azure AD security group. Las ACL no se heredan y, por ello, para volver a aplicar las ACL es necesario actualizarlas en cada archivo y subdirectorio.ACLs aren't inherited, so reapplying ACLs requires updating the ACL on every file and subdirectory.

Acceso a los archivos desde el clústerAccess files from the cluster

Existen varias maneras de acceder a los archivos de Data Lake Storage Gen2 desde un clúster de HDInsight.There are several ways you can access the files in Data Lake Storage Gen2 from an HDInsight cluster.

  • Con el nombre completo.Using the fully qualified name. Con este enfoque, proporciona la ruta de acceso completa al archivo al que quiere acceder.With this approach, you provide the full path to the file that you want to access.

    abfs://<containername>@<accountname>.dfs.core.windows.net/<file.path>/
    
  • Con el formato abreviado de la ruta de acceso.Using the shortened path format. Con este enfoque, reemplazará la ruta de acceso a la raíz del clúster por:With this approach, you replace the path up to the cluster root with:

    abfs:///<file.path>/
    
  • Con la ruta de acceso relativa.Using the relative path. Con este enfoque, solo proporciona la ruta de acceso relativa al archivo al que quiere acceder.With this approach, you only provide the relative path to the file that you want to access.

    /<file.path>/
    

Ejemplos de acceso a datosData access examples

Los ejemplos se basan en una conexión SSH al nodo principal del clúster.Examples are based on an ssh connection to the head node of the cluster. En los ejemplos se usan los tres esquemas de URI.The examples use all three URI schemes. Reemplace CONTAINERNAME y STORAGEACCOUNT por los valores pertinentes.Replace CONTAINERNAME and STORAGEACCOUNT with the relevant values

Algunos comandos HDFSA few hdfs commands

  1. Crear un archivo en el almacenamiento local.Create a file on local storage.

    touch testFile.txt
    
  2. Crear directorios en el almacenamiento de clúster.Create directories on cluster storage.

    hdfs dfs -mkdir abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -mkdir abfs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Copiar datos del almacenamiento local al almacenamiento de clúster.Copy data from local storage to cluster storage.

    hdfs dfs -copyFromLocal testFile.txt  abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -copyFromLocal testFile.txt  abfs:///sampledata2/
    hdfs dfs -copyFromLocal testFile.txt  /sampledata3/
    
  4. Mostrar el contenido del directorio en el almacenamiento de clúster.List directory contents on cluster storage.

    hdfs dfs -ls abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -ls abfs:///sampledata2/
    hdfs dfs -ls /sampledata3/
    

Creación de una tabla de HiveCreating a Hive table

A efectos ilustrativos, se muestran tres ubicaciones de archivos.Three file locations are shown for illustrative purposes. En la ejecución real, use solo una de las entradas LOCATION.For actual execution, use only one of the LOCATION entries.

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 'abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/example/data/';
LOCATION 'abfs:///example/data/';
LOCATION '/example/data/';

Pasos siguientesNext steps