Share via


Administración de permisos de HDFS para clústeres de macrodatos de SQL Server 2019

Se aplica a: SQL Server 2019 (15.x)

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.

HDFS es similar, como sistema de archivos, a los sistemas de archivos basados en Linux que usan POSIX para los permisos de archivo. Además del modelo de permisos de POSIX tradicional, HDFS también admite listas de control de acceso (ACL) de POSIX. Para obtener más información, consulte el artículo de Apache Hadoop sobre las ACL.

En las secciones siguientes se proporcionan ejemplos de cómo usar la CLI de Azure Data (azdata) para administrar los permisos de archivo y directorio de HDFS.

Prerrequisitos

Shell de HDFS

La funcionalidad de shell de hdfs en la CLI de Azure Data (azdata) permite emitir comandos directamente en un shell para administrar los permisos de HDFS en archivos y directorios. El mecanismo subyacente usa llamadas a WebHDFS para emitir los comandos.

El comando siguiente abrirá el shell.

azdata bdc hdfs shell

Para acceder a la ayuda del shell de hdfs y comprender cómo emitir comandos, ejecute el comando siguiente una vez que el shell esté activo.

[hdfs] ?

En el ejemplo siguiente se muestra cómo crear un directorio, enumerar directorios, modificar permisos en un directorio y asignar a un usuario llamado bob acceso de lectura, escritura y ejecución al directorio sales.

[hdfs] mkdir sales
[hdfs] ls
rwxr-xr-x  hdfs bdcadmins        0 Oct 09 18:02 system/
rwxrwxr-x admin bdcadmins        0 Oct 10 16:47 sales/
--xrwxrwxrwx  hdfs bdcadmins        0 Oct 09 18:03 tmp/
rwxrwxrwx  hdfs bdcadmins        0 Oct 09 17:59 user/

[hdfs] acl modify  '/sales/' 'user:bob:rwx'
acl modify: Change completed.
[hdfs] acl status  '/sales/'
{
  `AclStatus`: {
    `entries`: [
      `user:bob:rwx`,
      `group::r-x`
    ],
    `group`: `bdcadmins`,
    `owner`: `admin`,
    `permission`: `775`,
    `stickyBit`: false
  }
}

Creación de un directorio en HDFS mediante la CLI de Azure Data (azdata)

Cree un directorio denominado data en la ruta de acceso /sales.

azdata bdc hdfs mkdir --path '/sales/data'

Cambio del propietario de un directorio o archivo

Cambie el usuario propietario del directorio data de HDFS y convierta a alice en el usuario propietario y salesgroup en el grupo propietario. Para cambiar el propietario, es necesario ser propietario.

azdata bdc hdfs chown --owner alice --group 'salesgroup' --path '/sales/data'

Cambio de los permisos de un archivo o un directorio con chmod

Use chmod para cambiar los permisos en archivos y directorios (para el propietario, el grupo propietario y demás). Para obtener más información, vea cómo cambiar permisos en un sistema de archivos de Linux. En HDFS, el patrón es el mismo. Por ejemplo:

azdata bdc hdfs chmod --permission 750 --path /sales/data
azdata bdc hdfs chmod --permission 775 --path /sales/data/file.txt

Establecimiento del bit de permanencia en los directorios

Establezca el bit de permanencia en los directorios para evitar la eliminación o reubicación involuntaria de los archivos. El bit de permanencia limita el permiso para eliminar o mover un archivo al superusuario, el propietario del directorio o el propietario del archivo. Esta opción no afecta al archivo. En el ejemplo siguiente se establece un bit de permanencia en el directorio users mediante la adición del prefijo 1 a los permisos.

azdata bdc hdfs chmod --path /sales/users --permission 1750

Definición de ACL de archivos y directorios

Para establecer ACL en archivos y directorios en HDFS, use los comandos de la CLI de Azure Data (azdata).

Establezca ACL en un directorio y asigne al usuario llamado tom acceso de lectura, escritura y ejecución al directorio data .

Nota:

Al usar el comando set, asegúrese de que está proporcionando la especificación de ACL completa, incluida la especificación de ACL para el usuario propietario, el grupo propietario y demás.

azdata bdc hdfs acl set --path '/sales' --aclspec  'user::rw-,user:tom:rwx,group::rw-,other::rw-'

ACL predeterminada en directorios

La ACL predeterminada permite que los subdirectorios hereden permisos del directorio principal. Solo los directorios pueden tener una ACL predeterminada. Cuando se crea un archivo o un subdirectorio, este hereda automáticamente la ACL predeterminada de su elemento primario en su propia ACL de acceso. De esta manera, la ACL predeterminada se heredará a través de niveles de directorio con una profundidad arbitraria a medida que se creen otros subdirectorios.

A continuación se muestra un ejemplo de cómo establecer la ACL predeterminada mediante azdata.

azdata bdc hdfs acl set --path '/sale' --aclspec  'user::rw-,user:tom:rwx,group::rw-,other::rw-,default:group::rw-,default:user::rw-,default:other::rw-'