Procedimiento para montar ADLS Gen2 para los niveles de HDFS en un clúster de macrodatos
En las secciones siguientes se ofrece un ejemplo de cómo configurar la organización en niveles de HDFS con un origen de datos de Azure Data Lake Storage Gen2.
Importante
El complemento Clústeres de macrodatos de Microsoft SQL Server 2019 se va a retirar. La compatibilidad con Clústeres de macrodatos de SQL Server 2019 finalizará el 28 de febrero de 2025. Todos los usuarios existentes de SQL Server 2019 con Software Assurance serán totalmente compatibles con la plataforma, y el software se seguirá conservando a través de actualizaciones acumulativas de SQL Server hasta ese momento. Para más información, consulte la entrada de blog sobre el anuncio y Opciones de macrodatos en la plataforma Microsoft SQL Server.
Prerrequisitos
- Clúster de macrodatos implementado
- Herramientas de macrodatos
- azdata
- kubectl
Carga de datos en Azure Data Lake Storage
En la siguiente sección se describe cómo configurar Azure Data Lake Storage Gen2 para probar los niveles de HDFS. Si ya tiene datos almacenados en Azure Data Lake Storage, puede omitir esta sección y usar sus propios datos.
Cree una cuenta de almacenamiento con capacidades de Data Lake Storage Gen2.
Cree un sistema de archivos en esta cuenta de almacenamiento para los datos.
Cargue un archivo .csv o Parquet en el contenedor. Estos son los datos de HDFS externos que se montarán en HDFS en el clúster de macrodatos.
Credenciales para el montaje
Uso de credenciales de OAuth para el montaje
Para poder usar las credenciales de OAuth para el montaje, debes llevar a cabo estos pasos:
Vaya a Azure Portal.
Ve a Microsoft Entra ID. Este servicio debería aparecer en la barra de navegación izquierda.
Selecciona Registros de aplicaciones en el menú de recursos y crea un nuevo registro.
Crea una aplicación web y sigue al asistente. Recuerda el nombre de la aplicación que crees en este paso. Tendrá que agregar este nombre a su cuenta de ADLS como usuario autorizado. Anote también el identificador de cliente de la aplicación en la información general cuando seleccione la aplicación.
Después de crear la aplicación web, vaya a Certificados y secretos, y elija crear un Nuevo secreto de cliente. Seleccionar una duración. Usa Agregar para guardar el secreto.
Vuelva a la página Registros de aplicaciones y haga clic en "Puntos de conexión" en la parte superior. Anote la URL de "Punto de conexión de token de OAuth (v2)" .
Debería tener anotado lo siguiente para OAuth:
- El "identificador de cliente de aplicación" de la aplicación web
- El secreto de cliente
- El punto de conexión del token
Adición de la entidad de servicio a la cuenta de ADLS
- Regrese a Portal, vaya al sistema de archivos de la cuenta de almacenamiento de ADLS y seleccione Control de acceso (IAM) en el menú de la izquierda.
- Seleccione "Agregar una asignación de roles".
- Seleccione el rol "Colaborador de datos de Storage Blob".
- Busque el nombre que creó anteriormente (tenga en cuenta que no aparece en la lista, pero lo encontrará si busca el nombre completo).
- Guarde el rol.
Espere de cinco a diez minutos antes de usar las credenciales para el montaje.
Establecimiento de la variable de entorno para las credenciales de OAuth
Abra un símbolo del sistema en un equipo cliente que pueda acceder al clúster de macrodatos. Establezca una variable de entorno con el siguiente formato. Las credenciales deben estar en una lista separada por comas. El comando "set" se usa en Windows. Si usa Linux, use "Export" en su lugar.
Tenga en cuenta que, al indicar las credenciales, hay que quitar los saltos de línea o el espacio entre las comas (","). El siguiente formato se muestra solo para facilitar la lectura.
set MOUNT_CREDENTIALS=fs.azure.account.auth.type=OAuth,
fs.azure.account.oauth.provider.type=org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider,
fs.azure.account.oauth2.client.endpoint=[token endpoint],
fs.azure.account.oauth2.client.id=[Application client ID],
fs.azure.account.oauth2.client.secret=[client secret]
Uso de claves de acceso para el montaje
También puede llevar a cabo el montaje con las claves de acceso que puede obtener para la cuenta de ADLS en Azure Portal.
Sugerencia
Para obtener más información sobre cómo buscar la clave de acceso (<storage-account-access-key>
) de la cuenta de almacenamiento, vea Visualización de claves de cuenta y cadena de conexión.
Establecimiento de la variable de entorno para las credenciales de clave de acceso
Abra un símbolo del sistema en un equipo cliente que pueda acceder al clúster de macrodatos.
Abra un símbolo del sistema en un equipo cliente que pueda acceder al clúster de macrodatos. Establezca una variable de entorno con el siguiente formato. Las credenciales deben estar en una lista separada por comas. El comando "set" se usa en Windows. Si usa Linux, use "Export" en su lugar.
Tenga en cuenta que, al indicar las credenciales, hay que quitar los saltos de línea o el espacio entre las comas (","). El siguiente formato se muestra solo para facilitar la lectura.
set MOUNT_CREDENTIALS=fs.azure.abfs.account.name=<your-storage-account-name>.dfs.core.windows.net,
fs.azure.account.key.<your-storage-account-name>.dfs.core.windows.net=<storage-account-access-key>
Montaje del almacenamiento de HDFS remoto
Ahora que ha establecido la variable de entorno MOUNT_CREDENTIALS para las claves de acceso o mediante OAuth, puede iniciar el montaje. En los pasos siguientes se monta el almacenamiento de HDFS remoto en Azure Data Lake en el almacenamiento de HDFS local del clúster de macrodatos.
Use kubectl para buscar la dirección IP del servicio controller-svc-external de punto de conexión en el clúster de macrodatos. Busque el valor de External-IP.
kubectl get svc controller-svc-external -n <your-big-data-cluster-name>
Inicie sesión con azdata mediante la dirección IP externa del punto de conexión del controlador con el nombre de usuario y la contraseña del clúster:
azdata login -e https://<IP-of-controller-svc-external>:30080
Establezca la variable de entorno MOUNT_CREDENTIALS (desplácese hacia arriba para obtener instrucciones).
Monte el almacenamiento de HDFS remoto en Azure con el comando azdata bdc hdfs mount create. Reemplace los valores de marcador de posición antes de ejecutar el siguiente comando:
azdata bdc hdfs mount create --remote-uri abfs://<blob-container-name>@<storage-account-name>.dfs.core.windows.net/ --mount-path /mounts/<mount-name>
Nota:
El comando mount create es asincrónico. En este momento, no hay ningún mensaje que indique si el montaje se ha realizado correctamente. Consulte la sección sobre el estado para comprobar el estado de los montajes.
Si se ha montado correctamente, debería poder consultar los datos de HDFS y ejecutar trabajos de Spark en ellos. Aparecerán en el HDFS del clúster de macrodatos en la ubicación que especifique --mount-path
.
Obtención del estado de los montajes
Para mostrar el estado de todos los montajes en el clúster de macrodatos, use el siguiente comando:
azdata bdc hdfs mount status
Para mostrar el estado de un montaje en una ruta de acceso específica de HDFS, use el siguiente comando:
azdata bdc hdfs mount status --mount-path <mount-path-in-hdfs>
Actualización de un montaje
En el siguiente ejemplo se actualiza el montaje. Con esta actualización también se borrará la memoria caché de montaje.
azdata bdc hdfs mount refresh --mount-path <mount-path-in-hdfs>
Eliminación del montaje
Para eliminar el montaje, use el comando azdata bdc hdfs mount delete y especifique la ruta de acceso de montaje en HDFS:
azdata bdc hdfs mount delete --mount-path <mount-path-in-hdfs>
Pasos siguientes
Para obtener más información sobre Clústeres de macrodatos de SQL Server 2019, vea Presentación de Clústeres de macrodatos de SQL Server 2019.