Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15...

200
Elastic Cloud Storage (ECS) Versión 2.2 Guía de acceso a datos 301-002-525 02

Transcript of Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15...

Page 1: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Elastic Cloud Storage (ECS)Versión 2.2

Guía de acceso a datos301-002-525

02

Page 2: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Copyright © 2013-2016 EMC Corporation. Todos los derechos reservados. Publicado en México.

Publicado Febrero, 2016

EMC considera que la información de esta publicación es precisa en el momento de su publicación. La información está sujetaa cambios sin previo aviso.

La información de esta publicación se proporciona "tal cual". EMC Corporation no se hace responsable ni ofrece garantía deningún tipo con respecto a la información de esta publicación y, específicamente, renuncia a toda garantía implícita decomerciabilidad o capacidad para un propósito determinado.

EMC2, EMC y el logotipo de EMC son marcas registradas o marcas comerciales de EMC Corporation en los Estados Unidos o enotros países. Todas las otras marcas comerciales que aparecen aquí son propiedad de sus respectivos dueños.

Para consultar la documentación normativa más actualizada para su línea de productos, visite el sitio de soporte en línea deEMC (https://support.emc.com).

Dirección local de EMCEMC Argentina (Cono Sur) Tel. +54-11-4021-3622 www.argentina.emc.com EMC México Tel. +52-55-5080-3700 www.mexico.emc.com EMC Venezuela (Norte de Latinoamérica) Tel. +58-212-206-6911 www.venezuela.emc.com

2 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 3: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

9

11

S3 13

Introducción al servicio de soporte de Amazon S3 en ECS 15

Soporte de API de Amazon S3 en ECS............................................................16

Funciones compatibles de S3 17

Funcionalidades compatibles y no compatibles de la API de S3.................... 18

Extensiones de S3 21

Extensiones de API........................................................................................22Actualización de un rango de bytes dentro de un objeto................................22Sobrescritura de la parte de un objeto...........................................................24Adición de datos a un objeto.........................................................................24Lectura de múltiples rangos de bytes dentro de un objeto............................. 25

Extensión de la búsqueda de metadatos 27

Mediante la búsqueda de metadatos............................................................ 28Asignación de valores del índice de metadatos a un depósito....................... 28

Configuración de valores de índice mediante la API de REST deadministración de ECS..................................................................... 29Configuración de valores mediante la API de S3............................... 30

Asignación de metadatos a objetos mediante el protocolo de S3.................. 31Utilice las consultas de búsqueda de metadatos...........................................32

Consultas de fecha y hora................................................................ 34Ejemplos de metadatos....................................................................34

Atributos opcionales y metadatos del sistemas ECS...................................... 36

Crear claves secretas 37

Crear una clave secreta................................................................................. 38Creación de una clave para un usuario de objetos.........................................38

Generación de una seña secreta del portal de ECS........................... 38Creación de una seña secreta S3 usando API de REST deadministración de ECS..................................................................... 38

Cree una seña secreta S3: autoservicio......................................................... 39Trabajo con claves de autoservicio...................................................40

Autenticación con el servició de S3 43

Autenticación con el servició de S3............................................................... 44

Figuras

Tablas

Parte 1

Capítulo 1

Capítulo 2

Capítulo 3

Capítulo 4

Capítulo 5

Capítulo 6

CONTENIDO

Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos 3

Page 4: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Acceso de cliente Java 45

Uso del SDK para obtener acceso al servicio de S3........................................46Uso del Java SDK de Amazon............................................................46Cliente SDK Java para ECS................................................................ 48

OpenStack Swift 49

Introducción a la compatibilidad con OpenStack Swift en ECS 51

Soporte de API de OpenStack Swift en ECS....................................................52

Funciones compatibles con Swift 53

OpenStack Swift supported operations......................................................... 54

Extensiones de Swift 57

Extensiones de API de Swift...........................................................................58Actualización de un rango de bytes dentro de un objeto................................58Sobrescritura de la parte de un objeto...........................................................59Adición de datos a un objeto.........................................................................60Lectura de múltiples rangos de bytes dentro de un objeto............................. 61

Autenticación 63

Autenticación de la versión 1 de OpenStack ................................................. 64Autenticación de la versión 2 de OpenStack..................................................65

Autorización 69

Autorización de contenedores....................................................................... 70

EMC Atmos 71

Introducción al servicio de soporte de EMC Atmos en ECS 73

Soporte de API de EMC Atmos en ECS............................................................74

Funciones compatibles con Atmos 75

Llamadas compatibles de la API REST de EMC Atmos.................................... 76Llamadas no compatibles de la API REST de EMC Atmos................................77Compatibilidad de subgrupo de usuarios de la API REST de EMC Atmos........ 78

Extensiones de API de Atmos 79

Extensiones de API........................................................................................80Adición de datos a un objeto............................................................80

CAS 83

Capítulo 7

Parte 2

Capítulo 8

Capítulo 9

Capítulo 10

Capítulo 11

Capítulo 12

Parte 3

Capítulo 13

Capítulo 14

Capítulo 15

Parte 4

CONTENIDO

4 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 5: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Soporte para la configuración de aplicaciones del SDK de CAS con elportal de ECS 85

Configuración de compatibilidad de CAS en ECS........................................... 86Almacenamiento inactivo.............................................................................. 86Cumplimiento de normas.............................................................................. 88

Protección de la plataforma..............................................................88Política de retención y cumplimiento de normas.............................. 88Agente de cumplimiento de normas................................................. 90

Retención de CAS en ECS.............................................................................. 90Establecer políticas de retención de espacio de nombres..............................92Establecer un depósito para CAS...................................................................93Configurar un usuario de objetos de CAS.......................................................94Configurar ACL de depósito para un usuario.................................................. 95ECSAPI de REST compatibles con usuarios de CAS........................................ 98Compatibilidad de la API del SDK de almacenamiento direccionable porcontenido (CAS)............................................................................................ 98

API de administración de ECS 101

Introducción a la REST API de administración de ECS 103

API de REST de administración de ECS.........................................................104

Autenticación con el servicio de administración de ECS 105

Autenticación con API de REST de administración de ECS............................106Autenticación con AUTH-TOKEN .....................................................106Autenticación con cookies............................................................. 107Cerrar sesión..................................................................................108Whoami......................................................................................... 108

Resumen de la REST API de administración de ECS 111

Resumen de API de REST de administración de ECS.....................................112

HDFS 117

¿Qué es ECS HDFS? 119

¿Qué es ECS HDFS?..................................................................................... 120Configuración de Hadoop para usar ECS HDFS ............................................121ECSURI de HDFS para el acceso al sistema de archivos................................122Modos de autenticación de Hadoop............................................................ 122

Acceso al depósito como un sistema de archivos...........................123ACL de grupo personalizado y grupo predeterminado del depósito...................................................................................................... 123Superusuario y supergrupo de Hadoop.......................................... 124Acceso multiprotocolo (crosshead)................................................ 124Modo de autenticación Kerberos de Hadoop.................................. 125Usuario proxy.................................................................................125Usuario de equivalencia.................................................................125Compatibilidad con SymLink..........................................................126

Migración de un clúster simple a uno de Hadoop de Kerberos.....................126

Capítulo 16

Parte 5

Capítulo 17

Capítulo 18

Capítulo 19

Parte 6

Capítulo 20

CONTENIDO

Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos 5

Page 6: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Interacción del sistema de archivos............................................................ 127Aplicaciones de Hadoop compatibles y no compatibles.............................. 127

Creación de un depósito para el sistema de archivos de HDFS 129

Creación de un depósito mediante el portal de ...........................................130Categoría de grupo personalizado de conjunto de ACL................... 132Permisos de ACL del depósito para un usuario............................... 134

Ejemplos de permisos de depósitos de Hadoop y ECS.................................135

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS 139

Implementación de un clúster de Hortonworks con Ambari......................... 140Descargar Ambari........................................................................................140Descargue ECS HDFS Client Library..............................................................140Configurar un catálogo local desde el cual desea implementar la librería decliente de ECS............................................................................................. 140Instale el servidor de .................................................................................. 141Activar la plataforma de Ambari Hadoop ECS...............................................141Instalación manual del agente de Ambari....................................................142Instalación de Hadoop ............................................................................... 142

Configuración de la integración de ECS HDFS con un clúster simple deHadoop 147

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop................................................................................................................... 148Planificación de la integración de ECS HDFS y Hadoop................................ 148Obtain the ECS HDFS installation and support package............................... 149Implementación de la biblioteca de clientes HDFS de ECS...........................149Configuración de HAWQ de Pivotal.............................................................. 151Edición del archivo Hadoop core-site.xml.................................................... 152Inicialización de GP Database .................................................................... 156Edición de HBASE hbase-site.xml................................................................156Reiniciar y verificar el acceso.......................................................................157

Configuración de la integración de ECS HDFS a un clúster de Hadoop(kerberizado) seguro 159

Integrar el clúster de Hadoop seguro a ECS HDFS ........................................160Planear la migración desde un clúster simple a uno de Kerberos.................160Configure Pivotal HAWQ in a Kerberos environment.....................................161Configuración de los nodos ECS con el principal del servicio de ECS........... 162Asegurar el depósito de ECS con metadatos................................................165

Carga de los valores de metadatos a ECS mediante la API de REST deadministración...............................................................................168

Edite core-site.xml...................................................................................... 169Inicializar la base de datos de HAWQ ......................................................... 173Reiniciar y verificar el acceso.......................................................................173

Guía sobre la configuración de Kerberos 175

Guía sobre la configuración de Kerberos..................................................... 176Configuración del KDC de Kerberos................................................ 176Configuración de la autenticación de usuario AD para Kerberos..... 177

Capítulo 21

Capítulo 22

Capítulo 23

Capítulo 24

Capítulo 25

CONTENIDO

6 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 7: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Configuración de los nodos ECS con el principal del servicio de ECS........... 179

Solución de problemas 181

Solución de problemas............................................................................... 182Compruebe que AD/LDAP está configurado correctamente con el clústerHadoop seguro............................................................................................182Reinicio de los servicios después de la configuración hbase....................... 183Falla la prueba PIG: no se puede obtener el principal de Kerberos............... 183Permiso denegado para el usuario de AD.................................................... 183Errores de permisos.................................................................................... 183

Errores INSUFFICIENT_PERMISSIONS.............................................. 184Error al obtener las credenciales.................................................... 184Error de acceso a depósitos........................................................... 184Error de acceso a objetos............................................................... 185

\n no se pudo procesar la solicitud: %s.......................................................187Habilitar el registro de cliente de Kerberos.................................................. 187Depuración de Kerberos en KDC.................................................................. 187Eliminación de la desviación del reloj..........................................................187

Propiedades de core-site.xml de Hadoop para ECS HDFS 189

Propiedades de Hadoop core-site.xml para ECS HDFS................................. 190Ejemplo de core-site.xml para el modo de autenticación simple.....193

Ejemplo de metadatos de depósito seguro 195

Asegurar los metadatos del depósito.......................................................... 196

Capítulo 26

Capítulo 27

Capítulo 28

CONTENIDO

Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos 7

Page 8: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CONTENIDO

8 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 9: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Activar el cumplimiento de normas en un nuevo espacio de nombres en el Portal de ECS......................................................................................................................................90Nueva política de retención........................................................................................... 93Políticas de retención para un espacio de nombres....................................................... 93Configuración de CAS para usuarios de objetos............................................................. 94Editar ACL del depósito..................................................................................................95Administración de ACL de depósitos..............................................................................96Integración de ECS HDFS en un cluster de Hadoop.......................................................120

1

234567

FIGURAS

Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos 9

Page 10: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

FIGURAS

10 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 11: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

API de S3 compatibles...................................................................................................18Funciones adicionales................................................................................................... 19API de S3 no compatibles.............................................................................................. 20Extensiones de la API de objetos................................................................................... 22OpenStack Swift supported calls................................................................................... 54OpenStack Swift unsupported calls............................................................................... 55Extensiones de API de Swift........................................................................................... 58Llamadas compatibles de la API de REST de Atmos........................................................76Llamadas no compatibles de la API de REST de Atmos...................................................77Extensiones de la API de objetos................................................................................... 80Requisitos para los archivos regulares y frío en comparación con.................................. 87ECS Recursos de REST API para la retención...................................................................91ACL de depósitos...........................................................................................................96Grupos de ACL de depósitos.......................................................................................... 97API de REST de administración de ECS- resumen de métodos...................................... 112Ejemplos de permisos de depósitos para acceder al sistema de archivos en modo simple....................................................................................................................................135Ejemplos de permisos de depósitos para acceder al sistema de archivos en modoKerberos......................................................................................................................136Prerrequisitos de configuración de ECS HDFS...............................................................148Biblioteca de clientes HDFS de ECS .............................................................................150Conector para HAWQ de ECS........................................................................................151ubicaciones de core-site.xml....................................................................................... 153ubicaciones de hbase-site.xml.................................................................................... 156ECS HAWQ Connector.................................................................................................. 161Ubicación de archivos de core-site.xml ....................................................................... 169Propiedades de Hadoop core-site.xml......................................................................... 190

12345678910111213141516

17

1819202122232425

TABLAS

Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos 11

Page 12: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

TABLAS

12 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 13: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

PARTE 1

S3

Capítulo 1, "Introducción al servicio de soporte de Amazon S3 en ECS"

Capítulo 2, "Funciones compatibles de S3"

Capítulo 3, "Extensiones de S3"

Capítulo 4, "Extensión de la búsqueda de metadatos"

Capítulo 5, "Crear claves secretas"

Capítulo 6, "Autenticación con el servició de S3"

Capítulo 7, "Acceso de cliente Java"

S3 13

Page 14: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

S3

14 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 15: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 1

Introducción al servicio de soporte de Amazon S3en ECS

l Soporte de API de Amazon S3 en ECS....................................................................16

Introducción al servicio de soporte de Amazon S3 en ECS 15

Page 16: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Soporte de API de Amazon S3 en ECSEn esta parte se describe la compatibilidad de ECS con la API de Amazon S3.

El servicio de objetos Amazon S3 está disponible en los siguientes puertos.

Protocolo Puertos

HTTP 9020

HTTPS 9021

En los siguientes temas se describen la compatibilidad con la API de S3, la extensión queproporciona ECS y la forma de autenticarse con el servicio y de utilizar SDK paradesarrollar clientes que puedan acceder al servicio:

l Funcionalidades compatibles y no compatibles de la API de S3 en la página 18

l Extensiones de API en la página 22

l Mediante la búsqueda de metadatos en la página 28

l Crear una clave secreta en la página 38

l Autenticación con el servició de S3 en la página 44

l Uso del SDK para obtener acceso al servicio de S3 en la página 46

Algunos aspectos de autenticación y direccionamiento de depósitos son específicos deECS. Si desea configurar una aplicación existente para que se comunique con ECS odesarrollar una nueva aplicación que utilice la API de S3 para que se comunique conECS, debe consultar el siguiente tema:

l Guía del administrador: Almacenamiento de objetos ECS y uso de la URL de base

Introducción al servicio de soporte de Amazon S3 en ECS

16 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 17: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 2

Funciones compatibles de S3

l Funcionalidades compatibles y no compatibles de la API de S3............................ 18

Funciones compatibles de S3 17

Page 18: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Funcionalidades compatibles y no compatibles de la API de S3ECS admite un subconjunto de la API REST de Amazon S3.

Las siguientes secciones detallan las API compatibles y no compatibles:

l API de S3 compatibles en la página 18

l API de S3 no compatibles en la página 20

API de S3 compatiblesLa siguiente tabla enumera los métodos de API de S3 compatibles.

Tabla 1 API de S3 compatibles

Función Notas

Servicio GET ECS es compatible con parámetros de marcador y max-keys parapermitir la paginación de la lista de depósitos.

GET /?marker=<bucket>&max-keys=<num>

Por ejemplo:

GET /?marker=mybucket&max-keys=40

Categoría DELETE

CORS de categoría DELETE

Ciclo de vida de categoríaDELETE

Solo la parte de la expiración es compatible con el ciclo de vida.Las políticas relacionadas con el archiving (AWS Glacier) no soncompatibles.

Categoría GET (lista de objetos)

CORS de categoría GET

ACL de categoría GET

Ciclo de vida de categoría GET Solo la parte de la expiración es compatible con el ciclo de vida.Las políticas relacionadas con el archiving (AWS Glacier) no soncompatibles.

Versiones de objeto decategoría GET

Control de versiones decategoría GET

Categoría HEAD

Enumerar cargas de múltiplespartes

Categoría PUT

CORS de categoría PUT

ACL de categoría PUT

Funciones compatibles de S3

18 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 19: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 1 API de S3 compatibles (continuación)

Función Notas

Ciclo de vida de categoría PUT Solo la parte de la expiración es compatible con el ciclo de vida.Las políticas relacionadas con el archiving (AWS Glacier) no soncompatibles.

Control de versiones decategoría PUT

Objeto DELETE

Eliminar múltiples objetos

Objeto GET

ACEL de objeto GET

Objeto HEAD

Objeto PUT Es compatible con PUT fragmentada

ACL de objeto PUT

Objeto PUT - Copia

Objeto OPTIONS

Iniciar carga de múltiplespartes

Cargar parte

Cargar parte - Copia

Completar carga de múltiplespartes

ECS devuelve un ETag de "00" para esta solicitud. Esto difiere dela respuesta de Amazon S3.

Cancelar carga de múltiplespartes

Enumerar partes

Tabla 2 Funciones adicionales

Característica Notas

URL prefirmados ECS es compatible con el uso de URL prefirmadas para que losusuarios puedan tener acceso a los objetos sin necesidad decredenciales.

Puede obtener más información aquí.

PUT fragmentada La operación PUT se puede utilizar para cargar objetos enfragmentos. La transferencia fragmentada utiliza el encabezadoTransferencia-Codificación (Transferencia-Codificación:fragmentada) para especificar que el contenido se transmitiráen fragmentos. Esto permite que el contenido de envíe antes deque se conozca el tamaño total de la carga.

Funciones compatibles de S3

Funcionalidades compatibles y no compatibles de la API de S3 19

Page 20: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

API de S3 no compatiblesLa siguiente tabla enumera los métodos de API de S3 no compatibles.

Tabla 3 API de S3 no compatibles

Función Notas

Política de categoría DELETE

Etiquetado de categoríaDELETE

Sitio web de categoría DELETE

Política de categoría GET

Ubicación de categoría GET ECS solo tiene conocimiento de un solo centro de datos virtual.

Registro de categoría GET

Notificación de categoría GET La notificación solo se define para la funcionalidad deredundancia reducida de S3. Actualmente, ECS no admitenotificaciones.

Etiquetado de categoría GET

Solicitud de pagos decategoría GET

ECS cuenta con su propio modelo de pagos.

Sitio web de categoría GET

Política de categoría PUT

Registro de categoría PUT

Notificación de categoría PUT La notificación solo se define para la funcionalidad deredundancia reducida de S3. Actualmente, ECS no admitenotificaciones.

Etiquetado de categoría PUT

Solicitud de pagos decategoría PUT

ECS cuenta con su propio modelo de pagos.

Sitio web de categoría PUT

API de objeto

Torrent de objeto GET

Objeto POST

Restaurar objeto POST Esta operación se relaciona con AWS Glacier, que no escompatible con ECS.

Funciones compatibles de S3

20 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 21: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 3

Extensiones de S3

l Extensiones de API................................................................................................22l Actualización de un rango de bytes dentro de un objeto........................................22l Sobrescritura de la parte de un objeto...................................................................24l Adición de datos a un objeto.................................................................................24l Lectura de múltiples rangos de bytes dentro de un objeto..................................... 25

Extensiones de S3 21

Page 22: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Extensiones de APIVarias extensiones para las API de objetos son compatibles.

Las extensiones y la API que las admiten aparecen en la siguiente tabla.

Tabla 4 Extensiones de la API de objetos

Característica Notas

PUT objeto (rango,actualizar)

Utiliza el encabezado del rango para especificar el rango del objeto quese actualizará.

Consulte Actualización de un rango de bytes dentro de un objeto enla página 22

PUT objeto (rango,sobrescribir)

Utiliza el encabezado del rango para especificar el rango del objeto quese sobrescribirá.

Consulte Sobrescritura de la parte de un objeto en la página 24

PUT objeto (rango,agregar)

Utiliza el encabezado del rango para especificar el rango del objetoagregado.

Adición de datos a un objeto en la página 24

GET objeto (rango,leer)

Utiliza el encabezado del rango para especificar el rango de bytes delobjeto que se leerá.

Consulte Lectura de múltiples rangos de bytes dentro de unobjeto en la página 25

Búsqueda demetadatos

Permite la búsqueda de objetos basada en metadatos indexadosanteriormente.

Consulte Mediante la búsqueda de metadatos en la página 28

Actualización de un rango de bytes dentro de un objetoA continuación, se muestra un ejemplo de la utilización de extensiones de la API de paraactualizar un rango de bytes de un objeto.

Primero realice una solicitud GET en el objeto denominado object1, ubicado enbucket1 para revisar el objeto. object1 tiene el valor The quick brown foxjumps over the lazy dog.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:04:40 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:9qxKiHt2H7upUDPF86dvGp8VdvI=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OK

Extensiones de S3

22 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 23: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Date: Mon, 17 Jun 2013 20:04:40 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:04:28 GMTETag: 6Content-Type: application/jsonContent-Length: 43 The quick brown fox jumps over the lazy dog.

Ahora debe actualizar un rango de bytes específico dentro de este objeto. Para ello, elencabezado del rango en la solicitud de datos de objetos debe incluir lascompensaciones de inicio y de finalización del objeto que desea actualizar. El formato esel siguiente: Range: bytes=<startOffset>-<endOffset>En el siguiente ejemplo, la solicitud PUT incluye el encabezado del rango con el valorbytes=10-14, que indica que los bytes 10,11,12,13,14 serán reemplazados por elvalor enviado en la solicitud. Aquí, se envía el nuevo valor de green.

PUT /bucket1/object1 HTTP/1.1Content-Length: 5Range: bytes=10-14ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:15:16 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:xHJcAYAEQansKLaF+/4PdLBHyaM=Accept-Encoding: gzip, deflate, compress green HTTP/1.1 204 No ContentETag: 10x-amz-id-2: object1x-amz-request-id: 027f037c-29ea-4670-8670-de82d0e9f52aContent-Length: 0Date: Mon, 17 Jun 2013 20:15:16 GMT

Al leer el objeto nuevamente, el valor nuevo será The quick green fox jumpsover the lazy dog. (La palabra brown se reemplazó con green). Ha actualizadoun rango de bytes específico dentro de este objeto.

GET /bucket1/object1 HTTP/1.1Cookie: JSESSIONID=wdit99359t8rnvipinz4tbtuACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:16:00 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:OGVN4z8NV5vnSAilQTdpv/fcQzU=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:16:00 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:15:16 GMTETag: 10Content-Type: application/jsonContent-Length: 43 The quick green fox jumps over the lazy dog.

Extensiones de S3

Actualización de un rango de bytes dentro de un objeto 23

Page 24: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Sobrescritura de la parte de un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de parasobrescribir la parte de un objeto.

Puede sobrescribir la parte de un objeto proporcionando solo la compensación de inicioen la solicitud de datos. Los datos en la solicitud se escribirán al inicio de lacompensación proporcionada. El formato es el siguiente: Range:<startingOffset>-Por ejemplo, para escribir el inicio de datos brown cat en la compensación 10, Ud.debería emitir la siguiente solicitud PUT:

PUT /bucket1/object1 HTTP/1.1Content-Length: 9Range: bytes=10-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:51:41 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:uwPjDAgmazCP5lu77Zvbo+CiT4Q=Accept-Encoding: gzip, deflate, compress brown cat HTTP/1.1 204 No ContentETag: 25x-amz-id-2: object1x-amz-request-id: 65be45c2-0ee8-448a-a5a0-fff82573aa3bContent-Length: 0Date: Mon, 17 Jun 2013 20:51:41 GMT

Al recuperar un objeto, puede ver el valor final de The quick brown cat jumpsover the lazy dog and cat. (green fox se reemplazó por brown cat). Hasobrescrito una parte de los datos en este objeto en la compensación de inicioproporcionada.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTETag: 25Content-Type: application/jsonContent-Length: 51 The quick brown cat jumps over the lazy dog and cat.

Adición de datos a un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de paraagregar datos a un objeto.

Puede haber casos en los que necesite agregar un objeto, pero la determinación de lacompensación exacta de bytes no es eficiente o útil. Para este escenario, proporciona la

Extensiones de S3

24 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 25: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

capacidad de agregar atómicamente datos al objeto sin especificar una compensación(la compensación correcta se devuelve en la respuesta).

Se puede utilizar un encabezado de rango con el valor especial bytes=-1- para agregardatos a un objeto. De esta manera, el objeto se puede extender sin conocer el tamañodel objeto existente.

El formato es el siguiente: Range: bytes=-1-

Una solicitud de ejemplo que muestra la adición a un objeto existente con un valor derango de bytes=-1-. Aquí el valor and cat se envía en la solicitud.

PUT /bucket1/object1 HTTP/1.1Content-Length: 8Range: bytes=-1-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:01 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/sqOFL65riEBSWLg6t8hL0DFW4c=Accept-Encoding: gzip, deflate, compress and cat HTTP/1.1 204 No ContentETag: 24x-amz-id-2: object1x-amz-request-id: 087ac237-6ff5-43e3-b587-0c8fe5c08732Content-Length: 0Date: Mon, 17 Jun 2013 20:46:01 GMT

Cuando se recupera el objeto nuevamente, puede ver el valor total The quick greenfox jumps over the lazy dog and cat.. Ha agregado datos a este objeto.

GET /bucket1/object1 HTTP/1.1ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:56 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:D8FSE8JoLl0MTQcFmd4nG1gMDTg=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:46:56 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:46:01 GMTETag: 24Content-Type: application/jsonContent-Length: 51 The quick green fox jumps over the lazy dog and cat.

Lectura de múltiples rangos de bytes dentro de un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de para leermúltiples rangos de byte dentro de un objeto.

Para leer dos rangos específicos de bytes en el objeto denominado object1, debeemitir la siguiente solicitud GET para Range: bytes==4-8,41-44. La respuesta delectura será para las palabras quick y lazy.

Extensiones de S3

Lectura de múltiples rangos de bytes dentro de un objeto 25

Page 26: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Nota

La API de Amazon S3 admite solo un rango cuando se utiliza el del encabezado HTTPpara la lectura; admite múltiples rangos de bytes.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcRange: bytes==4-8,41-44Content-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 206 Partial ContentDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: multipart/byteranges;boundary=bound04acf7f0ae3cccLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTContent-Length: 230 --bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 4-8/50quick--bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 41-44/50lazy--bound04acf7f0ae3ccc--

Extensiones de S3

26 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 27: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 4

Extensión de la búsqueda de metadatos

l Mediante la búsqueda de metadatos.................................................................... 28l Asignación de valores del índice de metadatos a un depósito............................... 28l Asignación de metadatos a objetos mediante el protocolo de S3.......................... 31l Utilice las consultas de búsqueda de metadatos...................................................32l Atributos opcionales y metadatos del sistemas ECS.............................................. 36

Extensión de la búsqueda de metadatos 27

Page 28: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Mediante la búsqueda de metadatosLa API de S3 compatibles con ECS proporciona una extensión de la búsqueda demetadatos a la API que permite que los objetos dentro de una categoría se indexan enfunción de sus metadatos y para el índice de metadatos para consultarla para encontrarobjetos y sus datos asociados.

Tradicionalmente, los metadatos se pueden asociar con objetos mediante la API de S3de ECS y, si conoce la identidad del objeto que está interesado en, puede leer susmetadatos. Sin embargo, sin la función de búsqueda de metadatos ECS, no es posibleencontrar un objeto en función de sus metadatos sin iteran mediante el conjunto deobjetos en una categoría.

Metadatos pueden ser cualquierametadatos del usuarioometadatos del sistema.Metadatos del sistema se define y se escriben automáticamente a los objetos por ECS,los metadatos del usuario se escriben por clientes de acuerdo con los requisitos delusuario final. Metadatos de sistema y el usuario pueden ser indexados y utiliza comofundamento para búsquedas de metadatos. El número de valores de metadatos que sepueden indexar se limita a 5 y se debe definir cuando se creó la categoría.

Además de los metadatos del sistema, los objetos también tienen atributos que sepueden devolver como parte de los resultados de búsqueda de metadatos.

La siguiente cubierta temas implica los pasos en la configuración y mediante la funciónde búsqueda de metadatos:

l Asignación de valores del índice de metadatos a un depósito en la página 28

l Asignación de metadatos a objetos mediante el protocolo de S3 en la página 31

l Utilice las consultas de búsqueda de metadatos en la página 32

Se enumeran los valores de metadatos del sistema que están disponibles y se puedenindexar y los valores de metadatos que pueden devolverse opcionalmente conresultados de consulta de búsqueda, aquí en la página 36.

Asignación de valores del índice de metadatos a un depósitoPuede establecer valores del índice de metadatos en un depósito mediante el Portal deECS, la API de REST de administración de ECS o mediante el protocolo de S3. Los valoresdel índice deben reflejar el nombre de los metadatos que indexan y se pueden basar enlos metadatos del sistema o del usuario.

Se proporciona una lista de los metadatos del sistema disponibles en Atributosopcionales y metadatos del sistemas ECS en la página 36.

Los valores del índice se configuran cuando se crea un depósito. Puede desactivar el usode indexación en un depósito, pero no puede cambiar o eliminar valores de índiceindividuales.

Configuración de valores de índice mediante el PortalLa página Manage > Bucket le permite crear depósitos y asignar valores de índice duranteel proceso de creación. Consulte Guía del administrador: Creación y configuración dedepósitos para obtener detalles.

Extensión de la búsqueda de metadatos

28 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 29: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Configuración de valores de índice mediante la API de REST de administración deECS

Los métodos que brinda la API de REST de administración de ECS para trabajar con losíndices se enumeran en la tabla a continuación y se proporcionan vínculos de referenciapara la API.

Ruta de API Descripción

GET /object/bucket/searchmetadata

Enumera los nombres de todas las claves de metadatos delsistema disponibles para asignarlas a un nuevo depósito.

POST /object/bucket Asigna los nombres de índice de metadatos que se indexaránpara el depósito especificado. Los nombres de índice sesuministran en la carga útil de método.

GET /object/bucket Obtiene una lista de depósitos. La información de depósito paracada uno de estos muestra los detalles de la búsqueda demetadatos.

GET /object/bucket/{bucketname}/info

Obtiene los detalles del depósito seleccionado. La informaciónpara el depósito incluye los detalles de la búsqueda demetadatos.

DELETE /object/bucket/{bucketname}/searchmetadata

Detiene la indexación mediante las claves de metadatos.

Ejemplo: Obtener una lista de los nombres de metadatos disponiblesEl siguiente ejemplo obtiene la lista completa de nombres de metadatos disponiblespara la indexación y que pueden devolverse en consultas.

s3curl.pl --id myuser -- http://{host}:9020/?searchmetadata

Los resultados de la consulta son los siguientes.

<MetadataSearchList xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <IndexableKeys> <Key> <Name>LastModified</Name> <Datatype>datetime</Datatype> </Key> <Key> <Name>Owner</Name> <Datatype>string</Datatype> </Key> <Key> <Name>Size</Name> <Datatype>integer</Datatype> </Key> <Key> <Name>CreateTime</Name> <Datatype>datetime</Datatype> </Key> <Key> <Name>ObjectName</Name> <Datatype>string</Datatype> </Key> </IndexableKeys> <OptionalAttributes>

Extensión de la búsqueda de metadatos

Configuración de valores de índice mediante la API de REST de administración de ECS 29

Page 30: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

<Attribute> <Name>ContentType</Name> <Datatype>string</Datatype> </Attribute> <Attribute> <Name>Expiration</Name> <Datatype>datetime</Datatype> </Attribute> <Attribute> <Name>ContentEncoding</Name> <Datatype>string</Datatype> </Attribute> <Attribute> <Name>Expires</Name> <Datatype>datetime</Datatype> </Attribute> <Attribute> <Name>Retention</Name> <Datatype>integer</Datatype> </Attribute> </OptionalAttributes></MetadataSearchList>

Ejemplo: Obtener la lista de claves que se indexan para un depósitoEl siguiente ejemplo obtiene la lista de claves de metadatos que se indexan en laactualidad para un depósito.

s3curl.pl --id myuser -- http://{host}:9020/mybucket/?searchmetadata

Los resultados de este ejemplo son los siguientes.

<MetadataSearchList xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <MetadataSearchEnabled>true</MetadataSearchEnabled> <IndexableKeys> <Key> <Name>Size</Name> <Datatype>integer</Datatype> </Key> <Key> <Name>x-amz-meta-DAT</Name> <Datatype>datetime</Datatype> </Key> </IndexableKeys></MetadataSearchList>

Configuración de valores mediante la API de S3

Los métodos que brinda la API de S3 para trabajar con los índices se enumeran en latabla a continuación y se proporcionan vínculos de referencia para la API

Ruta de API Descripción

GET /?searchmetadata Enumera los nombres de todos los metadatos del sistemadisponibles cuando se realiza la indexación en depósitosnuevos.

PUT /{bucket} -H x-emc-metadata-search:{name[;datatype],...}

Crea un depósito con la clave de metadatos de búsquedaindicada en el encabezado.

Extensión de la búsqueda de metadatos

30 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 31: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Ruta de API Descripción

Se debe asociar un tipo de datos con una clave de metadatosde usuario, pero no es necesario para una clave demetadatos del sistema.

GET /{bucket}/?searchmetadata Obtiene la lista de claves de metadatos que se indexan en laactualidad para el depósito.

EjemploEl siguiente ejemplo muestra cómo crear un depósito con los índices de metadatos paratres claves de metadatos del sistema y dos claves de metadatos del usuario.

s3curl.pl --id myuser --createbucket -- http://{host}:9020/mybucket -H "x-emc-metadata-search:Size,CreateTime,LastModified,x-amz-meta-STR;String,x-amz-meta-INT;Integer"

Asignación de metadatos a objetos mediante el protocolo de S3Los usuarios finales pueden asignar metadatos de usuario a objetos mediante elencabezado “x-amz - meta-”. El valor asignado puede ser cualquier cadena de caracteresy distingue mayúsculas de minúsculas.

Cuando se realiza una indexación de metadatos, de modo que puedan utilizarse como labase de las búsquedas de objeto (la función de búsqueda de metadatos), se asigna untipo de datos a los datos. Al escribir metadatos en objetos, los clientes deben escribirdatos en el formato adecuado, de modo que se puedan usar correctamente en lasbúsquedas.

Los tipos de datos son los siguientes:

Cadena

Si el término del índice de búsqueda se marca como texto, la cadena de metadatosse considerará una cadena en todas las comparaciones de búsqueda.

Número entero

Si el término del índice de búsqueda se marca como número entero, la cadena demetadatos se convertirá en un número entero en las comparaciones de búsqueda.

Decimal

Si un término del índice de búsqueda se marca como decimal, la cadena demetadatos se convertirá en un valor decimal, de manera que el carácter “.” seconsidere un punto decimal.

Fecha y hora

Si el término del índice de búsqueda se marca como fecha y hora, la cadena demetadatos se considerará una fecha y hora con el formato esperado: aaaa-MM-ddTHH:mm:ssZ Si desea que la cadena se trate como fecha y hora, se deberá utilizarel formato de aaaa-MM-ddTHH:mm:ssZ cuando se especifiquen los metadatos.

Extensión de la búsqueda de metadatos

Asignación de metadatos a objetos mediante el protocolo de S3 31

Page 32: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

EjemploEl siguiente ejemplo utiliza la API de S3 para cargar un objeto y dos valores de metadatosde usuario en el objeto.

s3curl.pl --id myuser --put myfile -- http://{host}:9020/mybucket/file4 -i -H x-amz-meta-STR:String4 -H x-amz-meta-INT:407

Utilice las consultas de búsqueda de metadatosLa función de búsqueda de metadatos proporciona un idioma de la consulta enriquecidoque permite que los objetos que indexaron metadatos para buscar.

La sintaxis, se muestra en la siguiente tabla.

Sintaxis de la API Cuerpo de la respuesta

GET /{bucket}/?query={expression}&attributes={fieldname,…}&sorted={selector}&include_older_version={true|false} (…also standard pagination parameters apply)

<BucketQueryResult xmlns:ns2="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>mybucket</Name> <Marker/> <NextMarker>NO MORE PAGES</NextMarker> <MaxKeys>0</MaxKeys> <IsTruncated>false</IsTruncated> <ObjectMatches> <object> <objectName>file4</objectName> <objectId>09998027b1b7fbb21f50e13fabb481a237ba2f60f352d437c8da3c7c1c8d7589</objectId> <queryMds> <type>SYSMD</type> <mdMap> <entry> <key>createtime</key> <value>1449081778025</value> </entry> <entry> <key>size</key> <value>1024</value> </entry> <entry> <key>mtime</key> <value>1449081778025</value> </entry> </mdMap> </queryMds> <queryMds> <type>USERMD</type> <mdMap> <entry> <key>x-amz-meta-INT</key> <value>407</value> </entry> <entry> <key>x-amz-meta-STR</key> <value>String4</value> </entry> </mdMap> </queryMds> <indexKey/> </object> <object ... </object> </ObjectMatches></BucketQueryResult>

Las palabras clave de la expresión y sus significados se enumeran a continuación:

Extensión de la búsqueda de metadatos

32 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 33: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Expresión

Una expresión en el formulario:

[(]{condition1}[%20[and/or]%20{condition2}][)][%20[and/or]%20…]

Donde "condición de" es un filtro de nombre de la clave de metadatos en elformulario:

{selector} {operator}{argument},

Por ejemplo:

LastModified > 2015-09-02T11:22:00Z

Selector

Un nombre de clave puede realizar búsquedo asociado con la categoría.

operador

Un operador. Uno de: ==,>,<,<=,>=

"/?"

Un valor que el selector de se probarán frente a.

atributos = [NombreCampo,...]

Especifica los atributos de objeto opcional que se deben incluir en el informe.Valores de atributo se incluirán en el informe donde está presente en el objeto dichoatributo. Los valores de atributo opcional comprenden:

l ContentEncoding

l ContentType

l Retención

l Vencimiento

l Expira

ordenan = [selector]

Especifica un nombre de clave puede realizar búsquedo asociado con la categoría.El nombre de la clave debe ser una clave que aparece en la expresión. En laausencia de&ordenan = keyname, la salida se ordenará según el primer nombre declave que aparece en la expresión de consulta.

Nota

Si "o" operadores se utilizan en la expresión, el orden de clasificación esindeterminado.

incluir--las versiones anteriores = [verdadero/falso]

Cuando está activado el control de versiones de S3 en una categoría, estaconfiguración en true devolverá las versiones actuales y anteriores de objetos quecoincidan con la expresión. El valor predeterminado es falso.

Extensión de la búsqueda de metadatos

Utilice las consultas de búsqueda de metadatos 33

Page 34: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Consultas de fecha y hora

Valores de fecha y hora en los metadatos del usuario se especifican en el formato ISO8601 "yyyy-MM-dd'T'HH:mm:ssZ" y se conserven por ECS en ese formato. Consultas demetadatos también utilizan este formato. Sin embargo, ECS persiste valores de fecha yhora para los metadatos del sistema comotiempo de epoch, el número de milisegundosdesde el comienzo de 1970.

Cuando una consulta arroja resultados, devuelve el formato de fecha y hora que seconserven por ECS. A continuación, se muestra un ejemplo de los dos formatos.

Ejemplo de encabezado de carga de metadatos del usuario:

-H x-amz-meta-Foo:2015-11-30T12:00:00Z

Usuario y el formato de expresión de consulta de sistema:

?query=CreateTime>2015-01-01:00:00:00Z and x-amz-meta-Foo==2015-11-30T12:00:00Z

Fragmento de resultados de consulta - metadatos del sistema

<key>createtime</key> <value>1449081777620</value>

Fragmento de resultados de consulta - metadatos del usuario

<key>x-amz-meta-Foo</key> <value>2015-11-30T12:00:00Z</value>

Ejemplos de metadatos

El siguiente ejemplo utiliza la API de S3 para buscar una coincidencia objetodeterminado valor de metadatos de tamaño y el usuario en una categoría.

s3curl.pl --id myuser-- "http://{host}:9020.mybucket?query=Size>1000%20and%20x-amz-meta-STR>=String4

El resultado muestra tres objetos que coinciden con la búsqueda.

<BucketQueryResult xmlns:ns2="http://s3.amazonaws.com/doc/2006-03-01/">

<Name>mybucket</Name><Marker/><NextMarker>NO MORE PAGES</NextMarker><MaxKeys>0</MaxKeys><IsTruncated>false</IsTruncated><ObjectMatches>

<object><objectName>file4</objectName>

<objectId>09998027b1b7fbb21f50e13fabb481a237ba2f60f352d437c8da3c7c1c8d

Extensión de la búsqueda de metadatos

34 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Nota

Algunos clientes REST pueden requerir que codifica "espacios" con la url código % 20

Page 35: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

7589</objectId> <queryMds> <type>SYSMD</type> <mdMap> <entry> <key>createtime</key> <value>1449081778025</value> </entry> <entry> <key>size</key> <value>1024</value> </entry> <entry> <key>mtime</key> <value>1449081778025</value> </entry> </mdMap> </queryMds> <queryMds> <type>USERMD</type> <mdMap> <entry> <key>x-amz-meta-INT</key> <value>407</value> </entry> <entry> <key>x-amz-meta-STR</key> <value>String4</value> </entry> </mdMap> </queryMds> <indexKey/> </object> <object> <objectName>file5</objectName> <objectId>1ad87d86ef558ca0620a26855662da1030f7d9ff1d4bbc7c2ffdfe29943b9150</objectId> <queryMds> <type>SYSMD</type> <mdMap> <entry> <key>createtime</key> <value>1449081778396</value> </entry> <entry> <key>size</key> <value>1024</value> </entry> <entry> <key>mtime</key> <value>1449081778396</value> </entry> </mdMap> </queryMds> <queryMds> <type>USERMD</type> <mdMap> <entry> <key>x-amz-meta-INT</key> <value>507</value> </entry> <entry> <key>x-amz-meta-STR</key> <value>Sring5</value> </entry> </mdMap> </queryMds>

Extensión de la búsqueda de metadatos

Ejemplos de metadatos 35

Page 36: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

<indexKey/> </object> </ObjectMatches></BucketQueryResult>

Atributos opcionales y metadatos del sistemas ECSLos metadatos del sistema se asocian automáticamente con cada objeto almacenado enel área de almacenamiento de objetos. Algunos metadatos del sistema siempre secompletan y pueden utilizarse como claves de índice; otros metadatos no siempre secompletan, pero, cuando están presentes, se pueden devolver con los resultados deconsulta de búsqueda de metadatos.

Metadatos del sistemaLos metadatos del sistema que se enumeran en la siguiente tabla se pueden usar comoclaves para los índices de búsqueda de metadatos.

Nombre (alias) Tipo Descripción

Nombre del objeto cadena Nombre del objeto.

Propietario cadena Identidad del propietario del objeto.

Tamaño integer Tamaño del objeto.

CreateTime datetime Hora en la que se creó el objeto.

LastModified datetime Fecha y hora en el cual se modificó por última vez elobjeto.

Nota

Modificación compatible con extensiones deactualización de rango de bytes S3 de ECS, y no conla API de S3 pura.

Atributos de metadatos opcionalesLos atributos de metadatos del sistema opcionales pueden completarse o no para unobjeto, pero se pueden devolver de manera opcional junto con los resultados deconsulta de búsqueda. En la siguiente tabla, se enumeran los atributos de metadatos delsistema opcionales.

Nombre (alias) Tipo

ContentType cadena

Vencimiento datetime

ContentEncoding cadena

Expira datetime

Retención integer

Extensión de la búsqueda de metadatos

36 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 37: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 5

Crear claves secretas

l Crear una clave secreta......................................................................................... 38l Creación de una clave para un usuario de objetos.................................................38l Cree una seña secreta S3: autoservicio................................................................. 39

Crear claves secretas 37

Page 38: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Crear una clave secretaLos usuarios de los servicios de objetos de ECS necesitan una seña secreta paraautenticarse en un servicio.

Las claves secretas pueden crearse y ponerse a la disposición del usuario de objetos delas siguientes maneras:

l El administrador crea una clave y la distribuye al usuario de objetos (Creación de unaclave para un usuario de objetos en la página 38).

l El usuario de objetos que es un usuario de dominio crea una nueva clave utilizandola API de autoservicio que proporciona API de REST de administración de ECS (Creeuna seña secreta S3: autoservicio en la página 39).

Creación de una clave para un usuario de objetosLos usuarios de administración de ECS pueden crear una seña secreta para un usuario deobjetos.

l Generación de una seña secreta del portal de ECS en la página 38

l Creación de una seña secreta S3 usando API de REST de administración de ECS en lapágina 38

Generación de una seña secreta del portal de ECSPuede generar una seña secreta en el portal de ECS.

Antes de comenzar

l Debe ser un administrador del sistema o un administrador de espacio de nombres deECS

Si es un administrador del sistema, puede crear una seña secreta para un usuario deobjetos que pertenezca a cualquier espacio de nombres. Si es un administrador deespacio de nombres, puede crear una seña secreta para un usuario de objetos quepertenezca a su espacio de nombres.

Procedimiento

1. En el portal ECS, seleccione la página Manage > Users.

2. En la tabla de usuarios de objetos, seleccione Edit para el usuario al que deseaasignar una seña secreta.

3. Para S3, seleccione Generate & Add Password.

4. Copie la clave generada y envíela por correo electrónico al usuario de objetos.

Creación de una seña secreta S3 usando API de REST de administración de ECSAPI de REST de administración de ECS permite a un usuario de administración crear unaseña secreta para un usuario de objeto S3.

Los API se realizan de la siguiente manera:

Crear claves secretas

38 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 39: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Ruta de API Descripción

/object/user-secret-keys/{uid}

API para permitir la asignación de claves secretas a usuarios de objetosy permitir la administración de claves secretas.

El Administrador de espacio de nombres puede crear claves para losusuarios en su espacio de nombres. Administrador del sistema puedeasignar claves a los usuarios en cualquier espacio de nombres.

Puede encontrar más información acerca de la llamada a la API en la referencia de APIREST de administración de ECS.

Cree una seña secreta S3: autoservicioAPI de REST de administración de ECS ofrece permite que los usuarios de dominioautenticados soliciten una seña secreta para tener acceso al área de almacenamiento deobjetos.

La referencia de REST API de administración de ECS se puede utilizar cuando desee crearun cliente personalizado para ejecutar ciertas operaciones de administración de ECS.Para operaciones simples, los usuarios de dominio pueden utilizar curl o un cliente HTTPbasado en navegador para ejecutar la API para crear una seña secreta.

Cuando un usuario ejecuta la API object/secret-keys, ECS crea automáticamenteun usuario de objetos y asigna una seña secreta.

Ruta de API Descripción

/object/secret-keys

La API permite que los usuarios del cliente S3 creen una nueva señasecreta que les permita acceder a los objetos y depósitos dentro de suespacio de nombres.

Esto se conoce también como API de autoservicio.

La carga para /object/secret-keys puede incluir un tiempo de vencimiento declave existente opcional.

<secret_key_create_param> <existing_key_expiry_time_mins></existing_key_expiry_time_mins> </secret_key_create_param>

Si va a crear una seña secreta por primera vez, puede omitir el parámetroexisting_key_expiry_time_mins, y una llamada sería:

POST object/secret-keys

Request body <?xml version="1.0" encoding="UTF-8"?> <secret_key_create_param/>

Response <user_secret_key> <secret_key>...</secret_key> <key_timestamp>...</key_timestamp> <link rel="..." href="..." /> </user_secret_key>

Crear claves secretas

Cree una seña secreta S3: autoservicio 39

Page 40: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Trabajo con claves de autoservicioHay una serie de operaciones que es posible que desee ejecutar con claves secretas deautoservicio utilizando Referencia de API de REST de administración de ECS.

Los ejemplos proporcionados utilizan la herramienta curl para demostrar las siguientesactividades.

l Inicio de sesión como un usuario de dominio en la página 40

l Generación de la primera clave en la página 40

l Generación de una segunda clave en la página 40

l Selección de claves en la página 41

l Eliminación de todas las claves secretas en la página 41

Inicio de sesión como un usuario de dominioPuede iniciar sesión como un usuario de dominio y obtener un token de autenticaciónque se puede utilizar para autenticar solicitudes posteriores.

curl -ik -u [email protected]:<Password> https://10.241.48.31:4443/loginHTTP/1.1 200 OKDate: Mon, 27 Apr 2015 17:29:38 GMTContent-Type: application/xmlContent-Length: 107Connection: keep-aliveX-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><loggedIn><user>[email protected]</user></loggedIn>

Generación de la primera clavePuede generar una seña secreta.

curl -ks -H "X-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=" -H "Content-Type: application/json" -X POST -d "{}" https://10.241.48.31:4443/object/secret-keys | xmllint --format -

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user_secret_key> <link rel="self" href="/object/user-secret-keys/[email protected]"/> <secret_key>7hXZ9/EHTVvmFuYly/z3gHpihXtEUX/VZxdxDDBd</secret_key> <key_expiry_timestamp/> <key_timestamp>2015-04-27 17:39:13.813</key_timestamp></user_secret_key>

Generación de una segunda clavePuede generar una segunda seña secreta y establecer el vencimiento de la primera clave.

curl -ks -H "X-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=" -H "Content-Type: application/json" -X POST -d

Crear claves secretas

40 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 41: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

"{\"existing_key_expiry_time_mins\": \"10\"}" https://10.241.48.31:4443/object/secret-keys | xmllint --format -

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user_secret_key> <link rel="self" href="/object/user-secret-keys/[email protected]"/> <secret_key>l3fPCuFCG/bxoOXCPZoYuPwhXrSTwU0f1kFDaRUr</secret_key> <key_expiry_timestamp/> <key_timestamp>2015-04-27 17:40:12.506</key_timestamp></user_secret_key>

Selección de clavesPuede comprobar las claves que se le asignaron. En este caso hay dos claves y la primeratiene una hora/fecha de vencimiento.

curl -ks -H "X-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=" https://10.241.48.31:4443/object/secret-keys | xmllint --format -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user_secret_keys> <secret_key_1>7hXZ9/EHTVvmFuYly/z3gHpihXtEUX/VZxdxDDBd</secret_key_1> <secret_key_2>l3fPCuFCG/bxoOXCPZoYuPwhXrSTwU0f1kFDaRUr</secret_key_2> <key_expiry_timestamp_1>2015-04-27 17:50:12.369</key_expiry_timestamp_1> <key_expiry_timestamp_2/> <key_timestamp_1>2015-04-27 17:39:13.813</key_timestamp_1> <key_timestamp_2>2015-04-27 17:40:12.506</key_timestamp_2> <link rel="self" href="/object/secret-keys"/></user_secret_keys>

Eliminación de todas las claves secretasSi necesita borrar sus claves secretas antes de regenerarlas. Puede utilizar lo siguiente.

curl -ks -H "X-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=" -H "Content-Type: application/json" -X POST -d "{}" https://10.241.48.31:4443/object/secret-keys/deactivate

Crear claves secretas

Trabajo con claves de autoservicio 41

Page 42: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Crear claves secretas

42 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 43: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 6

Autenticación con el servició de S3

l Autenticación con el servició de S3....................................................................... 44

Autenticación con el servició de S3 43

Page 44: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Autenticación con el servició de S3La autenticación con la API de Amazon S3 se describe en la documentación de AmazonS3 referida a continuación. Este tema no identifica ningún aspecto específico de delproceso de autenticación.

Amazon S3 utiliza un encabezado de autorización que debe estar presente en todas lassolicitudes para identificar el usuario y proporcionar una firma para la solicitud. Cuandose llama a Amazon el encabezado tiene el siguiente formato:

Authorization: AWS <AWSAccessKeyId>:<Signature>

En ECS, AWSAccessKeyId mapea al ID de usuario (UID) de ECS. La ID de una clave deacceso de AWS tiene 20 caracteres (para algunos clientes de S3, como el navegador deS3, es necesario verificar esto), pero el servicio de datos de no tiene esta limitación.

La firma se calcula a partir de los elementos de la solicitud y la clave secreta del usuariocomo se describe en la documentación de Amazon S3:

l http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html

Se aplican las siguientes notas:

l En el servicio de datos de objetos de , se puede configurar el UID (con la API de o laIU de ) con 2 claves secretas. El servicio de datos de intentará usar la primera clavesecreta y, si la firma calculada no coincide, intentará utilizar la segunda clavesecreta. Si la segunda clave falla, se rechazará la solicitud. Cuando los usuariosagregan o cambian la clave secreta, antes de usarla, deben esperar 2 minutos paraque se puedan restaurar todos los nodos del servicio de datos con la nueva clavesecreta.

l En el servicio de datos de , el espacio de nombres también se considera en el cálculode firma de HMAC.

Autenticación con el servició de S3

44 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 45: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 7

Acceso de cliente Java

l Uso del SDK para obtener acceso al servicio de S3................................................46

Acceso de cliente Java 45

Page 46: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Uso del SDK para obtener acceso al servicio de S3Al desarrollar aplicaciones que se comunican con el servicio de S3 de ECS, hay variosSDK que admitirán la actividad de su desarrollo.

La comunidad de EMC proporciona información sobre los diversos clientes que estándisponibles y que proporcionan pautas sobre su uso: Recursos de desarrollo de EMCViPR.

Los siguientes temas describen el uso del SDK de Amazon S3 y el uso del SDK Java deEMC ECS.

l Uso del Java SDK de Amazon en la página 46l Cliente SDK Java para ECS en la página 48

Nota

Si desea utilizar las extensiones de la API de ECS (consulte ), en el Java SDK de EMC ECSencontrará la compatibilidad con estas extensiones. Si no necesita compatibilidad conlas extensiones de ECS, o si tiene aplicaciones existentes que las utilizan, puede usar elSDK Java de Amazon.

Uso del Java SDK de AmazonPuede acceder al almacenamiento de objetos de ECS con el SDK Java S3.

De modo predeterminado, el objeto del cliente AmazonS3Client se cifra para trabajardirectamente desde amazon.com. En esta sección, se muestra cómo configurarAmazonS3Client para que trabaje desde ECS.

Para crear una instancia de un objeto de AmazonS3Client, debe pasarle credenciales.Esto se logra al crear un objeto de AWSCredentials y al pasarle la clave de acceso de AWS(su nombre de usuario de ECS) y la seña secreta generada para ECS.

El siguiente fragmento de código muestra cómo instalar esto.

AmazonS3Client client = new AmazonS3Client(new BasicAWSCredentials(uid, secret));

De modo predeterminado, el cliente de Amazon intentará comunicarse con AmazonWebServices. Para reemplazar este comportamiento y contactar con ECS, necesitaconfigurar un punto terminal específico.

Puede configurar el terminal con el método de setEndpoint. El protocolo especificado enel terminal determina si el cliente debe ser dirigido al puerto HTTP (9020) o al puertoHTTPS (9021).

Nota

Si desea utilizar el puerto HTTPS, se debe configurar el JDK de su aplicación para quevalide el certificado de ECS correctamente; de lo contrario, el cliente presentará erroresde verificación de SSL y no podrá conectarse.

En el siguiente fragmento de código, se utiliza el cliente para acceder a ECS medianteHTTP:

AmazonS3Client client = new AmazonS3Client(new BasicAWSCredentials(uid, secret));client.setEndpoint("http://ecs1.emc.com:9020");

Acceso de cliente Java

46 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 47: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Al utilizar el direccionamiento del estilo de la ruta ( ecs1.emc.com/mybucket), debeconfigurar la opción setPathStyleAccess, como se muestra a continuación:

S3ClientOptions options = new S3ClientOptions();options.setPathStyleAccess(true);

AmazonS3Client client = new AmazonS3Client(new BasicAWSCredentials(uid, secret));client.setEndpoint("http://ecs1.emc.com:9020");client.setS3ClientOptions(options);

El siguiente código muestra cómo enumerar objetos en una categoría.

ObjectListing objects = client.listObjects("mybucket");for (S3ObjectSummary summary : objects.getObjectSummaries()) { System.out.println(summary.getKey()+ " "+summary.getOwner());}

La operación CreateBucket difiere de otras operaciones en que espera que se especifiqueuna región. En función de S3, esto indicaría el centro de datos en el que se debe crear lacategoría. Sin embargo, ECS no admite regiones. Por este motivo, cuando se solicita laoperación CreateBucket, especificamos la región estándar, que evita que el cliente deAWS descargue el archivo de configuración de la región de Amazon desde AmazonCloudFront.

client.createBucket("mybucket", "Standard");

A continuación, se proporciona el ejemplo completo para comunicarse con el servicio dedatos de S3 de ECS, para crear un depósito y manipular un objeto:

public class Test { public static String uid = "root"; public static String secret = "KHBkaH0Xd7YKF43ZPFbWMBT9OP0vIcFAMkD/9dwj"; public static String viprDataNode = "http://ecs.yourco.com:9020";

public static String bucketName = "myBucket"; public static File objectFile = new File("/photos/cat1.jpg");

public static void main(String[] args) throws Exception {

AmazonS3Client client = new AmazonS3Client(new BasicAWSCredentials(uid, secret));

S3ClientOptions options = new S3ClientOptions(); options.setPathStyleAccess(true);

AmazonS3Client client = new AmazonS3Client(credentials); client.setEndpoint(viprDataNode); client.setS3ClientOptions(options);

client.createBucket(bucketName, "Standard"); listObjects(client);

client.putObject(bucketName, objectFile.getName(), objectFile); listObjects(client);

client.copyObject(bucketName,objectFile.getName(),bucketName, "copy-" + objectFile.getName()); listObjects(client); }

public static void listObjects(AmazonS3Client client) {

Acceso de cliente Java

Uso del Java SDK de Amazon 47

Page 48: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

ObjectListing objects = client.listObjects(bucketName); for (S3ObjectSummary summary : objects.getObjectSummaries()) { System.out.println(summary.getKey()+ " "+summary.getOwner()); } }}

Cliente SDK Java para ECSEl SDK Java de ECS se basa en el SDK Java de Amazon S3 y admite las extensiones de laAPI de ECS.

A continuación, se muestra un ejemplo del uso de ViPRS3client.

package com.emc.ecs.sample;

import com.amazonaws.util.StringInputStream;import com.emc.vipr.services.s3.ViPRS3Client;

public class BucketCreate {

private ViPRS3Client s3;

public BucketCreate() {

URI endpoint = new URI(“http://ecs.yourco.com:9020”); String accessKey = “[email protected]”; String secretKey = “pcQQ20rDI2DHZOIWNkAug3wK4XJP9sQnZqbQJev3”; BasicAWSCredentials creds = new BasicAWSCredentials(accessKey, secretKey); ViPRS3Client client = new ViPRS3Client(endpoint, creds);

}

public static void main(String[] args) throws Exception { BucketCreate instance = new BucketCreate(); instance.runSample(); } public void runSample() { String bucketName="mybucket"; String key1 = "test1.txt"; String content = "Hello World!"; try { s3.createBucket(bucketName); s3.putObject(bucketName, key1, new StringInputStream(content), null); } catch (Exception e) { } }}

Acceso de cliente Java

48 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 49: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

PARTE 2

OpenStack Swift

Capítulo 8, "Introducción a la compatibilidad con OpenStack Swift en ECS"

Capítulo 9, "Funciones compatibles con Swift"

Capítulo 10, "Extensiones de Swift"

Capítulo 11, "Autenticación"

Capítulo 12, "Autorización"

OpenStack Swift 49

Page 50: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

OpenStack Swift

50 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 51: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 8

Introducción a la compatibilidad con OpenStackSwift en ECS

l Soporte de API de OpenStack Swift en ECS............................................................52

Introducción a la compatibilidad con OpenStack Swift en ECS 51

Page 52: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Soporte de API de OpenStack Swift en ECSECSincluye la compatibilidad con la API de OpenStack Swift. Este artículo describe lasoperaciones compatibles y los mecanismos de autorización y autenticación.

El servicio OpenStack Swift está disponible en los siguientes puertos.

Protocolo Puertos

HTTP 9024

HTTPS 9025

Las siguientes secciones describen los métodos compatibles, las extensiones de ECS y elmecanismo de autenticación:

l OpenStack Swift supported operations en la página 54

l Extensiones de API de Swift en la página 58

l Autenticación de la versión 1 de OpenStack en la página 64

l Autenticación de la versión 2 de OpenStack en la página 65

l Autorización de contenedores en la página 70

Aquí se pueden encontrar ejemplos que muestran el uso de la API de OpenStack Swift:

l Ejemplos de la API de OpenStack

Introducción a la compatibilidad con OpenStack Swift en ECS

52 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 53: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 9

Funciones compatibles con Swift

l OpenStack Swift supported operations................................................................. 54

Funciones compatibles con Swift 53

Page 54: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

OpenStack Swift supported operationsThe following sections list the OpenStack REST API requests that are supported by ECS.

l Supported OpenStack Swift calls en la página 54

l Unsupported OpenStack Swift calls en la página 54

This information is taken from the Object Storage API V1 section of the OpenStack APIReference documentation.

Supported OpenStack Swift callsThe following OpenStack Swift REST API calls are supported in ECS.

Tabla 5 OpenStack Swift supported calls

Method Path Description

GET v1/{account} Retrieve a list of existing storage containers ordered bynames.

GET v1/{account}/{container} Retrieve a list of objects stored in the container.

PUT v1/{account}/{container} Create a container.

DELETE v1/{account}/{container} Delete an empty container.

POST v1/{account}/{container} Create or update the arbitrary container metadata byassociating custom metadata headers with thecontainer level URI. These headers must take theformat X-Container-Meta-*.

HEAD v1/{account}/{container} Retrieve the container metadata. Currently does notinclude object count and bytes used.User requires administrator privileges.

GET v1/{account}/{container}/{object}

Retrieve the object's data.

PUT v1/{account}/{container}/{object}

Write, or overwrite, an object's content and metadata.Used to copy existing object to another object using X-Copy-From header to designate source.

DELETE v1/{account}/{container}/{object}

Remove an object from the storage systempermanently. In combination with the COPY commandyou can use COPY then DELETE to effectively move anobject.

HEAD v1/{account}/{container}/{object}

Retrieve object metadata and other standard HTTPheaders.

POST v1/{account}/{container}/{object}

Set and overwrite arbitrary object metadata. Thesemetadata must take the format X-Object-Meta-*. X-Delete-At or X-Delete-After for expiring objects can alsobe assigned by this operation. But other headers suchas Content-Type cannot be changed by this operation.

Unsupported OpenStack Swift callsThe following OpenStack Swift REST API calls are not supported in ECS.

Funciones compatibles con Swift

54 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 55: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 6 OpenStack Swift unsupported calls

Method Path Description

HEAD v1/{account} Retrieve the account metadata, for example, thenumber of containers, the total bytes stored inOpenStackObject Storage for the account/tenant.

POST v1/{account} Create or update an account metadata by associatingcustom metadata headers with the account level URI.These headers must take the format X-Account-Meta-*.

COPY v1/{account}/{container}/{object}

Copy is supported using PUT v1/{account}/{container}/{object} with X-Copy-From header.

Funciones compatibles con Swift

OpenStack Swift supported operations 55

Page 56: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Funciones compatibles con Swift

56 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 57: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 10

Extensiones de Swift

l Extensiones de API de Swift...................................................................................58l Actualización de un rango de bytes dentro de un objeto........................................58l Sobrescritura de la parte de un objeto...................................................................59l Adición de datos a un objeto.................................................................................60l Lectura de múltiples rangos de bytes dentro de un objeto..................................... 61

Extensiones de Swift 57

Page 58: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Extensiones de API de Swift

Varias extensiones para las API de objetos son compatibles. Las extensiones y la API quelas admiten aparecen en la siguiente tabla.

Tabla 7 Extensiones de API de Swift

Característica Notas

PUT objeto (rango,actualizar)

Utiliza el encabezado del rango para especificar el rango del objetoque se actualizará.

Actualización de un rango de bytes dentro de un objeto en lapágina 22

PUT objeto (rango,sobrescribir)

Utiliza el encabezado del rango para especificar el rango del objetoque se sobrescribirá.

Sobrescritura de la parte de un objeto en la página 24

PUT objeto (rango, agregar) Utiliza el encabezado del rango para especificar el rango del objetoagregado.

Adición de datos a un objeto en la página 24

GET objeto (rango, leer) Utiliza el encabezado del rango para especificar el rango de bytesdel objeto que se leerá.

Lectura de múltiples rangos de bytes dentro de un objeto en lapágina 25

Actualización de un rango de bytes dentro de un objetoA continuación, se muestra un ejemplo de la utilización de extensiones de la API de paraactualizar un rango de bytes de un objeto.

Primero realice una solicitud GET en el objeto denominado object1, ubicado enbucket1 para revisar el objeto. object1 tiene el valor The quick brown foxjumps over the lazy dog.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:04:40 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:9qxKiHt2H7upUDPF86dvGp8VdvI=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:04:40 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:04:28 GMTETag: 6Content-Type: application/jsonContent-Length: 43

Extensiones de Swift

58 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 59: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

The quick brown fox jumps over the lazy dog.

Ahora debe actualizar un rango de bytes específico dentro de este objeto. Para ello, elencabezado del rango en la solicitud de datos de objetos debe incluir lascompensaciones de inicio y de finalización del objeto que desea actualizar. El formato esel siguiente: Range: bytes=<startOffset>-<endOffset>En el siguiente ejemplo, la solicitud PUT incluye el encabezado del rango con el valorbytes=10-14, que indica que los bytes 10,11,12,13,14 serán reemplazados por elvalor enviado en la solicitud. Aquí, se envía el nuevo valor de green.

PUT /bucket1/object1 HTTP/1.1Content-Length: 5Range: bytes=10-14ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:15:16 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:xHJcAYAEQansKLaF+/4PdLBHyaM=Accept-Encoding: gzip, deflate, compress green HTTP/1.1 204 No ContentETag: 10x-amz-id-2: object1x-amz-request-id: 027f037c-29ea-4670-8670-de82d0e9f52aContent-Length: 0Date: Mon, 17 Jun 2013 20:15:16 GMT

Al leer el objeto nuevamente, el valor nuevo será The quick green fox jumpsover the lazy dog. (La palabra brown se reemplazó con green). Ha actualizadoun rango de bytes específico dentro de este objeto.

GET /bucket1/object1 HTTP/1.1Cookie: JSESSIONID=wdit99359t8rnvipinz4tbtuACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:16:00 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:OGVN4z8NV5vnSAilQTdpv/fcQzU=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:16:00 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:15:16 GMTETag: 10Content-Type: application/jsonContent-Length: 43 The quick green fox jumps over the lazy dog.

Sobrescritura de la parte de un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de parasobrescribir la parte de un objeto.

Puede sobrescribir la parte de un objeto proporcionando solo la compensación de inicioen la solicitud de datos. Los datos en la solicitud se escribirán al inicio de la

Extensiones de Swift

Sobrescritura de la parte de un objeto 59

Page 60: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

compensación proporcionada. El formato es el siguiente: Range:<startingOffset>-Por ejemplo, para escribir el inicio de datos brown cat en la compensación 10, Ud.debería emitir la siguiente solicitud PUT:

PUT /bucket1/object1 HTTP/1.1Content-Length: 9Range: bytes=10-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:51:41 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:uwPjDAgmazCP5lu77Zvbo+CiT4Q=Accept-Encoding: gzip, deflate, compress brown cat HTTP/1.1 204 No ContentETag: 25x-amz-id-2: object1x-amz-request-id: 65be45c2-0ee8-448a-a5a0-fff82573aa3bContent-Length: 0Date: Mon, 17 Jun 2013 20:51:41 GMT

Al recuperar un objeto, puede ver el valor final de The quick brown cat jumpsover the lazy dog and cat. (green fox se reemplazó por brown cat). Hasobrescrito una parte de los datos en este objeto en la compensación de inicioproporcionada.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTETag: 25Content-Type: application/jsonContent-Length: 51 The quick brown cat jumps over the lazy dog and cat.

Adición de datos a un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de paraagregar datos a un objeto.

Puede haber casos en los que necesite agregar un objeto, pero la determinación de lacompensación exacta de bytes no es eficiente o útil. Para este escenario, proporciona lacapacidad de agregar atómicamente datos al objeto sin especificar una compensación(la compensación correcta se devuelve en la respuesta).

Se puede utilizar un encabezado de rango con el valor especial bytes=-1- para agregardatos a un objeto. De esta manera, el objeto se puede extender sin conocer el tamañodel objeto existente.

El formato es el siguiente: Range: bytes=-1-

Extensiones de Swift

60 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 61: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Una solicitud de ejemplo que muestra la adición a un objeto existente con un valor derango de bytes=-1-. Aquí el valor and cat se envía en la solicitud.

PUT /bucket1/object1 HTTP/1.1Content-Length: 8Range: bytes=-1-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:01 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/sqOFL65riEBSWLg6t8hL0DFW4c=Accept-Encoding: gzip, deflate, compress and cat HTTP/1.1 204 No ContentETag: 24x-amz-id-2: object1x-amz-request-id: 087ac237-6ff5-43e3-b587-0c8fe5c08732Content-Length: 0Date: Mon, 17 Jun 2013 20:46:01 GMT

Cuando se recupera el objeto nuevamente, puede ver el valor total The quick greenfox jumps over the lazy dog and cat.. Ha agregado datos a este objeto.

GET /bucket1/object1 HTTP/1.1ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:56 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:D8FSE8JoLl0MTQcFmd4nG1gMDTg=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:46:56 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:46:01 GMTETag: 24Content-Type: application/jsonContent-Length: 51 The quick green fox jumps over the lazy dog and cat.

Lectura de múltiples rangos de bytes dentro de un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de para leermúltiples rangos de byte dentro de un objeto.

Para leer dos rangos específicos de bytes en el objeto denominado object1, debeemitir la siguiente solicitud GET para Range: bytes==4-8,41-44. La respuesta delectura será para las palabras quick y lazy.

Nota

La API de Amazon S3 admite solo un rango cuando se utiliza el del encabezado HTTPpara la lectura; admite múltiples rangos de bytes.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcRange: bytes==4-8,41-44

Extensiones de Swift

Lectura de múltiples rangos de bytes dentro de un objeto 61

Page 62: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Content-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 206 Partial ContentDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: multipart/byteranges;boundary=bound04acf7f0ae3cccLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTContent-Length: 230 --bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 4-8/50quick--bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 41-44/50lazy--bound04acf7f0ae3ccc--

Extensiones de Swift

62 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 63: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 11

Autenticación

l Autenticación de la versión 1 de OpenStack ......................................................... 64l Autenticación de la versión 2 de OpenStack..........................................................65

Autenticación 63

Page 64: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Autenticación de la versión 1 de OpenStackPuede autenticar con el servicio de ECS OpenStack Swift mediante V1 del protocolo deautenticación de este procedimiento.

Procedimiento

1. Adquiera un UID y una contraseña desde ECS. El UID será un nombre de ActiveDirectory o de LDAP. Llame a la siguiente API REST de ECS para generar unacontraseña.

ECS mediante la API de OpenStack Swift, siga estos pasos:

Solicitud:

PUT /object/user-password/[email protected] <user_password_create> <password>myPassword</password> <namespace>EMC_NAMESPACE</namespace> </user_password_create>

Respuesta:

HTTP 200

2. Llame a la API de REST de autenticación de OpenStack que se muestra acontinuación. Utilice el puerto 9024 para HTTP, o el puerto 9025 para HTTPS.

Solicitud:

GET /auth/v1.0 X-Auth-User: [email protected] X-Auth-Key: myPassword

Respuesta:

HTTP/1.1 204 No Content Date: Mon, 12 Nov 2010 15:32:21 GMT Server: Apache

X-Storage-Url: https://{hostname}/v1/account X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb Content-Length: 0

Resultados

Si el UID y la contraseña están validados por ECS, el almacenamiento URL y el token sedevuelven en el encabezado de la respuesta. Otras solicitudes son autenticadasmediante la inclusión de este token. El almacenamiento URL proporciona el nombre delhost y la dirección del recurso. Puede acceder a los contenedores y a los objetosproporcionando el siguiente encabezado X-Storage- Url:

X-Storage-Url: https://{hostname}/v1/{account}/{container}/{object}

El token generado vence 24 horas después de la creación. Si repite la solicitud deautenticación dentro del período de 24 horas con el mismo UID y contraseña, OpenStack

Autenticación

64 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 65: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

generará el mismo token. Una vez que finaliza el período de 24 horas, OpenStackdevolverá un nuevo token.

En el siguiente ejemplo de una autenticación simple, la primera llamada de RESTdevuelve X-Auth-Token. La segunda llamada de REST utiliza ese X-Auth-Token paraejecutar una solicitud GET en una cuenta.

$ curl -i -H "X-Storage-User: [email protected]" -H "X-Storage-Pass: 1fO9X3xyrVhfcokqy3U1UyTY029gha5T+k+vjLqS" http://ecs.yourco.com:9024/auth/v1.0

HTTP/1.1 204 No Content X-Storage-Url: http://ecs.yourco.com:9024/v1/s3 X-Auth-Token: 8cf4a4e943f94711aad1c91a08e98435 Server: Jetty(7.6.4.v20120524)

$ curl -v -X GET -s -H "X-Auth-Token: 8cf4a4e943f94711aad1c91a08e98435" http://ecs.yourco.com:9024/v1/s3

* About to connect() to ecs.yourco.com port 9024 (#0) * Trying 203.0.113.10... * Adding handle: conn: 0x7f9218808c00 * Adding handle: send: 0 * Adding handle: recv: 0 * Curl_addHandleToPipeline: length: 1 * - Conn 0 (0x7f9218808c00) send_pipe: 1, recv_pipe: 0 * Connected to ecs.yourco.com (203.0.113.10) port 9024 (#0)

> GET /v1/s3 HTTP/1.1 > User-Agent: curl/7.31.0 > Host: ecs.yourco.com:9024 > Accept: */* > X-Auth-Token: 8cf4a4e943f94711aad1c91a08e98435 > < HTTP/1.1 204 No Content < Date: Mon, 16 Sep 2013 19:31:45 GMT < Content-Type: text/plain * Server Jetty(7.6.4.v20120524) is not blacklisted < Server: Jetty(7.6.4.v20120524) <

* Connection #0 to host ecs.yourco.com left intact

Autenticación de la versión 2 de OpenStackECS incluye compatibilidad limitada con la autenticación de la versión de 2 deOpenStack (clave).

Antes de comenzar

La versión 2 de OpenStack presenta tokens no incluidos en el alcance. Esto se puedeutilizar para consultar la información del grupo de usuarios. Un token no incluido en elalcance junto con la información de usuario se puede utilizar para consultar sobre untoken al alcance. Se puede utilizar un token incluido en el alcance y terminal de serviciospara autenticar con ECS como se describe en la sección anterior que describe laautenticación de la versión 1.

Autenticación

Autenticación de la versión 2 de OpenStack 65

Page 66: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Los dos artículos enumerados a continuación proporcionan información adicionalimportante.

l Flujo de trabajo de clave y alcance de token de OpenStack

l Autenticar para la API de administrador

Procedimiento

1. Recupere un token no incluido en el alcance.

curl -v -X POST -H 'ACCEPT: application/json' -H "Content-Type: application/json" -d '{"auth": {"passwordCredentials" : {"username" : "swift_user", "password" : "123"}}}' http://203.0.113.10:9024/v2.0/tokens

La respuesta se ve como la siguiente. El token no incluido en el alcance estáprecedido por el ID.

{"access": {"token": {"id":"d668b72a011c4edf960324ab2e87438b","expires":"1376633127950"l},"user": {"name": "sysadmin", "roles":[ ], "role_links":[ ] },"serviceCatalog":[ ] }} , }

2. Recupere información de grupos de usuarios asociada al token no incluido en elalcance.

curl -v http://203.0.113.10:9024/v2.0/tenants -H 'X-Auth-Token: d668b72a011c4edf960324ab2e87438b'

La respuesta se ve como la siguiente.

{"tenants_links":[], "tenants":[{"description":"s3","enabled":true, "name": "s3"}]}

3. Recupere el token incluido en el alcance junto con storageUrl.

curl -v -X POST -H 'ACCEPT: application/json' -H "Content-Type: application/json" -d '{"auth": {"tenantName" : "s3", "token":{"id" : d668b72a011c4edf960324ab2e87438b"}}}' http://203.0.113.10:9024/v2.0/tokens

A continuación, se muestra un ejemplo de respuesta. El token incluido en el alcanceestá precedido por el ID.

{"access":{"token":{"id":"baf0709e30ed4b138c5db6767ba76a4e","expires":"1376633255485","tenant":{"description":"s3","enabled":true,"name":"s3"}},"user":{"name":"swift_admin","roles":[{"name":"member"},{"name":"admin"}],"role_links":[]}, "serviceCatalog":[{"type":"object-store",

Autenticación

66 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 67: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

"name":"Swift","endpoints_links":[],"endpoint":[{"internalURL": "http://203.0.113.10:9024/v1/s3","publicURL":"http://203.0.113.10:9024/v1/s3"}]}]}}

4. Utilice el token incluido en el alcance y la URL del terminal de servicios para laautenticación rápida. Este paso es igual que en la versión 1 de OpenStack.

curl -v -H "X-Auth-Token: baf0709e30ed4b138c5db6767ba76a4e" http://203.0.113.10:9024/v1/s3/{container}/{object}

Autenticación

Autenticación de la versión 2 de OpenStack 67

Page 68: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Autenticación

68 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 69: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 12

Autorización

l Autorización de contenedores............................................................................... 70

Autorización 69

Page 70: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Autorización de contenedoresLa autorización de OpenStack Swift se enfoca solamente en contenedores.

Actualmente, Swift admite dos tipos de autorización:

l Autorización de estilo de referencia

l Autorización de estilo de grupo

ECS 2.0 admite solo la autorización basada en grupos.

Los usuarios administradores pueden realizar todas las operaciones dentro de la cuenta.Los usuarios no administradores solo pueden realizar operaciones por contenedor,basadas en las listas de control de acceso X-Container-Read y X-Container-Write. Lassiguientes operaciones se pueden otorgar a los usuarios no administradores:

El administrador asigna el acceso de lectura al contenedor

curl -XPUT -v -H 'X-Container-Read: {GROUP LIST}' -H 'X-Auth-Token: {TOKEN}' http://127.0.0.1:8080/v1/AUTH_bourne/{container1}"

Este comando permite que los usuarios que pertenecen a la LISTA DEL GRUPO tenganderechos de acceso de lectura al contenedor 1.

Después de que se les otorga el permiso de lectura, los usuarios que pertenecen a losgrupos de destino pueden ejecutar estas operaciones:

l HEAD contenedor: recuperar los metadatos de los contenedores. Solo está permitidosi el usuario está asignado a un grupo que tiene privilegios de administrador degrupos de usuarios.

l GET contenedor: enumerar objetos dentro de un contenedor.

l GET objetos con el contenedor: leer el contenido del objeto dentro del contenedor.

El administrador asigna el acceso de escritura al contenedor

curl -XPUT -v -H 'X-Container-Write: {GROUP LIST}' -H 'X-Auth-Token: {TOKEN}' http://127.0.0.1:8080/v1/AUTH_bourne/{container1}"

A los usuarios en la LISTA DEL GRUPO se les otorga el permiso de escritura. Después deque se les otorga el permiso de escritura, los usuarios que pertenecen a los grupos dedestino pueden ejecutar las siguientes operaciones:

l POST contenedor: establecer metadatos. Comenzar con el prefijo "X-Container-Meta".

l PUT objetos dentro del contenedor: escribir/invalidar objetos con el contenedor.

Puede obtener más información sobre la autorización en: Operaciones de contenedor

Autorización

70 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 71: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

PARTE 3

EMC Atmos

Capítulo 13, "Introducción al servicio de soporte de EMC Atmos en ECS"

Capítulo 14, "Funciones compatibles con Atmos"

Capítulo 15, "Extensiones de API de Atmos"

EMC Atmos 71

Page 72: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

EMC Atmos

72 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 73: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 13

Introducción al servicio de soporte de EMC Atmosen ECS

l Soporte de API de EMC Atmos en ECS....................................................................74

Introducción al servicio de soporte de EMC Atmos en ECS 73

Page 74: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Soporte de API de EMC Atmos en ECSECSes compatible con un subconjunto de la API de EMC Atmos. En este artículo seenumeran las operaciones compatibles y las extensiones de ECS.

El servicio de objetos EMC Atmos está disponible en los siguientes puertos.

Protocolo Puertos

HTTP 9022

HTTPS 9023

Puede encontrar más información sobre las operaciones compatibles en la Guía delprogramador de Atmos que está disponible en EMC Supportzone.

l Guía del programador de Atmos

Se proporciona compatibilidad con formato de cable para todas las operacionescompatibles. Por lo tanto, las operaciones que se describen en la Guía del programador deAtmos se aplican a las operaciones de la API expuestas por ECS.

La Guía del programador de Atmos también proporciona información para autenticar la APIde Atmos y proporciona ejemplos detallados para muchas de las funciones admitidas.

Introducción al servicio de soporte de EMC Atmos en ECS

74 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 75: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 14

Funciones compatibles con Atmos

l Llamadas compatibles de la API REST de EMC Atmos............................................ 76l Llamadas no compatibles de la API REST de EMC Atmos........................................77l Compatibilidad de subgrupo de usuarios de la API REST de EMC Atmos................ 78

Funciones compatibles con Atmos 75

Page 76: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Llamadas compatibles de la API REST de EMC AtmosECS es compatible con un subconjunto de la API de EMC Atmos.

Se admiten las siguientes llamadas de la API de REST de Atmos. Se muestran lasllamadas para el objeto y las interfaces del espacio de nombres.

Tabla 8 Llamadas compatibles de la API de REST de Atmos

Método Ruta Descripción

Operaciones de servicios

GET /rest/service Obtención de informaciónsobre el sistema

Operaciones de objetos

POST /rest/objects/rest/namespace/<path>

Creación de un objeto

(Consulte las notas que semuestran a continuación)

DELETE /rest/objects/<ObjectID>/rest/namespace/<path>

Eliminación de un objeto

PUT /rest/objects/<ObjectID>/rest/namespace/<path>

Actualización de un objeto

(Consulte las notas que semuestran a continuación)

GET /rest/objects/<ObjectID>/rest/namespace/<path>

Lectura de un objeto (olista del directorio)

POST /rest/namespace/<path>?rename Cambio del nombre de unobjeto

Operaciones de metadatos

GET /rest/objects/<ObjectID>?metadata/user/rest/namespace/<path>?metadata/user

Obtención de metadatosde un usuario para unobjeto

POST /rest/objects/<ObjectID>?metadata/user/rest/namespace/<path>?metadata/user

Obtención de metadatosde un usuario

DELETE /rest/objects/<objectID>?metadata/user/rest/namespace/<path>?metadata/user

Eliminación de metadatosde un usuario

GET /rest/objects/<ObjectID>?metadata/system/rest/namespace/<path>?metadata/system

Obtención de metadatosde un sistema para unobjeto

GET /rest/objects/<ObjectID>?acl/rest/namespace/<path>?acl

Obtención de ACL

POST /rest/objects/<ObjectID>?acl/rest/namespace/<path>?acl

Configuración de ACL

GET /rest/objects/<ObjectID>?metadata/tags/rest/namespace/<path>?metadata/tags

Obtención de etiquetas demetadatos para un objeto

Funciones compatibles con Atmos

76 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 77: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 8 Llamadas compatibles de la API de REST de Atmos (continuación)

Método Ruta Descripción

GET /rest/objects/<ObjectID>?info/rest/namespace/<path>?info

Obtención de informaciónde un objeto

Encabezado /rest/objects/<ObjectID>/rest/namespace/<path>

Obtención de todos losmetadatos del objeto

Operaciones de espacio-objeto

GET /rest/objects Listado de objetos

GET /rest/objects?listabletags Obtención de etiquetasnumerables

Nota

l El encabezado x-emc-wschecksum no es compatible.

l La carga de formularios HTML no es compatible.

l GET /rest/objects no es compatible con varios tipos de respuesta con x-emc-

accept. Por ejemplo, el text/plain no se admite.

l El vencimiento y la retención de objetos no se admiten.

Llamadas no compatibles de la API REST de EMC Atmos

Las siguientes llamadas de API de REST de Atmos no se admiten.

Tabla 9 Llamadas no compatibles de la API de REST de Atmos

Método Ruta Descripción

Versiones de objetos

POST /rest/objects/<ObjectID>?versions Creación de una versión deun objeto

DELETE /rest/objects/<objectID>?versions Eliminación de una versiónde un objeto

GET /rest/objects/<objectID>?versions Listado de versiones de unobjeto

PUT /rest/objects/<objectID>?versions Restauración de una versiónde un objeto

Acceso anónimo

GET /rest/objects/<ObjectId>?uid=<uid>&expires=<exp>&signature=<sig>/rest/namespace/<path>?uid=<uid>&expires=<exp>&signature=<sig>

URL compartible

Funciones compatibles con Atmos

Llamadas no compatibles de la API REST de EMC Atmos 77

Page 78: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 9 Llamadas no compatibles de la API de REST de Atmos (continuación)

Método Ruta Descripción

POST /rest/accesstokens Creación de un token deacceso

GET /rest/accesstokens/<token_id>?info Obtención de detalles deltoken de acceso

DELETE /rest/accesstokens/<token_id> Eliminación de un token deacceso

GET /rest/accesstokens Listado de tokens de acceso

GET /rest/accesstokens/<token_id> Descarga de contenido deforma anónima

Nota

La protección de suma de verificación con el encabezado personalizado x-emc-wschecksum no es compatible.

Compatibilidad de subgrupo de usuarios de la API REST de EMCAtmos

ECS incluye dos llamadas nativas de la API REST que se usan específicamente paraincorporar la compatibilidad con el subgrupo de usuarios de ECS a las aplicaciones deAtmos.

Estas llamadas se detallan a continuación:

Llamada API Ejemplo

Creación de subgrupode usuarios

PUT Http url: /rest/subtenantEncabezados requeridos: x-emc-uid (por ejemplo, [email protected] ) x-emc-signature.

El subtenantID se establece en el encabezado “subtenantID” de larespuesta.

Eliminación delsubgrupo de usuarios

DELETE Http url: /rest/subtenants/{subtenantID}Encabezados requeridos: x-emc-uid (por ejemplo, [email protected] ) x-emc-signature

Funciones compatibles con Atmos

78 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 79: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 15

Extensiones de API de Atmos

l Extensiones de API................................................................................................80

Extensiones de API de Atmos 79

Page 80: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Extensiones de APIVarias extensiones para las API de objetos son compatibles.

Las extensiones y la API que las admiten aparecen en la siguiente tabla.

Tabla 10 Extensiones de la API de objetos

Característica Notas

PUT objeto (rango,agregar)

Utiliza el encabezado del rango para especificar el rango del objetoagregado.

Adición de datos a un objeto en la página 80

Adición de datos a un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de paraagregar datos a un objeto.

Puede haber casos en los que necesite agregar un objeto, pero la determinación de lacompensación exacta de bytes no es eficiente o útil. Para este escenario, proporciona lacapacidad de agregar atómicamente datos al objeto sin especificar una compensación(la compensación correcta se devuelve en la respuesta).

Se puede utilizar un encabezado de rango con el valor especial bytes=-1- para agregardatos a un objeto. De esta manera, el objeto se puede extender sin conocer el tamañodel objeto existente.

El formato es el siguiente: Range: bytes=-1-

Una solicitud de ejemplo que muestra la adición a un objeto existente con un valor derango de bytes=-1-. Aquí el valor and cat se envía en la solicitud.

PUT /rest/namespace/myObject HTTP/1.1Content-Length: 8Range: bytes=-1-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:01 -0000x-emc-date: Mon, 17 Jun 2013 20:46:01 -0000x-emc-namespace: emcx-emc-uid: fa4e31a68d3e4929bec2f964d4cac3de/[email protected]: ZpW9KjRb5+YFdSzZjwufZUqkExc=Content-Type: application/octet-streamAccept-Encoding: gzip, deflate, compress

and cat

HTTP/1.1 200 OKx-emc-mtime: 1431626712933Date: Mon, 17 Jun 2013 20:46:01 GMTx-emc-policy: defaultx-emc-utf8: truex-emc-request-id: 0af9ed8d:14cc314a9bc:112f6:9x-emc-delta: 8x-emc-append-offset: 24Content-Length: 0Server: Jetty(7.6.4.v20120524)

Extensiones de API de Atmos

80 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 81: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

La posición de desplazamiento en la que se agregaron los datos se devuelve en elencabezado x-emc-append-offset.

Cuando se recupera el objeto nuevamente, puede ver el valor total The quick greenfox jumps over the lazy dog and cat.. Ha agregado datos a este objeto.

Extensiones de API de Atmos

Adición de datos a un objeto 81

Page 82: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Extensiones de API de Atmos

82 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 83: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

PARTE 4

CAS

Capítulo 16, "Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS"

CAS 83

Page 84: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAS

84 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 85: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 16

Soporte para la configuración de aplicaciones delSDK de CAS con el portal de ECS

l Configuración de compatibilidad de CAS en ECS................................................... 86l Almacenamiento inactivo...................................................................................... 86l Cumplimiento de normas...................................................................................... 88l Retención de CAS en ECS...................................................................................... 90l Establecer políticas de retención de espacio de nombres......................................92l Establecer un depósito para CAS...........................................................................93l Configurar un usuario de objetos de CAS...............................................................94l Configurar ACL de depósito para un usuario.......................................................... 95l ECSAPI de REST compatibles con usuarios de CAS................................................ 98l Compatibilidad de la API del SDK de almacenamiento direccionable por contenido

(CAS).....................................................................................................................98

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS 85

Page 86: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Configuración de compatibilidad de CAS en ECSIntroduce la compatibilidad de CAS (almacenamiento direccionable por contenido) enECS.

ECS CAS permite a las aplicaciones del cliente basadas en SDK CAS almacenar, recuperary eliminar objetos de contenido fijo del almacenamiento de ECS.

El almacenamiento subyacente de ECS debe provisionarse antes de configurar ECS. Elaprovisionamiento normalmente se completa cuando se instala un nuevo rack de ECS.Esto incluye la configuración de un pool de almacenamiento, VDC y grupo de replicación.En ECS CAS, puede utilizar la documentación estándar si necesita crear o editar estosobjetos para que sean compatibles con CAS. Consulte Guía del administrador:Configuración de pools de almacenamiento, VDC y grupos de replicación.

Para los pools de almacenamiento, puede considerar la configuración de un archivoinactivo. Consulte . en la página 88

A continuación, configure sus espacios de nombres, usuarios y depósitos utilizando ladocumentación estándar:

l Guía del administrador: Configuración de un espacio de nombres para un grupo deusuarios

l Guía del administrador: Incorporación de usuarios y asignación de funcionesl Guía del administrador: Creación y configuración de depósitos

Este documento describe la forma de modificar la configuración básica paracompatibilidad con CAS:

l Almacenamiento inactivo en la página 86

l Cumplimiento de normas en la página 88

l Retención de CAS en ECS en la página 90

l Establecer políticas de retención de espacio de nombres en la página 92

l Establecer un depósito para CAS en la página 93

l Configurar un usuario de objetos de CAS en la página 94

l Configurar ACL de depósito para un usuario en la página 95

l API REST de ECS compatibles con usuarios de CAS en la página 98

l Compatibilidad de la API del SDK de almacenamiento direccionable por contenido(CAS) en la página 98

Almacenamiento inactivoDescribe los archivos de almacenamiento de cold.

Para los archivos inactivos la codificación de eliminaciónInactivos archiva almacenar objetos que no cambian con frecuencia y no requieren elesquema EC predeterminado más sólido. El esquema EC utilizado aquí es 2 fragmentosde codificación y fragmentos de datos de 10 (10/12). La eficiencia es 1.2 x.

Puede especificar un archivo inactivo (Cold almacenamiento) cuando se crea un nuevopool de almacenamiento. Después de crea el pool de almacenamiento, no se puedecambiar el esquema de EC. Este esquema puede soportar la pérdida de un solo nodo.También soporta la pérdida de una unidad sin unidades seis o dos de los 12 en dosnodos independientes.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

86 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 87: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Requisitos de TI

Tabla 11 Requisitos para los archivos regulares y frío en comparación con

Caso de uso ahora habilitado Mínimonodosrequeridos

Mínimodiscosnecesarios

Discosrecomendados

2 veces máseficiencia

Esquema deEC

Archivingregular

Opción predeterminada 4 16. 32 1.33 x 16:16

Archivoinactivo

Configurable poradministrador

8 12. 24 x 1.2 15:12

Nota

* Dado que la configuración mínima posibilidad de implementación para el dispositivode la serie C es dos dispositivos con 12 discos, 24 discos es la cantidad mínima deefectiva.

Storage Pool ConfigurationPara establecer los archivos cold desde el portal, seleccione almacenamiento Coldcuando crea un nuevo pool de almacenamiento. Una vez que se haya creado un pool dealmacenamiento, no se puede cambiar esta configuración.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

Almacenamiento inactivo 87

Page 88: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Cumplimiento de normasDescribe las funciones de ECS que son compatibles con los estándares del gobierno y delsector para el almacenamiento de registros electrónicos.

ECS es compatible con el estándar 17a-4(f) de la SEC para el almacenamiento deregistros electrónicos.

El cumplimiento de normas tiene tres componentes:

l Protección de la plataforma: abordar las vulnerabilidades de seguridad comunesdesde el software.

l Retención de registros basada en políticas: limitar la capacidad de cambiar laspolíticas de retención para los registros que se encuentran retenidos.

l Creación de informes de cumplimiento de normas: un agente del sistema informaperiódicamente el estado de cumplimiento de normas del sistema.

Nota

Debido a que el cumplimiento de normas certifica la plataforma, la función decumplimiento de normas solo está disponible en ECS Appliances. ECS Software no escompatible en hardware de otros fabricantes.

Protección de la plataformaDescribe las restricciones de seguridad de ECS que hacen que la plataforma cumpla conlos estándares del cumplimiento de normas.

Funciones de seguridad de la plataforma de ECS:

l Se desactiva el acceso raíz a los nodos; es decir, no se permiten inicios de sesión deprotocolo SSH en la cuenta raíz.

l Los clientes de ECS pueden acceder a los nodos a través de la cuenta admin que seestablece durante la instalación.

l Las cuentas de usuario admin autorizadas ejecutan comandos en los nodos queusan sudo.

l Registro de la auditoría completa de los comandos de sudo.

l ESRS proporciona la capacidad de apagar todo el acceso remoto a los nodos. En elAdministrador de políticas de ESRS, establezca la acción Start RemoteTerminal en Never Allow.

l Todos los puertos innecesarios, como ftpd, sshd, entre otros, están cerrados.

Política de retención y cumplimiento de normasDescribe las reglas mejoradas para la retención de registros en un sistema ECS activadopara el cumplimiento de normas.

Nota

Las funciones descritas aquí se aplican solo a los datos que utilizan ECS como elalmacenamiento de back-end.

ECS cuenta con funciones de retención de objetos activadas o definidas en el nivel delobjeto, del depósito y del espacio de nombres. El cumplimiento de normas fortaleceestas funciones mediante la limitación de los cambios que se pueden realizar en la

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

88 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 89: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

configuración de la retención de los objetos que están siendo retenidos. Las reglasincluyen:

l El cumplimiento de normas está activado en el nivel del espacio de nombres. Estosignifica que todos los depósitos en el espacio de nombres deben tener un períodode retención mayor que cero.

l El cumplimiento de normas únicamente se puede activar en un espacio de nombresal momento de crearlo. (El cumplimiento de normas no se puede agregar a unespacio de nombres existente).

l Una vez activado, no se puede desactivar.

l Todos los depósitos en un espacio de nombres deben tener un período de retenciónmayor que cero.

Nota

Si tiene una aplicación que asigna períodos de retención en el nivel del objeto, noutilice ECS para asignar un período de retención mayor que el período de retenciónde la aplicación. Esto provocará errores de la aplicación.

l Un depósito que posea datos no se puede eliminar, sin importar su valor deretención.

l Utilizar la opción Infinite en un depósito significa que los objetivos que residen eneste depósito en un espacio de nombres activado para el cumplimiento de normasnunca se podrán eliminar.

l El período de retención para un objeto no se puede eliminar ni acortar. Por lo tanto,el período de retención para un depósito no se puede eliminar ni acortar.

l Se pueden aumentar los períodos de retención de los objetos y depósitos.

l Ninguna función puede eliminar un objeto que se encuentra retenido. Esto incluye elpermiso de eliminación privilegiada de CAS.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

Política de retención y cumplimiento de normas 89

Page 90: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Figura 1 Activar el cumplimiento de normas en un nuevo espacio de nombres en el Portal de ECS

Agente de cumplimiento de normasDescribe la operación del agente de cumplimiento de normas.

Las funciones de cumplimiento de normas están activadas de forma predeterminada, aexcepción del monitoreo de cumplimiento de normas. Si el monitoreo está activado, elagente registra periódicamente un mensaje en un hilo de ejecución.

Nota

Haga un acuerdo con el servicio al cliente de EMC para activar el monitoreo decumplimiento de normas. Los mensajes de monitoreo se encuentran disponibles deforma obligatoria desde el nodo. No aparecen en el Portal de ECS.

Retención de CAS en ECSUn objeto de CAS puede contar con un período de retención que rige la cantidad detiempo que el objeto se conserva en almacenamiento de ECS antes de que unaaplicación pueda eliminarlo.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

90 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 91: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Periodos de retenciónLa aplicación de CAS asigna los períodos de retención en el C-Clip para el objeto.

Por ejemplo, si un documento financiero debe conservarse durante tres años a partir desu fecha de creación, se especifica un período de retención de tres años en el C-Clipasociado con el documento financiero. También es posible especificar que el documentose conserve indefinidamente.

Políticas de retención (clases de retención)Las políticas de retención permiten que se capturen los casos de uso de retención y quese apliquen a C-Clips. Por ejemplo, diferentes tipos de documentos pueden tenerdiferentes períodos de retención. Usted podría requerir los siguientes períodos deretención:

l Finanzas: 3 años

l Información legal: 5 años

l Correo electrónico: 6 meses

Cuando se aplica una política de retención a una serie de C-Clips, cambiando la política,el período de retención cambia para todos los objetos a los que se aplique la política.

Las políticas de retención están asociados con espacios de nombres en ECS y sonreconocidos por la aplicación de CAS como clases de retención.

Retención a nivel de depósito no recomendada para CASECS proporciona retención en el nivel de depósito para todos los servicios de objetos.Puesto que la retención a nivel de depósito reemplaza toda retención a nivel de objetode CAS, es probable que interfiera con la aplicación externa de CAS.

Precedencia de CASCuando varios períodos de retención se aplican a un objeto de CAS en ECS, el período deretención con el valor más alto tiene precedencia, sin importar cómo se aplicó laretención.

Cómo aplicar la retención CASPuede definir políticas de retención (clases de retención) para espacios de nombres en elportal de ECS o con la API de REST de ECS. Consulte Establecer políticas de retención deespacio de nombres en la página 92.

Su aplicación externa de CAS puede asignar un período de retención fijo o una clase deretención a C-Clip durante su creación.

Al aplicar los períodos de retención mediante API, especifique el período en segundos.

Tenga en cuenta que la CAS de ECS usa el tiempo de creación de C-Clip para todos loscálculos relacionados con la retención, y no el tiempo de migración.

Cómo crear políticas de retención con la API de REST de ECS.Puede crear períodos y políticas de retención utilizando API de REST de administraciónde ECS; a continuación se proporciona un resumen.

Tabla 12 ECS Recursos de REST API para la retención

Método Descripción

PUT /object/bucket/{bucketName}/retention El valor de retención para un depósito define unperíodo de retención predeterminado que seaplica a cada objeto dentro de un depósito. Porlo tanto, si establece un periodo de retenciónde 1 año, un objeto del depósito no se puedeeliminar durante un año.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

Retención de CAS en ECS 91

Page 92: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 12 ECS Recursos de REST API para la retención (continuación)

Método Descripción

GET /object/bucket/{bucketName}/retention Devuelve el período de retención que estáestablecido actualmente para un depósitoespecificado.

POST /object/namespaces/namespace/{namespace}/retention

Para los espacios de nombres, el ajuste deretención actúa como una política, donde cadapolítica es un <Name>: Par <Retention period>.Puede definir una serie de políticas deretención para un espacio de nombres y puedeasignar una política, por nombre, a un objetoen el espacio de nombres. Esto le permitecambiar el período de retención de un conjuntode objetos que tienen la misma políticaasignada al cambiar la políticacorrespondiente.

PUT /object/namespaces/namespace/{namespace}/retention/{class}

Actualiza el período para una clase deretención que está asociada con un espacio denombres.

GET /object/namespaces/namespace/{namespace}/retention

Devuelve las clases de retención definidas paraun espacio de nombres.

Puede obtener más información sobre la API de REST aquí: Utilizar la API de REST deadministración de ECS en la página 104. La referencia en línea está aquí: Referencia deAPI de REST de administración de ECS.

Establecer políticas de retención de espacio de nombresProporciona instrucciones de configuración específicas de CAS para las políticas deretención del espacio de nombres.

La función de política de retención del espacio de nombres proporciona una manera dedefinir y administrar las clases de retención de CAS para todos los C-Clips creados en elespacio de nombres.

Un espacio de nombres puede tener muchas políticas de retención asociadas, dondecada política define un período de retención. Mediante la aplicación de una política deretención a una serie de C-Clips (con la API), un cambio en la política de retencióncambia el período de retención de todos los objetos relacionados con la política. ParaCAS, las clases de retención se aplican al C-Clip de un objeto mediante la aplicación. Siun objeto se encuentra en un período de retención, no se permiten las solicitudes paramodificar el objeto.

Procedimiento

1. En ECSportal, seleccione Manage > Namespace.

2. Para editar la configuración de un espacio de nombres existente, elija la acción Editasociada con el espacio de nombres existente.

3. Agregue y configure políticas de retención.

a. En el área de políticas de retención, seleccione Add para agregar una nuevapolítica.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

92 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 93: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

b. Ingrese un nombre para la política.

c. Especifique el período para la política de retención.

Seleccione la casilla de verificación Infinite para asegurarse de que nunca seeliminen objetos con esta política.

Figura 2 Nueva política de retención

4. Seleccione Guardar.

Figura 3 Políticas de retención para un espacio de nombres

Establecer un depósito para CASConfigure un depósito para que sea compatible con CAS.

Nota

No se recomiendan políticas de retención a nivel de depósito para CAS

Procedimiento

1. En ECSportal, seleccione Manage > Bucket.

2. Para editar la configuración de un depósito existente, elija la acción Edit Bucketasociada con el depósito existente.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

Establecer un depósito para CAS 93

Page 94: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

3. Seleccione el control CAS On para activar CAS para el depósito.

4. Seleccione Guardar.

Configurar un usuario de objetos de CASConfigurar un usuario de objetos para que utilice CAS.

Al configurar un usuario de objetos, puede asignar características de CAS al perfil queconforma los elementos de un perfil de CAS. Podrá ver el archivo PEA resultante para suuso en las aplicaciones de CAS.

Procedimiento

1. En ECSportal, seleccione Manage > Users.

2. Para editar la configuración de un usuario de objetos existente, elija la acción Editasociada con el usuario.

Figura 4 Configuración de CAS para usuarios de objetos

3. En el área de CAS, escriba una contraseña (seña secreta) o elija Generate para que elportal cree una para usted.

4. Elija Set Password.

5. Elija Generate PEA File para generar el archivo PEA que su solicitud necesitará paraautenticarse en el almacenamiento de CAS de ECS.

6. Mediante el establecimiento de un depósito predeterminado, todas las acciones querealice el usuario que no especifiquen un depósito usarán el depósitopredeterminado especificado. Escriba el nombre del depósito predeterminado yseleccione Set Bucket.

7. Elija Add Attribute para agregar una etiqueta de metadatos al usuario.

8. Agregue el nombre y el valor de la etiqueta de metadatos.

Consulte la documentación del SDK de CAS para obtener más información sobre lasetiquetas de metadatos.

9. Elija Save Metadata.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

94 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 95: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Configurar ACL de depósito para un usuarioEdite lista de control de acceso de un depósito para limitar el acceso de un usuario.

Edite la ACL del depósito para los usuarios de CAS. Algunas ACL de depósito de ECS semapean a permisos de CAS, y otras no tienen ningún significado para los datos de CAS.

Procedimiento

1. En ECSportal, seleccione Manage > Bucket.

2. Para editar las ACL de un depósito existente, elija la acción Edit ACL asociada con eldepósito existente.

Figura 5 Editar ACL del depósito

3. Elija Edit asociado con el usuario.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

Configurar ACL de depósito para un usuario 95

Page 96: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Figura 6 Administración de ACL de depósitos

4. Modifique los permisos.

Tabla 13 ACL de depósitos

Capacidad de SDK de CAS ACL de ECS Definición de ACL

Lectura read Permite que el usuarioabra C-Clips en eldepósito.

Escritura escritura Permite que el usuariocree C-Clips en eldepósito.

Exist read Permite que el usuarioabra C-Clips en eldepósito.

Delete eliminación Permite que el usuarioelimine C-Clips deldepósito.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

96 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 97: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 13 ACL de depósitos (continuación)

Capacidad de SDK de CAS ACL de ECS Definición de ACL

Eliminación con privilegios escritura conprivilegios

Permite que el usuarioejecute unaeliminación conprivilegios de un C-Clip. La eliminacióncon privilegios permiteal usuario eliminar unC-Clip que está enretención.

Enumeración de clip No es compatibleactualmente en ECS

Período de retención No es compatibleactualmente en ECS

Nota

Solo Centera * escompatible con LitHold(retención para asuntoslegales).

Nota

Otros ECS ACL no tienen ningún significado para CAS.

5. Seleccione Guardar.

6. También puede editar las ACL a nivel de grupo. Los grupos están predefinidos y lamembresía al grupo se basa automáticamente en criterios del usuario. Elija GroupACLs.

7. Seleccione Add.

8. Seleccione el grupo que desea editar de la lista Group Name.

Tabla 14 Grupos de ACL de depósitos

Grupo de ACL de depósitos Descripción

Público Todos los usuarios, autenticados o no.

todos los usuarios Todos los usuarios autenticados.

other Los usuarios autenticados, pero no el propietario del depósito.

entrega de registro No compatible.

9. Edite las ACL y seleccione Save.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

Configurar ACL de depósito para un usuario 97

Page 98: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

ECSAPI de REST compatibles con usuarios de CASDescribe los recursos de la API de REST de ECS que puede utilizar para administrar laconfiguración del usuario y el perfil de CAS.

La API REST de administración de ECS contiene recursos para la administración de datosespecíficos de CAS para un usuario.

Descripciones de recursos de la API de REST

l GET /object/user-cas/secret/{uid} . : Obtiene la seña secreta de CASpara el usuario especificado.

l GET /object/user-cas/secret/{namespace}/{uid}. : Obtiene la señasecreta de CAS para el espacio de nombres y usuario especificados.

l POST /object/user-cas/secret/{uid}. : Crea o actualiza la seña secreta deCAS para un usuario especificado.

l GET /object/user-cas/secret/{namespace}/{uid}/pea. : Genera unarchivo PEA para el usuario especificado.

l POST /object/user-cas/secret/{uid}/deactivate. : Elimina la señasecreta de CAS para un usuario especificado.

l GET /object/user-cas/bucket/{namespace}/{uid}. : Obtiene eldepósito predeterminado para el espacio de nombres y usuario especificados.

l GET /object/user-cas/bucket/{uid}. : Obtiene el depósito predeterminadopara un usuario especificado.

l POST /object/user-cas/bucket/{namespace}/{uid}. : Actualiza eldepósito predeterminado para el espacio de nombres y usuario especificados.

l GET /object/user-cas/applications/{namespace}. : Obtiene lasaplicaciones registradas de CAS para un espacio de nombres especificado.

l POST /object/user-cas/metadata/{namespace}/{uid}. : Actualiza lasaplicaciones registradas de CAS para un espacio de nombres y usuarioespecificados.

l GET /object/user-cas/metadata/{namespace}/{uid}. : Obtiene losmetadatos del usuario de CAS para el espacio de nombres y usuario especificados.

Consulte Referencia de API de REST de administración de ECS para obtener másinformación.

Compatibilidad de la API del SDK de almacenamientodireccionable por contenido (CAS)

CAS Query es compatible a partir de ECS 2.2.

Nota

En ECS, las operaciones de CAS Query arrojan resultados según la hora de creación del C-Clip existente y la hora de la eliminación del C-Clip eliminado (reflejo). En EMC Centera,las operaciones de consulta arrojan resultados basados en la hora de escritura delobjeto.

Llamadas de API del SDK de CAS que no son compatibles con ECS 2.2:

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

98 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 99: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

l FPClip_EnableEBRWithClass

l FPClip_EnableEBRWithPeriod

l FPClip_SetRetentionHold

l FPClip_TriggerEBREvent

l FPClip_ TriggerEBREventWithClass

l FPClip_ TriggerEBREventWithPeriod

l FPClip_GetEBRClassName

l FPClip_GetEBREventTime

l FPClip_GetEBRPeriod

l FPClip_GetRetentionHold

l FPClip_IsEBREnabled

En Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS enla página 86 puede obtener más información acerca del soporte de ECS CAS.

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

Compatibilidad de la API del SDK de almacenamiento direccionable por contenido (CAS) 99

Page 100: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECS

100 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 101: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

PARTE 5

API de administración de ECS

Capítulo 17, "Introducción a la REST API de administración de ECS"

Capítulo 18, "Autenticación con el servicio de administración de ECS"

Capítulo 19, "Resumen de la REST API de administración de ECS"

API de administración de ECS 101

Page 102: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

API de administración de ECS

102 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 103: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 17

Introducción a la REST API de administración deECS

l API de REST de administración de ECS.................................................................104

Introducción a la REST API de administración de ECS 103

Page 104: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

API de REST de administración de ECSEn esta parte se describe cómo acceder a API de REST de administración de ECS y cómorealizar la autenticación, además de que se proporciona un resumen de las rutas de API.API de REST de administración de ECS permite que el área de almacenamiento de objetosse configure y administre. Una vez que se configura el almacenamiento de objetos, serealizan las operaciones de creación, lectura, actualización y eliminación de los objetossubsiguientes mediante los protocolos de objetos compatibles de S3, EMC Atmos uOpenStack Swift.

Puede consultar los siguientes artículos para obtener información sobre la forma deacceder a la API de REST y autenticar:

l Autenticación con API de REST de administración de ECS en la página 106

y las rutas de API se resumen en:

l Resumen de API de REST de administración de ECS en la página 112

Además, se proporciona una referencia de la API en:

l Referencia de API de REST de administración de ECS

Referencia de API de REST de administración de ECS se genera automáticamente delcódigo fuente y proporciona una referencia para los métodos disponibles en la API.

Introducción a la REST API de administración de ECS

104 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 105: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 18

Autenticación con el servicio de administraciónde ECS

l Autenticación con API de REST de administración de ECS....................................106

Autenticación con el servicio de administración de ECS 105

Page 106: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Autenticación con API de REST de administración de ECSECS utiliza un sistema de autenticación basado en token para todas sus llamadas a laAPI de REST. Se proporcionan ejemplos para la autenticación con la API de REST de ECS,con y sin cookies.

Una vez que un usuario se autentica con ECS, se devuelve un token de autenticación,que puede utilizarse para autenticar al usuario en las llamadas siguientes.l Se devuelve un código HTTP 401 si el cliente sigue automáticamente las

redirecciones, lo que indica que necesita iniciar sesión y autenticarse para obtenerun token nuevo.

l Se devuelve un código HTTP 302 si el cliente no sigue automáticamente lasredirecciones. El código 302 indica al cliente dónde puede autenticarse de nuevo.

Puede recuperar y usar tokens de autenticación:l Si guarda el cookie X-SDS-AUTH-TOKEN de una solicitud de autenticación exitosa y

envía este cookie en solicitudes posteriores.l Si lee el encabezado HTTP X-SDS-AUTH-TOKEN de una solicitud de autenticación

exitosa y lo copia en cualquier solicitud posterior.

La API REST está disponible en el puerto :4443, y los clientes acceden a ECS mediante laemisión de una solicitud de inicio de sesión en el formulario:

https://<ECS_IP>:4443/login

Autenticación con AUTH-TOKENEste ejemplo muestra cómo utilizar tokens de autenticación mediante la lectura delencabezado HTTP X-SDS-AUTH-TOKEN de una solicitud de autenticación exitosa y la copiade ese encabezado en una solicitud posterior. Este ejemplo no utiliza cookies. Estosejemplos están escritos en curl y formateados para facilitar la lectura.

Este comando ejecuta un GET en el recurso /login. La opción -u indica el usuario delencabezado de autenticación básica. La designación de usuario debe incluirse en lasolicitud. Tras la autenticación exitosa, se devuelve un código HTTP 200, así como elencabezado X-SDS-AUTH-TOKEN que contiene el token codificado.

curl -L --location-trusted -k https://10.247.100.247:4443/login -u "root:ChangeMe" -v

> GET /login HTTP/1.1> Authorization: Basic cm9vdDpDaGFuZ2VNZQ==> User-Agent: curl/7.24.0 (i386-pc-win32) libcurl/7.24.0 OpenSSL/0.9.8t zlib/1.2.5> Host: 10.247.100.247:4443> Accept: */*>< HTTP/1.1 200 OK< Date: Tue, 26 Nov 2013 22:18:25 GMT< Content-Type: application/xml< Content-Length: 93< Connection: keep-alive< X-SDS-AUTH-TOKEN: BAAcQ0xOd3g0MjRCUG4zT3NJdnNuMlAvQTFYblNrPQMAUAQADTEzODU0OTQ4NzYzNTICAAEABQA5dXJu OnN0b3JhZ2VvczpUb2tlbjo2MjIxOTcyZS01NGUyLTRmNWQtYWZjOC1kMGE3ZDJmZDU3MmU6AgAC0A8=<

Autenticación con el servicio de administración de ECS

106 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 107: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><loggedIn> <user>root</user></loggedIn>* Connection #0 to host 10.247.100.247 left intact* Closing connection #0* SSLv3, TLS alert, Client hello (1):

El token se puede devolver de nuevo en la próxima llamada API. Puede copiar elcontenido de X-SDS-AUTH-TOKEN y pasarlo a la siguiente solicitud a través del switch -Hde curl.

curl https://10.247.100.247:4443/object/namespaces -k -H "X-SDS-AUTH-TOKEN: BAAcOHZLaGF4MTl3eFhpY0czZ0tWUGhJV2xreUE4PQMAUAQADTEzODU0OTQ4NzYzNTICAAEABQA5dXJu OnN0b3JhZ2VvczpUb2tlbjpkYzc3ODU3Mi04NWRmLTQ2YjMtYjgwZi05YTdlNDFkY2QwZDg6AgAC0A8="

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <namespaces> <namespace> <id>ns1</id> <link rel="self" href="/object/namespaces/namespace/ns1"/> <names>ns1</name> </namespace></namespaces>

Autenticación con cookiesEste ejemplo muestra cómo utilizar tokens de autenticación guardando el cookie de unasolicitud de autenticación exitosa, para luego pasar el cookie en una solicitud posterior.Estos ejemplos están escritos en curl y formateados para facilitar la lectura.

En este ejemplo, se especifica el parámetro ?using-cookies=true para indicar que desearecibir cookies, además del encabezado normal del protocolo HTTP. Este comando curlguarda el token de autenticación en un archivo denominado cookiefile en eldirectorio actual.

curl -L --location-trusted -k https://<ECS_IP>:4443/login?using-cookies=true -u "root:Password" -c cookiefile -v

El siguiente comando pasa el cookie con el token de autenticación a través del switch -b,y devuelve información al grupo de usuarios.

curl -k https://10.247.100.247:4443/object/namespaces -b cookiefile -v

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <namespaces> <namespace> <id>ns1</id> <link rel="self" href="/object/namespaces/namespace/ns1"/> <names>ns1</name> </namespace></namespaces>

Autenticación con el servicio de administración de ECS

Autenticación con cookies 107

Page 108: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Cerrar sesiónLa API de cierre de sesión termina una sesión.

Un usuario determinado tiene permitido un máximo de 100 tokens de autenticaciónsimultáneos. Pasado este límite, el sistema rechaza cualquier conexión nueva para esteusuario hasta que se liberen tokens. Pueden liberarse cuando se vencen naturalmente, ollamando explícitamente a este URI:

https://<ECS_IP>:4443/logout

Si tiene varias sesiones que se ejecutan simultáneamente, este URI fuerza la terminaciónde todos los tokens relacionados con el usuario actual.

GET https://<ECS_IP>:4443/logout?force=true

A continuación se muestra un ejemplo de cierre de sesión.

Solicitud

GET https://<ECS_IP>:4443/logout

X-SDS-AUTH-TOKEN:{Auth_Token}

Pase el encabezado o cookie con el token de autenticación para cerrar la sesión.

Respuesta

HTTP 200

WhoamiUn usuario de ECS puede ver su propio nombre de usuario, asociación de grupos deusuarios y las funciones mediante la llamada API whoami.

Solicitud

GET https://<ECS_IP>:4443/user/whoami

Respuesta

HTTP 200

GET /user/whoami<user> <common_name>root</common_name> <distinguished_name/> <namespace/> <roles> <role>SYSTEM_ADMIN</role> </roles></user>

HTTP 200

GET /user/whoami<user> <common_name>[email protected]</common_name> <distinguished_name/> <namespace>ns1</namespace>

Autenticación con el servicio de administración de ECS

108 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 109: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

<roles> <role>NAMESPACE_ADMIN</role> </roles></user>

Este ejemplo muestra la salida whoami para el usuario raíz y para un usuario al que seasignó la función NAMESPACE_ADMIN para el espacio de nombres "ns1".

Autenticación con el servicio de administración de ECS

Whoami 109

Page 110: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Autenticación con el servicio de administración de ECS

110 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 111: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 19

Resumen de la REST API de administración deECS

l Resumen de API de REST de administración de ECS.............................................112

Resumen de la REST API de administración de ECS 111

Page 112: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Resumen de API de REST de administración de ECSAPI de REST de administración de ECS permite que el área de almacenamiento de objetosde ECS se configure y administre.

La siguiente tabla resume API de REST de administración de ECS.

Tabla 15 API de REST de administración de ECS- resumen de métodos

Área de la API Descripción

Configuración

Certificado /object-certAPI para la administración de certificados.

/object-cert/keystoreAPI que permite especificar la cadena de certificados utilizada por EMC,y que el certificado se rote.

Propiedades deconfiguración

/config/object/propertiesAPI que permite establecer el alcance de usuario como GLOBAL oESPACIO DE NOMBRES.

En el alcance GLOBAL, los usuarios son globales y pueden compartirseentre espacios de nombres. En este caso, el espacio de nombrespredeterminado asociado a un usuario determina el espacio de nombrespara las operaciones de objetos, y no hay necesidad de suministrar unespacio de nombres para una operación. Si el alcance de usuario esESPACIO DE NOMBRES, un usuario está asociado a un espacio denombres, por lo que podría haber más de un usuario con el mismonombre, cada uno asociado a un espacio de nombres diferente. En elmodo ESPACIO DE NOMBRES, se debe proporcionar un espacio denombres para cada operación.

Debe establecerse antes de crear el primer usuario. El valorpredeterminado es GLOBAL.

Licencia /licenseAPI que permite que se agregue una licencia y que se recuperen losdetalles de la licencia.

Característica /feature/API para recuperar los detalles de una función.

CAS

Perfil de usuario deCAS

/object/user-casAPI que permite que se asignen claves secretas a los usuarios de CAS yque se genere el archivo Pool Entry Authorization (PEA).

Medición

Facturación /object/billing

Resumen de la REST API de administración de ECS

112 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 113: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 15 API de REST de administración de ECS- resumen de métodos (continuación)

Área de la API Descripción

API que permite la medición del uso del área de almacenamiento deobjetos a nivel de grupo de usuarios y depósito. Consulte Guía deladministrador: Administración de un grupo de usuarios para obtenermás información.

Migración

Transformación /object/transformationAPI para habilitar la transformación de datos.

Monitoreo

Capacidad /object/capacityAPI para recuperar la capacidad administrada actual.

Dashboard

Alerts /vdc/alertsAPI para recuperar alertas de auditoría.

Activity /vdc/eventsAPI para devolver los eventos de auditoría para un espacio de nombresespecificado.

Multiusuario

Namespace /object/namespacesAPI para habilitar la creación y administración de un espacio denombres.

También permite fijar el período de retención para el espacio denombres. Consulte Guía del administrador: Administración de un grupode usuarios para obtener más información.

Georeplicación

Grupo de replicación /data/data-service/vpoolsAPI que permite la creación y administración de grupos de replicación.

Zona de falla temporal /tempfailedzone/API que permite recuperar todas las zonas de falla temporales o laszonas de falla temporales de un grupo de replicación específico.

Aprovisionamiento

URL de base /object/baseurlAPI que permite la creación de una dirección URL base que a su vezpermite que las aplicaciones existentes trabajen con el área dealmacenamiento de objetos de ECS. Para obtener más informaciónsobre la dirección URL de base, visite: .

Depósito /object/bucket

Resumen de la REST API de administración de ECS

Resumen de API de REST de administración de ECS 113

Page 114: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 15 API de REST de administración de ECS- resumen de métodos (continuación)

Área de la API Descripción

API de aprovisionamiento y administración de depósitos.

/object/bucket/{bucketName}/lockAPI que permite que se bloquee el acceso al depósito. Consulte Guía deladministrador: Administración de un grupo de usuarios para obtenermás información.

Área dealmacenamiento dedatos

/vdc/data-storesAPI que permite la creación de áreas de almacenamiento de datos ensistemas de archivos (/vdc/data-stores/filesystems) o en

nodos genéricos (/vdc/data-stores/commodity).

Nodo /vdc/nodesAPI para recuperar los nodos que están actualmente configurados parael clúster.

Pool dealmacenamiento

/vdc/data-services/varraysAPI que permite la creación y administración de pools dealmacenamiento.

Centro de datos virtual /object/vdcsPermite que se agregue un VDC y se especifiquen sus extremos y la señasecreta para la replicación de datos entre los sitios de ECS.

Almacenamiento declaves VDC

/vdc/keystoreAPI para la administración de certificados de un VDC

Soporte

Call Home /vdc/callhome/API que permite que se configure ConnectEMC y que se creen eventos dealerta para ConnectEMC.

Paquete de la CLI /cliAPI para descargar el paquete de ECS.

Administración de usuarios

Proveedor deautenticación

/vdc/admin/authprovidersAPI que permite que se agreguen y administren proveedores deautenticación.

Contraseña de grupo(Swift)

/object/user-passwordAPI que permite generar una contraseña para utilizarla para laautenticación de OpenStack Swift.

Secret Key /object/user-secret-keysAPI que permite asignar claves secretas a usuarios de objetos y quepermite la administración de claves secretas.

Resumen de la REST API de administración de ECS

114 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 115: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 15 API de REST de administración de ECS- resumen de métodos (continuación)

Área de la API Descripción

Autoservicio de clavessecretas

/object/secret-keysAPI que permite que los usuarios del cliente S3 creen una nueva señasecreta que les permita acceder a los objetos y depósitos dentro de suespacio de nombres en el área de almacenamiento de objetos.

Usuario (objeto) /object/usersAPI para crear y administrar usuarios de objetos. Los usuarios deobjetos siempre están asociados con un espacio de nombres. La APIdevuelve una seña secreta que se puede utilizar para el acceso S3. Unusuario de objetos que tiene asignada una seña secreta S3 puedecambiarla usando la API de REST.

/object/users/lock.

Permite que se bloquee el acceso del usuario.

Usuario(administración)

/vdc/usersAPI para crear y administrar usuarios de administración. Puedenasignarse usuarios de administración a la función de administrador delsistema o a la función de administrador de espacio de nombres. Lacontraseña del usuario de administración local se puede cambiar.

Resumen de la REST API de administración de ECS

Resumen de API de REST de administración de ECS 115

Page 116: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Resumen de la REST API de administración de ECS

116 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 117: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

PARTE 6

HDFS

Capítulo 20, "¿Qué es ECS HDFS?"

Capítulo 21, "Creación de un depósito para el sistema de archivos de HDFS"

Capítulo 22, "Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS"

Capítulo 23, "Configuración de la integración de ECS HDFS con un clúster simple de

Hadoop"

Capítulo 24, "Configuración de la integración de ECS HDFS a un clúster de Hadoop

(kerberizado) seguro"

Capítulo 25, "Guía sobre la configuración de Kerberos"

Capítulo 26, "Solución de problemas"

Capítulo 27, "Propiedades de core-site.xml de Hadoop para ECS HDFS"

Capítulo 28, "Ejemplo de metadatos de depósito seguro"

HDFS 117

Page 118: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

HDFS

118 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 119: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 20

¿Qué es ECS HDFS?

l ¿Qué es ECS HDFS?............................................................................................. 120l Configuración de Hadoop para usar ECS HDFS ....................................................121l ECSURI de HDFS para el acceso al sistema de archivos........................................122l Modos de autenticación de Hadoop.................................................................... 122l Migración de un clúster simple a uno de Hadoop de Kerberos............................. 126l Interacción del sistema de archivos.................................................................... 127l Aplicaciones de Hadoop compatibles y no compatibles...................................... 127

¿Qué es ECS HDFS? 119

Page 120: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

¿Qué es ECS HDFS?ECS HDFS es un sistema de archivos compatible con Hadoop (HCFS) que le permiteejecutar aplicaciones Hadoop 2.X en la parte superior de la infraestructura dealmacenamiento de ECS.

Puede configurar su distribución de Hadoop para que se ejecute en contra del sistema dearchivos incorporado de Hadoop, en contra de ECS HDFS o en contra de cualquiercombinación de HDFS, ECS HDFS u otros sistemas de archivo de Hadoop compatiblesque haya disponibles en su ambiente. La siguiente figura ilustra cómo ECS HDFS seintegra con un cluster de Hadoop existente.

Figura 7 Integración de ECS HDFS en un cluster de Hadoop

Hadoop Cluster

ResourceManager

Hadoop Client

ECS Client Library

Node Manager

MapReduce Task

Appliance Commodity

MapReduce Request

Node Manager

MapReduce Task

Node Manager

MapReduce Task

ECS data nodes

ECS data nodes

ECS data nodes

ECS Client Library ECS Client Library

En un ambiente de Hadoop configurado para utilizar ECS HDFS, cada uno de los nodos dedatos de ECS HDFS funciona como un NameNode de Hadoop tradicional, lo que significaque todos los nodos de datos de ECS HDFS son capaces de aceptar solicitudes de HDFS yproporcionarles servicio.

Cuando configura el cliente de Hadoop para utilizar ECS HDFS en lugar de HDFStradicional, la configuración indica que ECS HDFS haga toda la actividad de HDFS. En

¿Qué es ECS HDFS?

120 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 121: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

cada nodo cliente de ECS HDFS, cualquier componente tradicional de Hadoop utilizaríaECS HDFS Client Library (el archivo JAR ViPRFS) para ejecutar la actividad de HDFS.

Para integrar ECS HDFS en un ambiente de Hadoop existente, debe tener lo siguiente:

l Un clúster de Hadoop ya instalado y configurado. Se admiten las distribuciones:

n Cloudera 5.1, 5.2, 5.3, 5.4, 5.5

n Pivotal 2.1, 3.0, 3.0.1

n Hortonworks 2.0, 2.1, 2.2, 2.3

Si tiene pensado utilizar la distribución de Hortonworks, puede usar HortonworksAmbari. Hortonworks 2.3 (Hadoop 2.7) viene con un paquete de discos de ECS quese puede activar para simplificar la integración con ECS HDFS. La instrucción parautilizar esta distribución se proporcionan en: Implementación de un clúster deHortonworks con Ambari en la página 140.

l Hadoop instalado y configurado para ser compatible con ECS HDFS, que requiere:

n Uno o más depósitos activados por sistemas de archivos que se utilizan para elacceso de HDFS.

n ECS Client Library se implementa en el clúster.

l Para un clúster de Hadoop que utiliza Kerberos o Kerberos con Active Directory.

n Las entidades de seguridad de Kerberos se implementan en los nodos de ECS

n Los metadatos seguros se implementan en el depósito.

Configuración de Hadoop para usar ECS HDFSHadoop almacena la información de configuración de sistema en una cantidad dearchivos, tales como core-site.xml, hdfs-site.xml, hive-site.xml, etc. Serequiere la edición de core-site.xml como parte de la configuración de ECS HDFS.

Existen varios tipos de propiedades para añadir o modificar en core-site.xml,incluso:

l Clases de Java de ECS HDFS: Este conjunto de propiedades define las clases deimplementación de ECS HDFS que están contenidas en ECS HDFS Client Library. Sonobligatorias.

l Propiedades de ubicación de sistema de archivos: Estas propiedades definen el URIdel sistema de archivos (esquema y autoridad) que se debe usar cuando se ejecutanlos trabajos de Hadoop, además de las direcciones IP en los nodos de datos ECSpara un sistema de archivos específico de ECS.

l Propiedades principales de alcance y servicio de Kerberos: Se requieren estaspropiedades solo cuando se ejecuta en un ambiente Hadoop donde está presenteKerberos. Estas propiedades mapean los usuarios de Hadoop y de ECS HDFS.

core-site.xml reside en cada nodo del clúster de Hadoop. Debe añadir las mismaspropiedades en cada instancia de core-site.xml.

Nota

Todas las distribuciones compatibles (Ambari, Cloudera, Pivotal) permiten laadministración de archivos de configuración mediante la interfaz de administración. Serecomienda utilizar la interfaz de administración en lugar de los archivos de ediciónmanual. Además, los cambios realizados mediante la interfaz de administración seconservan en todo el clúster.

¿Qué es ECS HDFS?

Configuración de Hadoop para usar ECS HDFS 121

Page 122: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

ECSURI de HDFS para el acceso al sistema de archivosDespués de configurar Hadoop para utilizar el sistema de archivos de ECS, puedeacceder a él al especificar la URI de ECS HDFS con viprfs:// como el esquema y unacombinación de depósito de ECS, espacio de nombres de grupo de usuarios y nombre deinstalación definido por el usuario para la autoridad.

La URI de ECS HDFS se ve de la siguiente manera:

viprfs://bucket_name.namespace.installation/path

bucket_name corresponde a un depósito habilitado para HDFS. Contiene los datos quedesea analizar con Hadoop. namespace corresponde a un espacio de nombres de grupode usuarios, y installation_name es un nombre que asigna a un conjunto específico denodos de ECS o un equilibrador de carga.ECS HDFS resuelve el installation_name para unconjunto de nodos de ECS o un equilibrador de carga con la propiedad hostsfs.vipr.installation.[installation_name].hosts, que incluye las direcciones IP de los nodosde ECS o equilibrador de carga.

Si el installation_name mapea a un conjunto de nodos de ECSECS, puede especificar lafrecuencia de consultas de ECS respecto de la lista de nodos activos ajustandofs.vipr.installation.[installation_name].resolution en dynamic, y fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms para especificar la frecuencia deconsultas de ECS respecto de la lista de nodos activos.

Con un ambiente Hadoop que utiliza seguridad simple, puede especificar la URI de ECSHDFS como el sistema de archivos predeterminado en fijándolo como el valor de lapropiedad fs.defaultFS, pero no es un requisito. Si no especifica ECSHDFS como elsistema de archivos predeterminado, debe utilizar la URI completa, incluida la ruta, cadavez que acceda a los datos de ECS. Si tiene aplicaciones existentes que ya utilizan otrosistema de archivos predeterminado, debe actualizar dichas aplicaciones.

Modos de autenticación de HadoopHadoop es compatible con dos modos diferentes de operación para determinar laidentidad de un usuario, de manera simple y mediante Kerberos.

Simple

En el modo simple, la identidad de un proceso del cliente está determinada por elsistema operativo del host. En sistemas similares a Unix, el nombre de usuario es elequivalente de 'whoami'.

Kerberos

En la operación kerberizada, la identidad de un proceso del cliente estádeterminada por sus credenciales de Kerberos. Por ejemplo, en un ambientekerberizado, un usuario puede utilizar la utilidad kinit para obtener un vale deconcesión de vales (TGT) de Kerberos y utilizar klist para determinar el principalactual. Cuando se mapea un principal de Kerberos a un nombre de usuario de HDFS,mediante la propiedad de Hadoop auth_to_local, se descartan todos loscomponentes, con excepción del primario. Por ejemplo, un principal de todd/[email protected] funcionará como el nombre de usuario simple quese mencionó en HDFS.

ECS HDFS se integra con clusters de Hadoop configurados para utilizar modos deautenticación simple o de Kerberos.

¿Qué es ECS HDFS?

122 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 123: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Cuando el clúster de Hadoop está protegido mediante el uso de Kerberos, ECS se puedeconfigurar para otorgar acceso a los usuarios con los principales de Kerberos en elformulario [email protected]; de manera alternativa, cuando ECS utiliza AD paraautenticar a los usuarios, se puede configurar una relación de confianza unidireccionalentre el ambiente de Kerberos y AD, de modo que los usuarios puedan autenticarse consus credenciales de AD, en el formulario [email protected].

Los permisos de archivos y directorios se determinan mediante la umask(fs.permissions.umask-mode). El umask recomendado es 022.

Acceso al depósito como un sistema de archivosEl depósito de ECS proporciona el almacenamiento del sistema de archivos de HDFS.Cuando se crea una depósito, es una indicación para que ECS lo tenga disponible comoun sistema de archivos.

Cuando otorga acceso al sistema de archivos, ECS (a través de la biblioteca de clientesde ECS) utiliza los permisos configurados del depósito y la configuración dentro delarchivo core-site.xml Hadoop para determinar el acceso. Debe asegurarse de haberconfigurado el acceso suficiente para permitir que los usuarios y servicios de Hadooppuedan crear archivos y directorios en el sistema de archivos raíz (el depósito).

El propietario del depósito es el propietario del sistema de archivos raíz, y los permisosasignados a ese propietario en el depósito se traducen en permisos en el sistema dearchivos raíz. Además, se deben asignar las ACL del depósito de modo que cada usuarioque requiera acceder al sistema de archivos de HDFS tenga permiso en el depósito. Estopuede realizarse mediante la adición explícita de ACL de usuario para cada usuario en eldepósito, o mediante la especificación de ACL de grupo personalizado. Consulte ACL degrupo personalizado y grupo predeterminado del depósito en la página 123. Elpropietario del depósito debe ser un usuario de objetos de ECS; otros usuarios no locumplen y pueden ser nombres de usuario de Unix del clúster de Hadoop.

Una vez que los usuarios tienen acceso al sistema de archivos, ya sea debido a que loposeen o se agregaron como usuarios para el depósito, o bien porque son miembros delgrupo al que pertenece el sistema de archivos, los permisos de los archivos y directoriosque creen estarán determinados por la propiedad umask en core-site.xml.

ECS también es compatible con el mecanismo de superusuario y supergrupo parapermitir el acceso a HDFS.

ACL de grupo personalizado y grupo predeterminado del depósitoPuede activar el acceso al depósito según las ACL de usuario o mediante la asignaciónde ACL de grupo personalizado. Los grupos personalizados son nombres de grupos deusuarios según se define en el clúster de Hadoop y permiten que los usuarios de Hadoopaccedan al depósito mediante HDFS.

Los grupos típicos definidos en el clúster de Hadoop son hdfs (con hdfs de usuario),hadoop (por lo general, incluye todos los usuarios de servicio) y los usuarios (incluyeotros usuarios que no son de servicio y que accederán a las aplicaciones en el clúster deHadoop). Puede crear grupos correspondientes en el Portal de ECS y asignarles permisos.

También es posible asignar un grupo predeterminado al depósito. El grupopredeterminado será el grupo asignado al sistema de archivos raíz “/”. Por ejemplo, si elpropietario del depósito es hdfs y el grupo predeterminado está configurado comohadoop, “/” se establecerá en hdfs:hadoop en usuario y grupo, respectivamente. Ungrupo predeterminado también es un grupo personalizado y se mostrará en la ACL degrupo personalizado.

¿Qué es ECS HDFS?

Acceso al depósito como un sistema de archivos 123

Page 124: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Si no se define un grupo predeterminado, la raíz del sistema de archivos no tendráningún grupo, como se muestra a continuación.

drwx---rwx+ - hdfs 0 2015-12-09 12:30 /

Si se define un grupo predeterminado de “hadoop”, la propiedad y los permisos seráncomo se muestra a continuación.

drwxrwxrwx+ - hdfs hadoop 0 2015-12-09 12:28 /

Los directorios creados en la raíz no heredan estos permisos.

Si no se asigna un grupo predeterminado, el propietario del depósito (el propietario delsistema de archivos raíz) puede asignar un grupo cuando acceda al HDFS desde Hadoopcon hdfs dfs - chgrp y hdfs dfs - chmod.

Superusuario y supergrupo de Hadoop

El superusuario en un ambiente Hadoop es el usuario que inicia el NameNode. Por logeneral, hdfs o [email protected]. Con respecto a ECS HDFS, el superusuario es elpropietario del depósito. Por lo tanto, si desea que el superusuario de Hadoop tengaacceso de superusuario al depósito de ECS, debe asegurarse de que hdfs,[email protected] o [email protected] sean propietarios del depósito en caso deutilizar Active Directory para autenticar usuarios en el ambiente de Hadoop.

Para asegurarse de que el cliente de Hadoop tenga acceso de superusuario, tambiénpuede configurar un grupo de superusuarios mediante la propiedaddfs.permissions.superusergroup en core-site.xml. En el modo simple, lacomprobación para determinar si un usuario es miembro del supergrupo se realiza en elcliente mediante la verificación del valor de la propiedad de Hadoopdfs.permissions.supergroup. En el modo de Kerberos, la comprobación para determinarsi un usuario es miembro del supergrupo se realiza en el servidor de ECS.

En general, cuando los depósitos están configurados para que el superusuario deHadoop o un grupo de superusuarios de Hadoop accedan a ellos, el superusuario tendráacceso completo (lectura y escritura) al depósito. Los usuarios sin privilegios desuperusuario normalmente tendrán acceso de lectura, pero eso dependerá de cómo secreó el depósito. Un usuario no debe ser un usuario de objetos de ECS para obteneracceso al depósito. El nombre debe coincidir con un usuario local de Unix, Kerberos o AD(según el modo de autenticación que se utilice).

Como parte de las mejores prácticas, se debe garantizar que el usuario o el principal dehdfs sea el propietario del depósito (superusuario) o un miembro de un grupo desuperusuarios.

Acceso multiprotocolo (crosshead)ECS es compatible con la capacidad de escribir datos en un depósito mediante elprotocolo de S3 y hacer que los datos estén disponibles como archivos a través de HDFS.

El acceso multiprotocolo (también denominado acceso crosshead) significa que losobjetos escritos en el depósito mediante el protocolo de S3 pueden convertirse en elasunto de las tareas de Hadoop, como MapReduce. De manera similar, los directorios ylos archivos que HDFS escribe se pueden leer y modificar mediante los clientes de S3.

A fin de que se pueda acceder a los datos escritos con S3 como archivos, eladministrador del depósito puede configurar un grupo predeterminado en el depósito ylos permisos predeterminados para los archivos y directorios que son propiedad de esegrupo. Este grupo de Unix predeterminado se asigna a los objetos cuando se crean a

¿Qué es ECS HDFS?

124 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 125: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

partir de S3, para que cuando HDFS acceda a ellos no tengan solo un propietario, sinoque también puedan tener la membresía de grupo y los permisos que permiten el accesodesde el clúster de Hadoop.

Los archivos que se crean mediante HDFS y a los que se accede mediante el protocolo deS3 no se verán afectados por los permisos predeterminados; los permisos solo seaplican cuando los archivos se crean mediante el protocolo de S3.

Modo de autenticación Kerberos de HadoopCuando se integran Kerberos y el servidor Active Directory de ECS, el dominio de Kerberosofrece un solo espacio de nombres de usuarios para que los usuarios autenticados conkinit de Hadoop sean reconocidos como usuarios acreditados de ECS.

En un clúster Hadoop que se ejecuta en modo Kerberos, debe haber una confianzaunidireccional entre el dominio de Kerberos y el dominio de Active Directory paraautenticar a los usuarios de ECS.

Las siguientes propiedades de traducción de identidad en core-site.xml se utilizanpara garantizar la traducción de usuario Hadoop a ECS adecuada:l fs.permissions.umask-mode: Establezca el valor en 027.l fs.viprfs.auth.anonymous_translation: Establezca el valor en CURRENT_USER.l fs.viprfs.auth.identity_translation: Establezca el valor a CURRENT_USER_REALM para

que el dominio de usuarios se detecte automáticamente.

Además, debe establecer las siguientes propiedades en core-site.xml para definirun principal de servicio:l viprfs.security.principal

Usuario proxyECS HDFS es compatible con el usuario proxy de Hadoop.

Un usuario proxy permite a un superusuario de Hadoop enviar trabajos o acceder a HDFSen nombre de otro usuario. La función del usuario proxy se puede comparar con lasfuncionalidades del “usuario real” de Unix o Linux, en las que cuando se ejecuta uncomando como un usuario se asume la identidad de un usuario diferente, según seidentifica en la configuración de permisos en el archivo ejecutable.

Puede configurar los usuarios proxy para la suplantación de identidad segura según elespacio de nombres (o el depósito). Los usuarios proxy también son compatibles enmodo simple y de Kerberos. En ambos modos, el administrador puede restringir lassuplantaciones de identidad del proxy mediante las propiedades de“hadoop.proxyuser.*.*”.

Usuario de equivalenciaECS convierte a tres principios parte a dos directores de parte.

Un Kerberos principal, generalmente, está en el formulario primary/instance@realm, apesar de que la instancia no es necesario, loprimary@realmprincipio se aplica a todoslos hosts en el dominio. Si se especifica la instancia, puede utilizarse para designar unhost específico, comojoe/[email protected]/[email protected]. Estos dos principios son para el mismo usuarioprimario (joe), pero están dirigidos a solo se otorga autenticación en los hosts (host1 ohost2).

Este tipo de usuario principal se recomienda proporcionar un mayor nivel de seguridad.Desde la perspectiva ECS, cada principal tendría que se agregarán al ECS. Esto se

¿Qué es ECS HDFS?

Modo de autenticación Kerberos de Hadoop 125

Page 126: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

convierte en bastante engorrosa, por lo que la función de usuario de equivalenciapermite que la autorización de ECS que se realizarán mediante el uso de un principal dedos partes (primary@realm), incluso si se utilizan tres partes principales.

Compatibilidad con SymLinkEn HDFS estándar, un enlace simbólico que no especifica la URI completa a un archivoindica una ruta en la misma instancia de HDFS.

La misma regla se aplica a ECS HDFS. Cuando no especifica la URI completa en un enlacesimbólico, ECS HDFS usa el espacio de nombres y el depósito actuales como la raíz. Paraproporcionar un enlace simbólico a un archivo fuera del espacio de nombres y lacategoría actuales, debe proporcionar la URI completa que incluye el esquema y laautoridad.

Nota

Hadoop 2.2 no es compatible con SymLinks.

Migración de un clúster simple a uno de Hadoop de KerberosECS proporciona soporte para la migración de un ambiente Hadoop simple a unambiente Hadoop seguro mediante Kerberos.

Cuando ECS HDFS se integra a un ambiente Hadoop que utiliza la seguridad simple, losarchivos y directorios que los procesos y usuarios de Hadoop crearon serán propiedad deusuarios no seguros. Si posteriormente migra el clúster de Hadoop para utilizar laseguridad de Kerberos, los archivos y directorios que se escriban en ECS HDFS ya noserán accesibles para esos usuarios.

ECS ofrece una función de migración integrada que le permite proporcionar a ECS unmapeo entre nombres cortos y principales de Kerberos, de modo que se pueda acceder alos archivos pertenecientes a los nombres cortos no seguros como el principal deKerberos mapeado.

Cuando se tiene solo una pequeña cantidad de archivos escritos por usuarios de nombrecorto, se recomienda utilzar el comando chown para que sean propiedad del principal deKerberos. Sin embargo, cuando se tiene una gran cantidad de archivos, la función demigración implica que no es necesario cambiar la propiedad.

Esta función no está implementada para los depósitos, por lo que deberá cambiar la ACLdel depósito para permitir que los principales de Kerberos accedan si se confía el accesoa los usuarios. Sin embargo, si utiliza la membresía de grupo como el medio principalpara permitir el acceso, no tendrá que cambiar la ACL de depósito.

ECS permite el uso de grupos para simplificar el acceso a los depósitos, archivos ydirectorios. Los grupos siempre utilizan nombres simples de Unix, de modo que elnombre del grupo asociado con un depósito, archivo o directorio será el mismo cuandose acceda a ellos desde un clúster simple o kerberizado. Cuando se accede desde unambiente simple, la membresía de grupo se determina en el cuadro de Unix; cuando seaccede desde un clúster kerberizado puede configurar la membresía de grupo mediantela asignación del mapeo.

Si se utilizan credenciales de Active Directory, el mapeo entre los principales de AD y losprincipales de Unix se logra mediante la eliminación del sufijo de dominio, por lo que elusuario [email protected] se convierte en hdfs. Este no es tan flexible como cuandose utiliza el mapeo del principal de Kerberos que permite mapeos tales como [email protected] para hdfs.

¿Qué es ECS HDFS?

126 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 127: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Al usar grupos con Active Directory, se debe haber configurado un proveedor deautenticación en ECS, de modo que se pueda verificar la membresía del grupo.

Interacción del sistema de archivosCuando interactúa directamente con ECS HDFS, quizás note las siguientes diferencias encomparación con la interacción con el sistema de archivos estándar de HDFS:

l Las aplicaciones que esperan que el sistema de archivos sea una instancia deDistributedFileSystem no funcionan. Las aplicaciones codificadas para trabajar con laimplementación de HDFS incorporado requieren cambios para utilizar ECS HDFS.

l ECS HDFS no es compatible con las sumas de verificación de los datos.

l Cuando utilice la función listCorruptFileBlocks, todos los bloques se informan comobueno porque ECS HDFS no tiene noción de los bloques dañados.

l El factor de replicación siempre se informa como una constante N, donde N = 1. Losdatos están protegidos por ECSSLA, no por la replicación de Hadoop.

Aplicaciones de Hadoop compatibles y no compatiblesECS HDFS es compatible con la mayoría de las aplicaciones en el ecosistema de Hadoop.

Aplicaciones compatiblesSon compatibles las siguientes aplicaciones en el ecosistema de Hadoop:

l HDFS

l MapRedeuce

l Yarn

l Pig

l Hive

l HBase

l HAWQ (consulte Configuración de HAWQ de Pivotal en la página 151 para conocerlas versiones compatibles)

Aplicaciones incompatiblesNo son compatibles las siguientes aplicaciones en el ecosistema de Hadoop:

l HttpFS

l Tonalidad

l Cloudera Impala

¿Qué es ECS HDFS?

Interacción del sistema de archivos 127

Page 128: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

¿Qué es ECS HDFS?

128 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 129: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 21

Creación de un depósito para el sistema dearchivos de HDFS

l Creación de un depósito mediante el portal de ...................................................130l Ejemplos de permisos de depósitos de Hadoop y ECS.........................................135

Creación de un depósito para el sistema de archivos de HDFS 129

Page 130: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Creación de un depósito mediante el portal deUtilice el Portal de ECS para crear una categoría configurada para su uso con HDFS.

Antes de comenzar

l Debe ser un administrador de espacio de nombres o un administrador del sistemapara crear un depósito en el portal de ECS.

l Si es un administrador de espacio de nombres puede crear depósitos en el espaciode nombres.

l Si es un administrador del sistema puede crear un depósito que pertenezca acualquier espacio de nombres.

Deberá asegurarse de que los usuarios de Hadoop y de servicios tengan acceso alsistema de archivos HDFS (la categoría) y que los archivos y directorios que creen seanaccesibles para los grupos y usuarios correspondientes.

Puede hacer esto mediante uno de los siguientes procedimientos:

l Haga que al propietario de la categoría el mismo que el Hadoop superusuario, por logeneral, "hdfs" o "[email protected]".

l Active el acceso a la categoría por membresía de grupo:

n Asignar un grupo predeterminado a la categoría. Esto se asignaráautomáticamente las ACL del grupo de personalizado.

n Después de creación de la categoría add Custom grupo ACL para todos los gruposque necesitan obtener acceso.

l Activar el acceso para personas con la adición de las ACL de usuario a la categoría.

l Asegúrese de que los usuarios de Hadoop que necesitan acceso de superusuario aHDFS son parte de la supergroup de Hadoop.

Si desea que los datos de objetos escritos en la categoría mediante protocolos deobjetos para obtener acceso desde HDFS, debe asegurarse de que un grupopredeterminado se asigna a la categoría y ese archivo predeterminado y se establezcanpermisos de directorio para el grupo.

Puede leer más información acerca de los usuarios y permisos en Acceso al depósitocomo un sistema de archivos en la página 123 y se muestran en la categoría típicopermisos de usuario Ejemplos de permisos de depósitos de Hadoop y ECS en la página135.

Procedimiento

1. En el portal de ECS, seleccione Manage > Buckets > New Bucket.

2. Ingrese un nombre en Name para .

Nota

No debe utilizar guiones bajos en los nombres de las categorías, ya que la clase Javadel URI no los admite. Por ejemplo, viprfs://my_bucket.ns.site/ nofuncionará debido a que es un URI no válido y Hadoop no lo comprenderá.

3. Especifique el espacio de nombres que la categoría pertenecerán al.

4. Seleccione un grupo de replicación o deje en blanco para utilizar el grupo dereplicación de predeterminado para el espacio de nombres.

Creación de un depósito para el sistema de archivos de HDFS

130 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 131: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

5. Ingrese el nombre del titular de la categoría.

Para un depósito de HDFS, el propietario de la categoría suele ser "hdfs" o"[email protected]" para las categorías de Kerberos. El usuario de Hadoop hdfs serequieren privilegios de superusuario en HDFS y esto puede lograrse haciendo que elpropietario de la categoría de hdfs. Es posible que otros usuarios de Hadoop tambiénrequieren privilegios de superusuario y se pueden otorgar privilegios de estosmediante la asignación de los usuarios a un grupo y decisiones que un grupo desuperusuario de grupo.

6. No active CAS.

Nota

Una categoría que está destinada a uso como HDFS no puede usarse para CAS. Elcontrol de CAS se desactiva cuando se activa el sistema de archivos.

7. Permitir que cualquier otra función de la categoría que necesite.

Puede activar cualquiera de las siguientes funciones en un depósito de HDFS:

l Cuota

l Cifrado del lado del servidor

l Búsqueda de metadatos

l Acceso durante una interrupción

l Cumplimiento de normas (ver nota)

l Retención del depósito

Consulte Guía del administrador: Creación y configuración de depósitos para obtenerinformación sobre cada uno de estos ajustes y cómo configurarlos.

Nota

No es posible escribir una categoría que está activado el cumplimiento de normas amediante el protocolo HDFS. Sin embargo, los datos escritos mediante protocolos deobjetos se pueden leer desde HDFS.

8. Seleccione Enabled para el sistema de archivos.

Una vez activada, los controles para configurar un grupo predeterminado para elsistema de archivos/categoría y para asignar permisos de grupo para archivos ydirectorios creados en la categoría están disponibles.

9. En el panel sistema de archivos, que se muestra a continuación, escriba un nombrepara la categoría de Default Group.

Creación de un depósito para el sistema de archivos de HDFS

Creación de un depósito mediante el portal de 131

Page 132: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Este grupo será el grupo asociado con el sistema de archivos de la raíz HDFS ypermite a los usuarios de Hadoop que son miembros del grupo para obtener acceso aHDFS.

Es posible que un grupo, como "hdfs" o "hadoop" a la que pertenecen los serviciosque necesita acceder a los datos en el HDFS, pero puede ser cualquier nombre degrupo tiene sentido para su configuración de Hadoop. Por ejemplo, el administradorpodría querer todos los archivos de S3 cargados a la categoría que se asignará agrupo 'S3DataUsers'. Todos los archivos de S3 tendrán este grupo asignado a ellos.En el nodo de Hadoop, el Administrador de Hadoop tendrán los usuarios que sonmiembros del grupo 'S3DataUsers'. S3DataUsers puede ser un grupo de Linux, o ungrupo de Active Directory. Cuando los usuarios de Hadoop desean acceder a los datosde S3, podrán hacerlo debido a que los archivos se cargan y asignados a ese grupo

En la creación de la categoría, se debe especificar este grupo. Si no lo está, el grupotendría que se asignará más adelante desde Hadoop por el propietario del sistema dearchivos.

10. Configure los permisos predeterminados para archivos y directorios creados en lacategoría utilizando el protocolo de objeto.

Estos configuración se usan para aplicar los permisos de grupo de Unix a objetoscreados mediante protocolos de objetos. Estos permisos se aplicarán al grupo deHDFS (el grupo predeterminado de categoría) cuando se enumera el objeto o eldirectorio de Hadoop. Puede consultar Acceso multiprotocolo (crosshead) en lapágina 124 para obtener más información sobre cómo configurar el grupo DefaultGroup y permisos para el sistema de archivos.

a. Definir los permisos de archivo de grupo, haga clic en los botones de permisoadecuado.

Normalmente, se establece a lectura y permisos de ejecución.

b. Definir los permisos de directorio de grupo, haga clic en los botones de permisoadecuado.

Normalmente, se establece a lectura y permisos de ejecución.

11. Seleccione Save para crear el depósito.

Categoría de grupo personalizado de conjunto de ACLEl portal de ECS permite que la ACL de un depósito se configure para un usuario o paraun grupo predefinido. ACL de categoría pueden otorgarse para un grupo de usuarios

Creación de un depósito para el sistema de archivos de HDFS

132 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 133: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

(Custom grupo ACL) o para usuarios individuales, o una combinación de ambos. Porejemplo, puede otorgar acceso de categoría completo a un grupo de usuarios, perotambién puede restringir (o incluso denegar) categoría acceso a usuarios individuales enese grupo.

Antes de comenzar

l Debe ser un administrador de espacio de nombres o un administrador del sistemapara editar la ACL de grupo de un depósito.

l Si es un administrador de espacio de nombres, puede editar la configuración de ACLde grupo de los depósitos que pertenezcan a su espacio de nombres.

l Si es un administrador del sistema, puede editar la configuración de ACL de grupo deun depósito que pertenezca a cualquier espacio de nombres.

Cuando se obtiene acceso a la categoría mediante HDFS, con acceso de multiprotocoloECS, miembros del grupo de Unix podrá acceder a la categoría.

Procedimiento

1. En el portal de ECS, seleccione Manage > Buckets.

2. En la tabla de depósitos, seleccione la acción Edit ACL para el depósito en el quedesee cambiar la configuración.

3. Para seleccionar la ACL para un grupo, seleccione Group ACLs.

4. En la página Custom Group User ACLs, seleccione Add.

5. Escriba un nombre para el grupo.

Este nombre puede ser un grupo de Unix/Linux, o un grupo de Active Directory.

Creación de un depósito para el sistema de archivos de HDFS

Categoría de grupo personalizado de conjunto de ACL 133

Page 134: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

6. Definir los permisos para el grupo.

Deberá asignar lectura, escritura, ejecutar y ACL de lectura como mínimo.

7. Seleccione Guardar.

Permisos de ACL del depósito para un usuarioEl portal de ECS permite que la ACL de un depósito se configure para un usuario o paraun grupo predefinido. El propietario de la categoría se le asignan permisosautomáticamente. Otros usuarios de Hadoop se pueden asignar las ACL de usuario parapermitir el acceso a la categoría/sistema de archivos, de manera alternativa que puedaobtener acceso a la categoría por ser un miembro del grupo que se ha asignado la ACLdel grupo de personalizado.

Antes de comenzar

l Debe ser un administrador de espacio de nombres o un administrador del sistemapara editar la ACL de un depósito.

l Si es un administrador de espacio de nombres, puede editar la configuración de ACLde los depósitos que pertenezcan a su espacio de nombres.

l Si es un administrador del sistema, puede editar la configuración de ACL de undepósito que pertenezca a cualquier espacio de nombres.

Procedimiento

1. En el portal de ECS, seleccione Manage > Buckets.

2. En la tabla de depósitos, seleccione la acción Edit ACL para el depósito en el quedesee cambiar la configuración.

3. Para establecer los permisos de ACL para un usuario, seleccione el botón User ACLs.

4. Puede editar los permisos de un usuario que ya tenga asignados permisos, o puedeagregar un usuario al que desee asignar permisos.

l Para establecer (o eliminar) permisos de ACL para un usuario que ya tengapermisos, seleccione Edit (o Remove) en la columna Action de la tabla de ACL.

l Para agregar un usuario al que desee asignar permisos, seleccione Add.

El usuario que haya definido como propietario del depósito ya debe tener asignadoslos permisos predeterminados.

La categoría que se muestra a continuación es propiedad de los usuarios de "hdfs" y,como el propietario, se ha proporcionado en el control completo. Control completo setraduce en permisos de lectura-escritura ejecutar en un ambiente Hadoop/Unix.Usuario que ha sido darle "sally" lectura-permisos de ejecución para permitir que elusuario acceder a la categoría.

Creación de un depósito para el sistema de archivos de HDFS

134 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 135: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Se proporciona más información sobre los privilegios de ACL en Guía deladministrador: Creación y configuración de depósitos.

5. Si agregó una ACL, ingrese el nombre de usuario del usuario al que se aplicarán lospermisos.

6. Especifique los permisos que desee aplicar al usuario.

7. Seleccione Guardar.

Ejemplos de permisos de depósitos de Hadoop y ECSAquí se proporcionan ejemplos de la relación entre los usuarios de Hadoop y los grupos,así como de los usuarios y grupos respecto al permiso asignado para acceder al depósitotravés de las ACL de usuario de ECS y las ACL del grupo personalizado.

En la creación de depósitos, el propietario del depósito y el grupo predeterminadodetermina el propietario y la asignación de grupo para el depósito cuando se accedemediante HDFS y las ACL se asignan automáticamente a ellos. Un depósito debe tenersiempre un propietario; sin embargo, no se tiene que asignar un grupo predeterminado.Se pueden asignar ACL en el depósito a otros usuarios y grupos (llamados grupospersonalizados), además de al propietario del depósito y al grupo predeterminado. LasACL que asignan de esta manera se traducen en permisos para los usuarios de Hadoop.

Tabla 16 Ejemplos de permisos de depósitos para acceder al sistema de archivos en modo simple

Usuarios y grupos Hadoop Permisos dedepósitos

Acceso al depósito o al sistemade archivos

Acceso al depósito mediante la ACL del grupo

Usuarios (servicio)

hdfs. mapred, yarn, hive, pig,postgres

Usuarios (aplicaciones)

sally, fred

Grupos

hdfs (hdfs)

Propietario deldepósito

hdfs

Grupopredeterminado

ACL del grupopersonalizado

hadoop, usuarios

Las ACL de grupo personalizado seconfiguran en el depósito parahabilitar al grupo de usuarios yhadoop a tener permisos sobre elsistema de archivos del depósito oraíz

Este ejemplo asume que hdfs es elsuperusuario, el usuario que inicióel namenode.

Creación de un depósito para el sistema de archivos de HDFS

Ejemplos de permisos de depósitos de Hadoop y ECS 135

Page 136: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 16 Ejemplos de permisos de depósitos para acceder al sistema de archivos en modosimple (continuación)

Usuarios y grupos Hadoop Permisos dedepósitos

Acceso al depósito o al sistemade archivos

hadoop (hdfs, mapred,yarn, hive, pig)

usuarios (sally, fred)

Supergrupo

hdfs

ACL de usuario

hdfs(propietario),postgres

Nota

El usuario postgres es el usuario

HAWQ.

Depósito creado por el usuario s3, acceso crosshead

Usuarios (servicio)

hdfs. mapred, yarn, hive, pig,postgres

Usuarios (aplicaciones)

sally, fred

Grupos

hdfs (hdfs)

hadoop (hdfs, mapred,yarn, hive, pig)

usuarios (sally, fred)

Supergrupo

hdfs

Propietario deldepósito

s3user

Grupopredeterminado

hadoop

ACL del grupopersonalizado

hadoop(predeterminado)

ACL de usuario

s3user(propietario),sally, fred,postgres

Cuando desea que los objetosescritos por un usuario de s3 seanaccesibles como archivos de HDFS,se debe definir un grupopredeterminado (hadoop), demodo que se otorguen lospermisos a los usuarios y serviciosde Hadoop sobre los archivosdebido a la membresía de grupo.

El grupo predeterminado tieneautomáticamente las ACL del grupopersonalizado en el depósito osistema de archivos. Como estáconfigurado el grupopredeterminado, el sistema dearchivos raíz tendrá 777:

drwxrwxrwx+ - s3user hadoop 0 2015-12-09 12:28 /

Se puede otorgar acceso a losusuarios mediante la adición deACL de usuario o de grupopersonalizado para el grupo al quepertenecen los usuarios.

Tabla 17 Ejemplos de permisos de depósitos para acceder al sistema de archivos en modoKerberos

Usuario Hadoop Permisos dedepósitos

Acceso al depósito o al sistemade archivos

Usuarios (servicio)

[email protected]@REALM.COM,[email protected],[email protected],

Propietario deldepósito

[email protected]

Las ACL de grupo personalizado seconfiguran en el depósito parahabilitar al grupo de usuarios yhadoop a tener permisos sobre elsistema de archivos del depósito oraíz

Creación de un depósito para el sistema de archivos de HDFS

136 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 137: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 17 Ejemplos de permisos de depósitos para acceder al sistema de archivos en modoKerberos

Usuario Hadoop Permisos dedepósitos

Acceso al depósito o al sistemade archivos

[email protected],[email protected]

Usuarios (aplicaciones)

[email protected],[email protected], [email protected]

Grupos

hdfs ([email protected])

hadoop([email protected],[email protected],[email protected],[email protected],[email protected])

usuarios([email protected],[email protected])

Supergrupo

hdfs

Grupopredeterminado

hadoop

ACL del grupopersonalizado

hadoop(predeterminado), usuarios

ACL de usuario

[email protected](propietario),[email protected]

La información del usuario desdeel clúster de Hadoop debe estardisponible para ECS, a fin de quepueda proporcionar acceso seguroal depósito. Se proporcionainformación acerca de estosmetadatos en: Ejemplos depermisos de depósitos de Hadoopy ECS en la página 135 y seproporciona un archivo demetadatos de ejemplo aquí en lapágina 196.

Creación de un depósito para el sistema de archivos de HDFS

Ejemplos de permisos de depósitos de Hadoop y ECS 137

Page 138: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Creación de un depósito para el sistema de archivos de HDFS

138 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 139: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 22

Utilice Hortonworks Ambari para configurarHadoop con ECS HDFS

l Implementación de un clúster de Hortonworks con Ambari................................. 140l Descargar Ambari................................................................................................140l Descargue ECS HDFS Client Library......................................................................140l Configurar un catálogo local desde el cual desea implementar la librería de cliente

de ECS................................................................................................................ 140l Instale el servidor de .......................................................................................... 141l Activar la plataforma de Ambari Hadoop ECS.......................................................141l Instalación manual del agente de Ambari............................................................142l Instalación de Hadoop ....................................................................................... 142

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS 139

Page 140: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Implementación de un clúster de Hortonworks con AmbariAmbari facilita la implementación de un clúster de Hortonworks Hadoop y utiliza elconcepto de plataforma para reunir los servicios que se requieren para una versiónespecífica de Hadoop. Hortonworks 2.3 (Hadoop 2.7) proporciona una plataforma deHadoop personalizada para ECS que simplifica la integración de Hadoop a ECS. Paraotras versiones de Hortonworks puede utilizar Ambari en su modo normal.

La plataforma de Hortonworks Hadoop ECS (HDP ECS) facilita la integración de ECS HDFSa Hadoop mediante la implementación de ECS Client Library en todos los nodos deHadoop y la simplificación de la configuración del clúster para utilizar ECS HDFS.

Para implementar y configurar la plataforma de Hortonworks HDP ECS, ejecute lossiguientes pasos:

1. Descargar Ambari en la página 140

2. Descargue ECS HDFS Client Library en la página 140

3. Configure un repositorio local desde el cual desea implementar ECS Client Library enla página 140

4. Instale el servidor de Ambari en la página 141

5. Active la plataforma de Ambari ECS en la página 141

6. Instale el agente de Ambari de forma manual en la página 142

7. Instale el clúster de Hadoop en la página 142

Descargar AmbariDescargue Ambari 2.2.

Ambari puede utilizarse para instalar y administrar una distribución de Hadoop (HDP).Ambari 2.2 proporciona la capacidad de instalar la plataforma ECS de HadoopHortonworks.

Puede descargar el repositorio de Ambari en el siguiente vínculo:

http://hortonworks.com/hdp/downloads/

Debe descargar el repositorio de Ambari para todos los nodos en el clúster a fin depermitir que el servidor Ambari se instale en el nodo de servidor y que el agente deAmbari se instale en todos los nodos.

Descargue ECS HDFS Client LibraryDescargue ECS HDFS Client Library RPM desde la zona de soporte de ECS.

http://support.emc.com

Configurar un catálogo local desde el cual desea implementar lalibrería de cliente de ECS

Configure un repositorio local desde el cual Ambari puede implementar la librería decliente de ECS con la plataforma Hadoop.

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

140 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 141: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Antes de comenzar

Configuración de un repositorio normalmente implica el uso de un gerente de paquetepara crear un conjunto de metadatos acerca de los paquetes de contenidos en undirectorio del repositorio y proporciona un mecanismo para acceder al directorio delrepositorio, como a través de HTTP, o mediante una red.

Hay una cantidad de herramientas que puede utilizarse para crear un repositorio.Información sobre el uso de yum se proporciona crear un catálogo de paquetes aquí.

Procedimiento

1. Cree el repositorio local.

2. Agregue el RPM de librería de cliente de ECS en el repositorio local.

Instale el servidor de .Instale el servidor de .

Los comandos básicos para la instalación y configuración de la Ambari servidor según loproporcionado en este procedimiento. Puede encontrar información más completa en ladocumentación de Hortonworks, aquí.

Procedimiento

1. Instale el MDM con el siguiente comando:

yum install ambari-server -y

2. Configurar el Ambari servidor, como se indica a continuación.

ambari-server setup -s

3. Inicie el servidor de Ambari, como se indica a continuación.

ambari-server start

Activar la plataforma de Ambari Hadoop ECSLa plataforma de Hadoop Hortonworks (HDP) ECS está desactivada de formapredeterminada y debe activarse antes de se pueda seleccionar para la implementación.Se puede activar la plataforma desde la línea de comandos.

Procedimiento

1. Desde la máquina del servidor de Ambari, abra una línea de comandos.

2. Ejecute el siguiente comando:

ambari-server enable-stack --stack HDP --version 2.3.ECS

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

Instale el servidor de . 141

Page 142: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Si desea activar más de una plataforma, puede incluir la opción --version paracada plataforma adicional. Por ejemplo:

ambari-server enable-stack --stack HDP --version 2.3.ECS --version <stack_name>

Instalación manual del agente de AmbariLos pasos para instalar el agente de Ambari de forma manual en cada nodo seproporcionan en este procedimiento.

Antes de comenzar

l El repositorio de Ambari debe estar presente en cada nodo del clúster a fin deinstalar el agente en el nodo.

Procedimiento

1. En uno de los hosts subordinados de Ambari, abra una línea de comandos.

2. Instale el agente de Ambari con el siguiente comando:

yum install ambari-agent -y

3. Obtenga el nombre de host del nodo del servidor de Ambari.

Puede hacerlo mediante el comando hostname.

4. Editar el archivo ambari-agent.ini para especificar el nombre de host delservidor de Ambari.

Por ejemplo, si utiliza vi, se escribiría:

vi /etc/ambari-agent/conf/ambari-agent.ini

El nombre de host del servidor en los parámetros de [server] es el que se muestra acontinuación. Debe reemplazar el “localhost” con el nombre de host del servidor deAmbari.

[server]hostname=localhosturl_port=8440secure_url_port=8441

5. Inicie al agente de Ambari.

ambari-agent start

6. Repita estos pasos para cada nodo subordinado de Ambari. Si desea utilizar el nododel servidor de Ambari como un nodo de datos en el clúster de Hadoop, también debeinstalar el agente en esa máquina.

Instalación de HadoopInstale el clúster de Hadoop.

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

142 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 143: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Procedimiento

1. Siga las instrucciones del asistente de Ambari para instalar un clúster de Hadoop.

Los pasos siguientes identifican las principales funciones de integración de ECS.

Consulte la documentación de Hortonworks cuando requiera aclaración sobre losrequisitos de algún paso.

2. Cuando se le solicite que indique la plataforma que ha de implementarse, seleccionela plataforma de HDP ECS.

Por ejemplo, HDP 2.3.ECS, como se muestra a continuación.

3. Especifique el repositorio donde se ubica el RPM de la ECS Client Library de ECS.

Para su sistema operativo, reemplace http://ECS_CLIENT_REPO/ con laubicación del repositorio donde se ubica el RPM de la ECS Client Library.

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

Instalación de Hadoop 143

Page 144: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

4. Ingrese la lista de hosts para el clúster Haddop y seleccione Perform ManualRegistration en Host Registration Information.

Nota

Si crea una clave de protocolo SSH y la implementa en todos los nodos, puede utilizareste mecanismo para implementar el agente de Ambari en todos los nodos. Como seimplementó de forma manual, esto no es necesario.

5. Deberá proporcionar las propiedades para personalizar las operaciones de losservicios de Hadoop Hive y Hbase.

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

144 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 145: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

a. Para Hive, deberá proporcionar una base de datos de la tienda de metadatos.

Puede indicarle a Ambari que cree una nueva base de datos (nueva base de datosde MySQL). En cuyo caso, simplemente deberá proporcionar una contraseña parala nueva base de datos. Como alternativa, puede indicarle a Ambari que utiliceuna base de datos existente.

b. Para Hbase, se debe designar hbase.rootdir en un depósito de ECS (sistemade archivos HDFS).

Por ejemplo:

viprfs://mybucket.mynamespace.Site1/apps/hbase/data

6. Deberá proporcionar las propiedades para personalizar las operaciones del serviciode Hadoop HDFS/ECS.

Como parte de la personalización de la plataforma de Hortonworks Hadoop ECS, seagregaron propiedades de core-site específicas de ECS. Algunas de estaspropiedades son fijas y no deben modificarse nunca. Algunas está configuradas enlos valores predeterminados que son adecuados para un ambiente de modo simplede Hadoop y solo deben modificarse cuando se configure el ambiente para utilizar laseguridad de Kerberos.

Algunos parámetros son específicos de su clúster y los debe proporcionar.

Ingrese las propiedades de configuración de core-site de ECS/HDFS para conocer laspropiedades faltantes.

a. Ingrese un valor para la propiedad del sistema de archivos predeterminada:fs.defaultFS

Esto es:

viprfs://<bucket>.<namespace>.<installation>

Por ejemplo:

viprfs://mybucket.mynamespace.Site1

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

Instalación de Hadoop 145

Page 146: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

b. Ingrese las direcciones de nodo ECS en la propiedadfs.vipr.installation.<site>.hosts (de forma predeterminada default:fs.vipr.installation.Site1.hosts).

Esto puede ser una lista de direcciones IP separadas por comas, por ejemplo:

203.0.113.10,203.0.113.11,203.0.113.12

Puede obtener más información acerca de las propiedades en Edición del archivoHadoop core-site.xml en la página 152, que describe la configuración depropiedades para un clúster simple de Hadoop.

Resultados

Una vez instalada, se puede personalizar la interfaz de Ambari para el clúster de HadoopECS, de modo que el servicio de HDFS se muestre como ECS. Además, las propiedadescore-site.xml específicas de ECS que normalmente se deberían agregar ya estánpresentes, y se han establecido los valores predeterminados para la mayoría de losparámetros.La interfaz personalizada se muestra a continuación:

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

146 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 147: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 23

Configuración de la integración de ECS HDFS conun clúster simple de Hadoop

l Configuración de la integración de ECS HDFS con un clúster simple de Hadoop...148l Planificación de la integración de ECS HDFS y Hadoop........................................ 148l Obtain the ECS HDFS installation and support package....................................... 149l Implementación de la biblioteca de clientes HDFS de ECS...................................149l Configuración de HAWQ de Pivotal...................................................................... 151l Edición del archivo Hadoop core-site.xml............................................................ 152l Inicialización de GP Database ............................................................................ 156l Edición de HBASE hbase-site.xml........................................................................156l Reiniciar y verificar el acceso...............................................................................157

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop 147

Page 148: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Configuración de la integración de ECS HDFS con un clústersimple de Hadoop

Este procedimiento describe cómo configurar su distribuciónHadoop existente parautilizar la infraestructura de almacenamiento deECS con ECS HDFS.

Si está utilizando la distribución de Hortonworks Ambari, puede utilizar el procedimientodescrito en Implementación de un clúster de Hortonworks con Ambari en la página 140para instalar y configurar Hadoop.

Para ejecutar este procedimiento de integración, debe tener:

l Conocimiento práctico de su distribución de Hadoop y sus herramientas asociadas.

l Las credenciales de Hadoop que le permiten iniciar sesión en los nodos de Hadoop,modificar los archivos de sistema de Hadoop e iniciar y detener servicios de Hadoop.

Se deben realizar los siguientes pasos:

1. Planificación de la integración de ECS HDFS y Hadoop en la página 148

2. Obtain the ECS HDFS installation and support package en la página 149

3. Implementación de la biblioteca de clientes HDFS de ECS en la página 149 (no esnecesario si ha utilizado Ambari Hortoworks para ECS)

4. (Opcional) Configuración de HAWQ de Pivotal en la página 151

5. Edición del archivo Hadoop core-site.xml en la página 152

6. (Si utiliza HAWQ) Inicialización de GP Database en la página 156

7. Edición de HBASE hbase-site.xml en la página 156

8. Reiniciar y verificar el acceso en la página 157

Planificación de la integración de ECS HDFS y HadoopUtilice esta lista para verificar que tiene la información necesaria a fin de garantizar unaintegración correcta.

Tabla 18 Prerrequisitos de configuración de ECS HDFS

Element Qué se debe hacer

Cluster de Hadoop Verifique que el cluster esté instalado y en funcionamiento.

Registre las credenciales de administrador para utilizarlasposteriormente en este procedimiento.

Clúster ECS: nodosECS Registre las direcciones IP del nodo ECS para utilizarlas posteriormenteen este procedimiento.

Clúster ECS: depósito HDFS requiere que se cree un depósito habilitado para HDFS dentro deun grupo de replicación de ECS, y se accede al depósito como unsistema de archivos utilizando el nombre del espacio de nombres y deldepósito.

Registre el nombre del depósito.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

148 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 149: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 18 Prerrequisitos de configuración de ECS HDFS (continuación)

Element Qué se debe hacer

Clúster ECS: espaciode nombre del grupode usuarios

Verifique que un espacio de nombres de grupo de usuarios estéconfigurado. Registre el nombre.

Obtain the ECS HDFS installation and support packageThe ECS HDFS Client Library, Conector HAWQ and HDFS support tools are provided in aHDFS Client ZIP file, hdfsclient-<ECS version>-<version>.zip, that you candownload from the ECS support pages on support.emc.com.

The ZIP file contains /playbooks and /client directories. Before you unzip the file,create a directory to hold the zip contents (your unzip tool might do this for you), thenextract the contents to that directory. After you extract the files, the directories willcontain the following:

l /playbooks: Contains Ansible playbooks for configuring a secure Hadoopenvironment to talk to ECS HDFS.

l /client: Contains the following files:

n ECS Client Library (ViPPRFS) JAR files (viprfs-client-<ECS version>-hadoop-<Hadoop version>.jar): Used to configure different Hadoopdistributions.

n libvipr-<version>.so: Conector HAWQ used to configure Pivotal HAWQ foruse with ECS HDFS.

Nota

Use of HAWQ with ECS in a Kerberos environment is undergoing qualificationtesting. Please contact your EMC representative to obtain the latest version of thelibrary and the supported versions.

Implementación de la biblioteca de clientes HDFS de ECSUtilice este procedimiento para colocar los archivos JAR de la biblioteca de clientes HDFSde ECS en la ruta de clase de cada nodo del cliente en el clúster de Hadoop.

Antes de comenzar

Obtenga la biblioteca de clientes HDFS de ECS para la distribución de Hadoop desde elsitio de soporte de EMC para ECS como se describe en Obtain the ECS HDFS installationand support package en la página 149.

La biblioteca de clientes HDFS utiliza la siguiente convención de nomenclaturaviprfs-client-<ECS version>-hadoop-<Hadoop version>.jar y los archivos JARpara su uso con cada versión se enumeran en la siguiente tabla.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

Obtain the ECS HDFS installation and support package 149

Page 150: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 19 Biblioteca de clientes HDFS de ECS

Distribución deHadoop

Versión ECS HDFS JAR

Pivotal HD Pivotal 2.1 viprfs-client-2.2.0.0-hadoop-2.2.jar (Hadoop 2.3, utilizar cliente2.2)

Pivotal 3.0 viprfs-client-2.2.0.0-hadoop-2.6.jar

Pivotal 3.0.1 viprfs-client-2.2.0.0-hadoop-2.6.jar

Cloudera CDH 5.0 viprfs-client-2.2.0.0-hadoop-2.2.jar

CDH 5.1 viprfs-client-2.2.0.0-hadoop-2.3.jar

CDH 5.2 viprfs-client-2.2.0.0-hadoop-2.3.jar (Hadoop 2.5, no utilizar cliente2.5)

CDH 5.3 viprfs-client-2.2.0.0-hadoop-2.3.jar (Hadoop 2.5, no utilizar cliente2.5)

CDH 5.4 viprfs-client-2.2.0.0-hadoop-2.6.jar

CDH 5.5 viprfs-client-2.2.0.0-hadoop-2.6.jar

Hortonworks HWX 2.0 viprfs-client-2.2.0.0-hadoop-2.2.jar

HWX 2.1 viprfs-client-2.2.0.0-hadoop-2.3.jar (Hadoop 2.5, no utilizar cliente2.4)

HWX 2.2 viprfs-client-2.2.0.0-hadoop-2.6.jar

HWX 2.3 viprfs-client-2.2.0.0-hadoop-2.7.jar

Nota

l Para Hortonworks 2.3 (Hadoop 2.7), puede usar Ambari para instalar una versiónHDP que está preconfigurada de acuerdo con la biblioteca de clientes de ECS.

Procedimiento

1. Inicie sesión en un nodo cliente de ECS.

2. Ejecute el comando classpath para obtener la lista de directorios en el classpath:

# hadoop classpath3. Copie los archivos JAR de la biblioteca de clientes HDFS de ECS en una de las carpetas

enumeradas por el comando classpath que ocurre después de la carpeta /conf.

Por ejemplo, el resultado del comando classpath normalmente se ve así:

/usr/hdp/2.2.0.0-1256/hadoop/conf:/usr/hdp/2.2.0.0-1256/hadoop/lib/*:/usr/hdp/2.2.0.0-1256/hadoop/.//*:/usr/hdp/2.2.0.0-1256/hadoop-hdfs/./:/usr/hdp/2.2.0.0-1256/hadoop-hdfs/lib/*:/

Con la carpeta /conf primero. Se sugiere agregar el archivo JAR de la biblioteca declientes a la primera carpeta /lib, la cual es, por lo general, según se indica en latabla a continuación.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

150 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 151: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Distribución de ECS Ubicación de la ruta de clases (sugerida)

Pivotal HD /usr/lib/gphd/hadoop/libCloudera /usr/lib/hadoop/libHortonworks /usr/hdp/<version>/hadoop/lib

4. Repita este procedimiento en cada nodo cliente de ECS.

5. Actualizar los parámetros de configuración de classpath para MapReduce, yarn, yespecificar también de forma explícita la ruta al archivo JAR para Tez.

A continuación, se proporciona un ejemplo de estos parámetros de configuración:

mapreduce.application.classpath $PWD/mr-framework/hadoop/share/hadoop/mapreduce/*:$PWD/mr-framework/hadoop/share/hadoop/mapreduce/lib/*:$PWD/mr-framework/hadoop/share/hadoop/common/*:$PWD/mr-framework/hadoop/share/hadoop/common/lib/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/lib/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/lib/*:$PWD/mr-framework/hadoop/share/hadoop/tools/lib/*:/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure:/usr/hdp/2.3.2.0-2950/hadoop/lib/*

yarn.application.classpath $HADOOP_CONF_DIR,/usr/hdp/current/hadoop-client/*,/usr/hdp/current/hadoop-client/lib/*,/usr/hdp/current/hadoop-hdfs-client/*,/usr/hdp/current/hadoop-hdfs-client/lib/*,/usr/hdp/current/hadoop-yarn-client/*,/usr/hdp/current/hadoop-yarn-client/lib/*,/usr/hdp/2.3.2.0-2950/hadoop/lib/*

tez.cluster.additional.classpath.prefix /usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure:/usr/hdp/2.3.2.0-2950/hadoop/lib/viprfs-client-2.2.0.0-hadoop-2.7.jar

Configuración de HAWQ de PivotalPara utilizar el servicio de Pivotal HAWQ con ECS HDFS, debe reemplazar la lib de HDFSde Pivotal por Conector HAWQ (libvipr-<version>.so).

Antes de comenzar

Debe garantizar que se cumplan los siguientes requisitos previos:

l Asegúrese de que el usuario postgres de HAWQ tenga acceso al depósitomediante la asignación de ACL de usuario o grupo.

Se proporciona el siguiente conector para HAWQ y es compatible con la distribución deHadoop y la versión de HAWQ que se muestra a continuación:

Tabla 20 Conector para HAWQ de ECS

Distribución deHadoop

DistribuciónVersión

Versión deHAWQ

ECSConector HAWQ

Pivotal HD Pivotal 3.0.1 HAWQ 1.3.1 libvipr-2.2.0.0.so

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

Configuración de HAWQ de Pivotal 151

Page 152: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Cada vez que realiza tareas de reconfiguración, implementación o actualizaciónmediante icm_client, verifique que los vínculos simbólicos libhdfs3 aún sedireccionen a libvipr-<version>.so. ECS HDFS no utiliza el archivo deconfiguración de HAWQ, hdfs-client.xml.

Procedimiento

1. Copie el libvipr-<version>.so obtenido a partir del zip del cliente de soporte einstalación de ECS en un directorio local en cada nodo maestro de HAWQ y delsegmento en el clúster de Pivotal.

Por ejemplo: /usr/local/vipr/libvipr-<version>.so2. Actualice libhdfs symlink en el directorio de instalación de HAWQ del nodo

maestro y de segmento de Pivotal (<HAWQ_INSTALL_DIR >)

Por ejemplo:

<HAWQ_INSTALL_DIR>/lib/libhdfs3.so -> /usr/local/vipr/libvipr-<version>.so unlink <HAWQ_INSTALL_DIR>/lib/libhdfs3.so ln -s /usr/local/vipr/libvipr-<version>.so <HAWQ_INSTALL_DIR>/lib/libhdfs3.so

<HAWQ_INSTALL_DIR>/lib/libhdfs3.so.1 -> /usr/local/vipr/libvipr-<version>.so unlink <HAWQ_INSTALL_DIR>/lib/libhdfs3.so.1 ln -s /usr/local/vipr/libvipr-<version>.so <HAWQ_INSTALL_DIR>/lib/libhdfs3.so.1

3. Actualice el symlink en cada nodo del cluster de Pivotal.

Edición del archivo Hadoop core-site.xmlUtilice este procedimiento para actualizar core-site.xml con las propiedadesnecesarias para integrar ECS HDFS con un clúster que utilice el modo de autenticaciónsimple.

Antes de comenzar

l Siempre es preferible agregar o administrar estas propiedades mediante una interfazdel usuario de administración de Hadoop para reducir la posibilidad de errores ygarantizar que estos cambios sean persistentes en todo el clúster. Editarmanualmente los archivos en múltiples nodos de Hadoop es difícil y está propenso aerrores. Debe tener un conjunto de parámetros de conexión del usuario que lohabiliten a iniciar sesión en la interfaz del usuario de administración para sudistribución.

l Si modifica core-site.xml directamente, debe tener un conjunto de parámetrosde conexión del usuario que lo habiliten a iniciar sesión en los nodos de Hadoop ymodificar core-site.xml.

Algunas propiedades son específicos de ECS y, por lo general, se necesitan paraagregarse a core-site.xml. Si utiliza el paquete de discos de Hortonworks AmbariHadoop ECS, los parámetros específicos de ECS ya estarán presentes.

Si planea editar core-site.xml directamente, la ubicación de core-site.xmldepende de la distribución que utilice, como se muestra en la siguiente tabla.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

152 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 153: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 21 ubicaciones de core-site.xml

Distribución deHadoop

ubicación de core-site.xml Nodos poractualizar

Pivotal HD /etc/ghpd/hadoop/conf ComputeMaster yclientes

Cloudera /etc/hadoop/conf Todos los nodoscliente

Hortonworks /etc/hadoop/conf Todos los nodos

core-site.xml reside en cada uno de los nodos en el cluster de Hadoop. Debemodificar las mismas propiedades en cada instancia. Puede hacer el cambio en un nodo,y luego utilizar el comando de copia segura (scp) para copiar el archivo en los demásnodos del cluster.

Consulte la para obtener más información sobre cada propiedad que debe configurar.

Procedimiento

1. Si está utilizando una interfaz de administración, como Ambari o Cloudera Manager.Inicie sesión como administrador y vaya a la página de configuración de HDFS.

2. Si planea realizar los cambios mediante edición manual de core-site.xml, sigaestos pasos:

a. Inicie sesión en uno de los nodos de HDFS donde se encuentra core-site.xml.

b. Haga una copia de respaldo de core-site.xml.

cp core-site.xml core-site.backupc. Con el editor de texto que desee, abra core-site.xml para editarlo.

3. Agregue las propiedades y los valores siguientes para definir clases de Java queimplementan el sistema de archivos de ECS HDFS:

<property><name>fs.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

<property> <name>fs.AbstractFileSystem.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

4. Agregue la propiedad fs.vipr.installations. En el siguiente ejemplo, el valor seconfigura en Site1.

<property> <name>fs.vipr.installations</name> <value>Site1</value></property>

5. Agregue la propiedad fs.vipr.installation.[installation_name].hosts como una lista denodos de datos de ECS separados por comas o de direcciones IP del balanceador decarga separadas por comas. En el siguiente ejemplo, installation_name se configuraen Site1.

<property> <name>fs.vipr.installation.Site1.hosts</name>

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

Edición del archivo Hadoop core-site.xml 153

Page 154: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

<value>203.0.113.10,203.0.113.11,203.0.113.12</value></property>

6. Agregue la propiedad fs.vipr.installation.[installation_name].resolution y configúrelaen uno de los siguientes valores:

Opción Descripción

dynamic Utilícela cuando tiene acceso a nodos de datos de ECS directamente sinun balanceador de carga.

fixed Utilícela cuando tiene acceso a nodos de datos de ECS con unbalanceador de carga.

En el siguiente ejemplo, installation_name se configura en Site1.

<property> <name>fs.vipr.installation.Site1.resolution</name> <value>dynamic</value></property>

a. Si configura fs.vipr.installation.[installation_name].resolution como dynamic,agregue la propiedad fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms a fin de especificar lafrecuencia de consulta a ECS para la lista de nodos activos.

En el siguiente ejemplo, installation_name se configura en Site1.

<property><name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name><value>900000</value></property>

7. Busque la propiedad fs.defaultFS y modifique el valor para especificar el URI delsistema de archivos de ECS.

Esta configuración es opcional, y puede especificar la URL completa del sistema dearchivos para conectarse a ViPRFS ECS.

Utilice el siguiente formato: viprfs://<bucket_name.namespace.installation_name, donde

l bucket_name: Es el nombre del depósito que contiene los datos que desea utilizarcuando ejecute tareas de Hadoop. Si se ejecuta en modo de autenticación simple,el encargado del depósito debe otorgar permiso a Todos. En el siguiente ejemplo,el bucket_name se configura en mybucket.

l namespace: Es el espacio de nombres del grupo de usuarios donde residebucket_name. En el siguiente ejemplo, el espacio de nombres se configura enmynamespace.

l installation_name: El valor especificado por la propiedad de fs.vipr.installations.En el siguiente ejemplo, installation_name se configura en Site1.

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.Site1/</value></property>

8. Busque fs.permissions.umask-mode y establezca el valor en 022.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

154 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 155: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

En algunas configuraciones, esta propiedad quizás ya no exista. Si no existe,agréguelo.

<property> <name>fs.permissions.umask-mode</name> <value>022</value></property>

9. Agregue la propiedad fs.viprfs.auth.anonymous_translation; se utiliza paraespecificar el propietario y el grupo de un archivo o directorio creado mediante HDFS.

Nota

Antes de ECS 2.2, este parámetro se utilizaba para asignar un propietario a losarchivos y directorios que se crearon sin uno (archivos de propiedad anónima), demodo que el usuario actual tuviera permiso para modificarlos. Los archivos ydirectorios ya no se crean de manera anónima y tienen un propietario asignado segúnla configuración de este parámetro.

Opción Descripción

LOCAL_USER Utilice esta configuración con un clúster de Hadoop que utilice laseguridad simple. Asigna el usuario y gruopo de Unix del clúster deHadoop a directorios y archivos recientemente creados.

CURRENT_USER Utilice esta configuración para un clúster de Hadoop kerberizado.Asigna la entidad de seguridad de Kerberos ([email protected])como el propietario del archivo o directorio y utiliza el grupo que seasignó como el valor predeterminado para el depósito.

NONE (default) (En desuso) Anteriormente, indicaba que no se debía ejecutarninguna asignación desde los objetos de propiedad anónima alusuario actual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>LOCAL_USER</value></property>

10. Agregue la propiedad fs.viprfs.auth.identity_translation. Proporciona una manera deasignar usuarios a un dominio cuando Kerberos no está presente.

Opción Descripción

CURRENT_USER_REALM Utilice esta configuración para un clúster de Hadoopkerberizado. Cuando se especifica, se detectaautomáticamente el dominio.

NONE (default) Utilice esta configuración con un clúster de Hadoop queutilice la seguridad simple. Con esta configuración, ECSHDFS no ejecuta la traducción de dominio.

FIXED_REALM (En desuso) Proporcionaba la capacidad de incluir comohard-code el dominio del usuario mediante la propiedadfs.viprfs.auth.realm.

<property> <name>fs.viprfs.auth.identity_translation</name>

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

Edición del archivo Hadoop core-site.xml 155

Page 156: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

<value>NONE</value></property>

11. Si desea utilizar el servicio HAWQ de Pivotal, agregue la propiedadhawq.vipr.endpoint. Especifique el valor con el siguiente formato: viprfs://<datanode-ip>:9040/<namespace>/<bucket>.

Por ejemplo:

<property><name>hawq.vipr.endpoint</name><value>viprfs://10.0.0.1:9040/h3/hawqBucket</value></property>

12. Guarde core-site.xml.

13. Actualice core-site.xml en los nodos requeridos del clúster de Hadoop.

14. Utilice Hortonworks Ambari o Cloudera Manager Safety Valve para actualizar elcore-site.xml con el mismo conjunto de propiedades y valores.

Inicialización de GP DatabaseCuando se utiliza HAWQ, las necesidades de la base de datos de Greenplum se inicializa.

Procedimiento

1. Cree un archivo de configuración para la base de datos de Greenplum que contienelos siguientes parámetros. El archivo de llamadasgpinitsystem_config.

DFS_URL=<datanode-ip>:9040/<bucketName>DFS_NAME=hdfs

2. Asegúrese de encontrarse elpostgresusuario.

$ su - postgres

3. Ejecute el comando gpinitsystem y aprobar en el archivo de configuración.

$ gpinitsystem -c [config-file] -h /tmp/hawq/hostfile

Edición de HBASE hbase-site.xmlCuando utiliza HBASE con ECS HDFS, debe establecer hbase.rootdir en hbase-site.xml con el mismo valor que la propiedad core-site.xml fs.defaultFS.

hbase-site.xml se encuentra en una las siguientes ubicaciones:

Tabla 22 ubicaciones de hbase-site.xml

Distribución deHadoop

ubicación de hbase-site.xml

Pivotal HD /etc/ghpd/hbase/conf/

Cloudera /etc/hbase/conf/

Hortonworks /etc/hbase/conf/

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

156 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 157: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 22 ubicaciones de hbase-site.xml (continuación)

Procedimiento

1. Abra hbase-site.xml.

2. Configure la propiedad hbase.rootdir en el mismo valor que fs.defaultFS agregando /hbase como el sufijo.

3. Guarde los cambios.

a. En Cloudera, agregue la propiedad hbase.rootdir al valor de seguridad deconfiguración de HBase Service para hbase-site.xml.

4. Reinicie los servicios para la distribución.

Distribución deHadoop

Descripción

Pivotal HD Ejecute este comando en el nodo maestro hbase:

# service hbase-master restart

Ejecute este comando en el servidor de región hbase:

# service hadoop-regionserver restart

Cloudera Utilice el administrador de Cloudera para reiniciar HBaseservice.

Hortonworks # bin/start-hbase.sh

Ejemplo 1 entrada hbase.rootdir

<property> <name>hbase.rootdir</name> <value>viprfs://testbucket.s3.testsite/hbase</value></property>

Reiniciar y verificar el accesoUna vez ejecutados los pasos de configuración, puede reiniciar los servicios de Hadoop ycomprobar que dispone de acceso a HDFS.

Cuando el sistema se configura para utilizar ECS HDFS, el NameNode de HDFS puedefallar en el inicio. Cuando ECS HDFS se configura como el HDFS, ECS HDFS ejecuta todaslas funciones de NameNode y no requiere que el NameNode esté activo.

Procedimiento

1. Reinicie los servicios Hadoop.

Normalmente, esto incluirá a HDFS, MapReduce, Yarn y HBase.

Si se reinician los servicios manualmente, puede consultar la tabla a continuación.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

Reiniciar y verificar el acceso 157

Page 158: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Distribución deHadoop

Comandos

Pivotal HD ComputeMaster:# service hadoop-yarn-resourcemanager restartNodos de datos:

# service hadoop-hdfs-datanode restart# service hadoop-yarn-nodemanager restartNameNode:

# service hadoop-yarn-nodemanager restartSi utiliza el servicio HAWQ de Pivotal, reinícielo ejecutando lossiguientes comandos:

# service hawq stop# service hawq startCuando configura el cluster de Hadoop de Pivotal para utilizar elsistema de archivos predeterminado de ECS HDFS (especificadopor fs.DefaultFS en core-site.xml), no puede utilizar lafuncionalidad de inicio/detención de cluster de icm_client; encambio, debe iniciar todos los servicios de cluster (excepto HDFS)individualmente. Por ejemplo:

icm_client start -s yarn

icm_client start -s zookeeper

y así sucesivamente.

Cloudera Utilice el administrador de Cloudera para reiniciar los servicios deHDFS y MapReduce.

Hortonworks # stop-all.sh# start-all.sh

2. Pruebe la configuración ejecutando el siguiente comando para obtener una lista dedirectorios:

# hdfs dfs -ls viprfs://mybucket.mynamespace.Site1/

13/12/13 22:20:37 INFO vipr.ViPRFileSystem: Initialized ViPRFS for viprfs://mybucket.mynamespace.Site1/

Si tiene fs.defaultFS, puede utilizar:# hdfs dfs -ls /

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

158 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 159: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 24

Configuración de la integración de ECS HDFS a unclúster de Hadoop (kerberizado) seguro

l Integrar el clúster de Hadoop seguro a ECS HDFS ................................................160l Planear la migración desde un clúster simple a uno de Kerberos.........................160l Configure Pivotal HAWQ in a Kerberos environment.............................................161l Configuración de los nodos ECS con el principal del servicio de ECS................... 162l Asegurar el depósito de ECS con metadatos........................................................165l Edite core-site.xml...............................................................................................169l Inicializar la base de datos de HAWQ ..................................................................173l Reiniciar y verificar el acceso...............................................................................173

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro 159

Page 160: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Integrar el clúster de Hadoop seguro a ECS HDFSEste procedimiento describe cómo integrar su distribución de Hadoop existente, la cualestá asegurada mediante Kerberos, con ECS HDFS.

También puede utilizar este procedimiento si configuró ECS HDFS para que funcione conun clúster de Hadoop configurado para la autenticación simple y migró el clúster deHadoop para que utilice la autenticación de Kerberos.

Antes de ejecutar los pasos de integración:

l Compruebe que un KDC de Kerberos esté instalado y configurado para manejar laautenticación de las entidades de seguridad de servicio de Hadoop. Si utiliza ActiveDirectory para autenticar a los usuarios de ECS, debe establecer una confianza entredominios entre el dominio de Kerberos y el dominio de usuario ECS. Se proporcionaayuda con la creación de KDC de Kerberos y la configuración de la confianza en Guíasobre la configuración de Kerberos en la página 176.

l Asegúrese de haber creado un depósito para el sistema de archivos de HDFS(consulte Creación de un depósito mediante el portal de en la página 130)

l Asegúrese de haber leído las reglas para la planificación de la integración (consulte Planificación de la integración de ECS HDFS y Hadoop en la página 148).

l Asegúrese de haber descargado el paquete de instalación y de soporte (consulte Obtain the ECS HDFS installation and support package en la página 149).

Para integrar ECS HDFS a su clúster de Hadoop, complete las siguientes tareas:

1. Planear la migración desde un clúster simple a uno de Kerberos en la página 160

2. (Opcional) Inicializar la base de datos de HAWQ en la página 173

3. Configuración de los nodos ECS con el principal del servicio de ECS en la página 162

4. Asegurar el depósito de ECS con metadatos en la página 165

5. (Si utiliza HAWQ) Inicializar la base de datos de HAWQ en la página 173

6. Reiniciar y verificar el acceso en la página 173

Planear la migración desde un clúster simple a uno de KerberosECS es compatible con la migración desde un clúster de Hadoop que utiliza la seguridadsimple a un clúster de Hadoop protegido por Kerberos.

Si migra desde un ambiente simple a uno seguro, debe leer la sección sobre migraciónen: Migración de un clúster simple a uno de Hadoop de Kerberos en la página 126.

En general, la función de migración de ECS permitirá a los usuarios de Kerberos el accesoa los archivos y directorios de manera transparente. No obstante, se aplican lassiguientes notas:

l Si migra el clúster de Hadoop a Kerberos y, a continuación, reinicia el clúster, losprocesos como MapReduce no podrán acceder a los directorios que creóanteriormente. Debe esperar hasta que haya configurado ECS HDFS con esteprocedimiento antes de reiniciar Hadoop.

l A fin de que los usuarios y los procesos puedan acceder al depósito, deben sermiembros del grupo que tiene acceso a este; de otro modo, deberá cambiar las ACLdel depósito para que los usuarios de Kerberos tengan acceso.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

160 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 161: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Configure Pivotal HAWQ in a Kerberos environmentTo use the Pivotal HAWQ service with ECS HDFS, you must replace Pivotal's HDFS lib withthe ECS Conector HAWQ (libvipr-<version>.so).

Antes de comenzar

You should ensure that the following prerequisites are met:

l Ensure that the HAWQ environment is configured so that:

n A Kerberos principal and corresponding keytab has been created for the HAWQpostgres user.

n A hdfs.headless.keytab file has been created for the HDFS principal.

You can refer to HAWQ - Configure Kerberos Security Principal for more information onsecuring HAWQ with Kerberos in a Hadoop cluster.

Nota

ECS does not support the Pivotal Extension Framework (PXF). However, creating PXFprincipals and keytabs as described in the referenced instructions will not cause aproblem.

l Ensure that the HAWQ postgres user has access to the ECS bucket by assigninguser or group ACLs

l Ensure that you have prepared bucket metadata that you will deploy in a later step.

{ "name": "internal.kerberos.user.hawq.name", "value": "postgres@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hawq.shortname", "value": "postgres" },

The following HAWQ Connector is provided and supports the Hadoop distribution andHAWQ version shown below:

Tabla 23 ECS HAWQ Connector

Hadoopdistribution

DistributionVersion

HAWQ Version ECS Conector HAWQ

Pivotal HD Pivotal 3.0.1 HAWQ 1.3.1 libvipr-2.2.0.0.so

Nota

Use of HAWQ with ECS in a Kerberos environment is undergoing qualification testing.Please contact your EMC representative to obtain the latest version of the library and thesupported versions.

Every time you reconfigure, deploy, or upgrade using icm_client, verify the libhdfs3symlinks still point to libvipr-<version>.so. The HAWQ config file, hdfs-client.xml is not used by ECS HDFS.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Configure Pivotal HAWQ in a Kerberos environment 161

Page 162: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Procedimiento

1. Copy the libvipr-<version>.so obtained from the ECS Installation and SupportClient zip to a local directory on each HAWQ Master and Segment node in the Pivotalcluster.

For example: /usr/local/vipr/libvipr-<version>.so2. Update the libhdfs symlink in the Pivotal master and segment node's HAWQ

installation directory (<HAWQ_INSTALL_DIR>)

For example:

<HAWQ_INSTALL_DIR>/lib/libhdfs3.so -> /usr/local/vipr/libvipr-<version>.so unlink <HAWQ_INSTALL_DIR>/lib/libhdfs3.so ln -s /usr/local/vipr/libvipr-<version>.so <HAWQ_INSTALL_DIR>/lib/libhdfs3.so

<HAWQ_INSTALL_DIR>/lib/libhdfs3.so.1 -> /usr/local/vipr/libvipr-<version>.so unlink <HAWQ_INSTALL_DIR>/lib/libhdfs3.so.1 ln -s /usr/local/vipr/libvipr-<version>.so <HAWQ_INSTALL_DIR>/lib/libhdfs3.so.1

3. Update the symlink on each node in the Pivotal cluster.

Configuración de los nodos ECS con el principal del servicio deECS

El principal del servicio ECS y su archivo keytab correspondiente deben residir en cadanodo de datos de ECS. Utilice las guías Ansible suministradas para automatizar estospasos.

Antes de comenzar

Debe contar con los siguientes elementos para poder realizar este procedimiento:

l Acceso a las guías Ansible. Obtenga las guías Ansible del paquete de software HDFSde ECS como se describe en Obtención del paquete de instalación y de soporte deViPR HDFS y cópielo en el nodo donde quiera instalar Ansible.

l La lista de direcciones IP del nodo de ECS.

l Dirección IP del sistema KDC.

l La resolución de DNS donde se ejecuta este script debe ser la misma que laresolución de DNS para el host Hadoop; de lo contrario, el vipr/_HOST@REALM nofuncionará.

ECS ofrece contenido Ansible reutilizable llamado "funciones", que consta de scriptspython, listas de tareas basadas en YAML y archivos de plantilla.

l vipr_kerberos_config: Configura un nodo ECS para Kerberos.

l vipr_jce_config: Configura un nodo de datos ECS para cifrado de seguridad ilimitadamediante la instalación de archivos de política JCE.

l vipr_kerberos_principal: Adquiere un principal de servicio para un nodo ECS.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

162 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 163: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Procedimiento

1. Instale la versión de Ansible 1.9. No se admite la versión 2.0.

yum install epel-release && yum install ansible

2. Descomprime el archivo hdfsclient-1.2.0.0-<version>.zip

Los pasos de este procedimiento utilizan las guías incluidas en el directorioviprfs-client-<ECS version>-<version>/playbooks/samples, y lospasos están incluidos también en viprfs-client-<ECS version>-<version>/playbooks/samples/README.md.

3. Instale las funciones Ansible suministradas.

ansible-galaxy install -r requirements.txt -f

4. Copie el contenido del directorio viprfs-client-<ECS version>-<version>/playbooks/samples en un directorio de trabajo.

5. Edite inventory.txt para que haga referencia a los nodos de datos de ECS y elservidor KDC.

Las entradas predeterminadas se muestran a continuación.

[data_nodes]192.168.2.[100:200]

[kdc]192.168.2.10

6. Descargue el archivo de política JCE "ilimitada" de oracle.com y extráigalo en eldirectorio UnlimitedJCEPolicy.

Kerberos puede estar configurado para usar un tipo de cifrado sólido, como AES-256.En esa situación, la versión de JRE dentro de los nodos ECS debe ser reconfiguradapara utilizar la política de 'ilimitada'.

Nota

Este paso se debe ejecutar solamente si está utilizando el tipo de cifrado seguro.

7. Copie el archivo krb5.conf del KDC al directorio de trabajo.

8. Edite generate-vipr-keytabs.yml según sea necesario y establezca el nombrede dominio.

Por ejemplo:

[root@nile3-vm22 samples]# cat generate-vipr-keytabs.yml---#### Generates keytabs for ViPR/ECS data nodes.### - hosts: data_nodes serial: 1 roles: - role: vipr_kerberos_principal kdc: "{{ groups.kdc | first }}"

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Configuración de los nodos ECS con el principal del servicio de ECS 163

Page 164: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

principals: - name: vipr/[email protected] keytab: keytabs/[email protected]

En este ejemplo, el valor predeterminado (vipr/[email protected]) se hasustituido con (vipr/[email protected]) y el dominio es MA.EMC.COM.

9. Ejecute el siguiente comando.

export ANSIBLE_HOST_KEY_CHECKING=False

10. Ejecute la guía Ansible para generar keytabs.

ansible-playbook -v -k -i inventory.txt --user admin –b --become-user=root generate-vipr-keytabs.yml

11. Modifique el archivo setup-vipr-kerberos.yml según sea necesario.

El contenido del archivo predeterminado se muestra a continuación.

# cat setup-vipr-kerberos.yml

---### # Configures ViPR/ECS for Kerberos authentication.# - Configures krb5 client # - Installs keytabs# - Installs JCE policy### - hosts: data_nodes roles: - role: vipr_kerberos_config krb5: config_file: krb5.conf service_principal: name: vipr/[email protected] keytab: keytabs/[email protected]

- role: vipr_jce_config jce_policy: name: unlimited src: UnlimitedJCEPolicy/

En este ejemplo, el valor predeterminado (vipr/[email protected]) se hasustituido con (vipr/[email protected]) y el dominio es MA.EMC.COM.

Nota

Elimine la función "vipr_jce_config" si no está utilizando un tipo de cifrado seguro.

12. Ejecute la guía Ansible para configurar los nodos de datos con el principal del serviciode ECS.

Asegúrese de que exista el directorio ./viprfs-client-<ECS version>-<version>/playbooks/samples/keytab y el archivo krb5.conf esté en el

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

164 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 165: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

directorio de trabajo viprfs-client-<ECS version>-<version>/playbooks/samples.

ansible-playbook -v -k -i inventory.txt --user admin –b --become-user=root setup-vipr-kerberos.yml

Verifique que el principal del servicio correcto de ECS, uno por cada nodo de datos, sehaya creado (del KDC):

# kadmin.local -q "list_principals" | grep viprvipr/[email protected]/[email protected]

Compruebe que el keytab correcto se haya generado y almacenado en la ubicación:/data/hdfs/krb5.keytab en todos los nodos de datos de . Puede utilizar elcomando "strings" en el keytab para extraer el texto legible y verificar que contenga elprincipal correcto. Por ejemplo:

dataservice-10-247-199-69:~ # strings /data/hdfs/krb5.keytabMA.EMC.COMviprnile3-vm42.centera.lab.emc.com

En ese caso, el principal es vipr/nile3-vm42.centera.lab.emc.com.

Asegurar el depósito de ECS con metadatosPara asegurar que el depósito de ECS pueda trabajar con un clúster Hadoop seguro, eldepósito debe tener acceso a la información acerca del clúster.

En un clúster de Hadoop seguro, la entidad de seguridad de Kerberos debe estarasignada a un nombre de usuario HDFS. Además, el usuario debe estar asignado a ungrupo de Unix. Dentro del clúster de Hadoop, el NameNode recopila esta informacióndesde los mismos nodos de Hadoop y desde los archivos de configuración (core-site.xml y hdfs.xml).

Para activar los nodos de ECS a fin de determinar esta información y validar lassolicitudes del cliente, los siguientes datos deben estar disponibles para los nodos deECS:

l Usuario de Kerberos, usuario de Unix y asignación de grupos

l Grupo de superusuarios

l Configuración del servidor proxy

Los datos se ponen a disposición de los nodos de ECS como un conjunto de pares denombre y valor que se mantienen como metadatos.

Usuarios de KerberosLa información acerca de cada usuario de Kerberos (no usuarios de AD) que requiereacceso a Hadoop para un depósito debe cargarse a ECS. Se requieren los siguientesdatos:

l Nombre de la entidad de seguridad

l Nombre corto de la entidad de seguridad (nombre asignado)

l Grupos de entidades de seguridad

Si hay 10 entidades de seguridad de Kerberos en el nodo de Hadoop, debe crear 30pares de nombre y valor en el archivo de entrada de JSON. Cada nombre debe ser único,

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Asegurar el depósito de ECS con metadatos 165

Page 166: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

por lo que únicamente debe asignar un nombre para cada nombre de la entidad deseguridad, nombre corto de la entidad de seguridad y grupo de entidades de seguridad.ECS espera un prefijo y un sufijo constantes para los nombres de entrada JSON.

El prefijo requerido para cada entrada de usuario de Kerberos es “internal.kerberos.user”y los tres sufijos posibles son name, shortname y groups. A continuación se muestra unejemplo.

{ "name": "internal.kerberos.user.hdfs.name", "value": "hdfs-cluster999@EXAMPLE_HDFS.EMC.COM"},{ "name": "internal.kerberos.user.hdfs.shortname", "value": "hdfs"},{ "name": "internal.kerberos.user.hdfs.groups", "value": "hadoop,hdfs"},

El valor entre el prefijo y el sufijo puede ser cualquier cosa, siempre y cuando identifiquela entrada de manera única. Por ejemplo, podría utilizar:

"name": "internal.kerberos.user.1.name","name": "internal.kerberos.user.1.shortname","name": "internal.kerberos.user.1.groups",

Las entidades de seguridad se pueden asignar a diferentes usuarios. Por ejemplo, elusuario de la entidad de seguridad “rm”, por lo general, se asigna a los usuarios de“yarn” que utilizan la configuración auth_to_local para el clúster de Hadoop, como este.

RULE:[2:$1@$0](rm@EXAMPLE_HDFS.EMC.COM)s/.*/yarn/

Por lo tanto, para cualquier entidad de seguridad que se asigne a una entidad deseguridad diferente (por ejemplo, la entidad de seguridad de rm que se asigna a laentidad de seguridad de yarn), se debe utilizar la entidad de seguridad “asignada” en elvalor de nombre corto, por lo que la entrada para la entidad de seguridad de rm sería:

{"name": "internal.kerberos.user.rm.name","value": "rm@EXAMPLE_HDFS.EMC.COM"},{"name": "internal.kerberos.user.yarn.shortname","value": "yarn@EXAMPLE_HDFS.EMC.COM"},{"name": "internal.kerberos.user.yarn.groups","value": "hadoop"},

SupergrupoNecesitará indicarle a ECS qué grupo de usuarios de Linux en los nodos de Hadoopobtendrá los privilegios de superusuario en función de su grupo. Se espera solamenteuna entrada en el archivo de entrada de JSON para la designación del supergrupo. Debeser similar a lo siguiente:

{ "name": "dfs.permissions.supergroup", "value": "hdfs"}

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

166 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 167: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Ajustes del proxyPara obtener soporte proxy, es necesario identificar todos los ajustes del proxy que sepermiten para cada aplicación de Hadoop; en este caso, aplicación significa una de lasaplicaciones compatibles con Hadoop, por ejemplo, hive, hbase, etc.

En el ejemplo que aparece a continuación, se otorga soporte de proxy para la aplicaciónhive a los usuarios que son miembros del grupo s3users (grupo de AD o Linux) y quepueden ejecutar hive en cualquiera de los hosts del clúster de Hadoop. Por lo tanto, laentrada JSON para esto serían dos pares de nombre/valor, uno para la configuración dehosts y otro para la configuración de los grupos.

{ "name": "hadoop.proxyuser.hive.hosts", "value": "*"},{ "name": "hadoop.proxyuser.hive.groups", "value": "s3users"}

El archivo completoLos tres tipos de metadatos se deben combinar en un solo archivo JSON. El formato delarchivo JSON es como se muestra a continuación.

{ "head_type": "hdfs", "metadata": [ { "name": "METADATANAME_1", "value": "METADATAVALUE_1" }, { "name": "METADATANAME_2", "value": "METADATAVALUE_2" },

:

{ "name": "METADATANAME_N", "value": "METADATAVALUE_N" } ]}

Nota

El último par de nombre/valor no tiene un carácter final “,”.

Se muestra un ejemplo de un archivo JSON en: Asegurar los metadatos del depósito en lapágina 196.

Depósitos seguros y no segurosUna vez que se cargan los metadatos a un depósito, se hace referencia a este como un“depósito seguro”, por lo que deberá contar con las entidades de seguridad de Kerberosa fin de obtener acceso. Una solicitud de un nodo de Hadoop no seguro será rechazada.Si no se han cargado los metadatos, el depósito no será seguro y se rechazará lasolicitud de un nodo de Hadoop seguro.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Asegurar el depósito de ECS con metadatos 167

Page 168: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Se mostrará el siguiente error en caso de intentar y acceder a un depósito seguro desdeun clúster no seguro. Se mostrará un mensaje similar en caso de intentar y acceder a undepósito no seguro desde un clúster seguro.

[hdfs@sandbox ~]$ hadoop fs -ls -R viprfs://hdfsBucket3.s3.site1/ls: ViPRFS internal error (ERROR_FAILED_TO_PROCESS_REQUEST).

Carga de los valores de metadatos a ECS mediante la API de REST de administraciónSe pueden suministrar los valores de metadatos requeridos para proteger un depósito deECS que se utiliza con un clúster Hadoop seguro mediante la ejecución de los comandosde la API de REST de administración de ECS.

Antes de comenzar

Debe tener credenciales de administrador del sistema de ECS.

Si el administrador de Hadoop NO es el administrador de ECS, el administrador deHadoop deberá trabajar en conjunto con el administrador del sistema ECS a fin de cargarlos metadatos seguros en el depósito.

El administrador de Hadoop puede hacer que el archivo de metadatos JSON estédisponible para el administrador de sistemas de ECS, el cual podrá utilizar esteprocedimiento para cargar los metadatos posteriormente. Si el mismo usuario asume lasdos funciones, ese usuario será responsable de crear el archivo de metadatos JSON ycargarlo en el depósito de ECS.

Procedimiento

1. Cree el archivo JSON que contiene los metadatos que se describen en: Asegurar eldepósito de ECS con metadatos en la página 165.

2. Inicie sesión en ECS con sus credenciales de administrador del sistema a fin deobtener un token de autenticación que pueda utilizarse cuando se ejecutencomandos de administración de ECS.

Puede ejecutar este comando mediante curl. En el ejemplo que aparece acontinuación, deberá reemplazar <username>:<password> con las credenciales deladministrador del sistema de ECS y proporcionar la dirección IP o el nombre de hostde un nodo de ECS.

TOKEN=$(curl -s -k -u <username>:<password> -D - -o /dev/null https://<ECS node IP or hostname>:4443/login | grep X-SDS-AUTH-TOKEN | tr -cd '\40-\176')

3. Ejecute el comando de la API de REST de administración de ECS para implementar losmetadatos.

La API es: PUT object/bucket/<bucketname>/metadata. A continuación, se muestra unejemplo de cómo ejecutar este comando mediante curl.

curl -s -k -X PUT -H "$TOKEN" -H "Accept: application/json" -H "Content-Type: application/json" -T <bucketDetails>.json https:/<hostname>:4443/object/bucket/<bucketname>/metadata?namespace=<namespace>

Debe reemplazar:

l <username> con un nombre de usuario de administrador del sistema de ECS.

l <password> con la contraseña para el nombre de usuario de administrador delsistema de ECS especificado.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

168 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 169: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

l <bucketname> con el nombre del depósito que está utilizando para los datosHDFS.

l <hostname> con la dirección IP o nombre de host de un nodo de ECS.

l <bucketdetails> con el nombre de archivo del archivo JSON que contiene los paresde nombre-valor.

l <namespace> con el nombre del espacio de nombres en el que reside el depósito.

Una vez implementados, los metadatos estarán disponibles para todos los nodos deECS.

Edite core-site.xmlUtilice este procedimiento para actualizar core-site.xml con las propiedadesnecesarias cuando se utiliza ECS HDFS con un cluster de ECS que utiliza el modo deautenticación de Kerberos.

Antes de comenzar

l Siempre es preferible agregar o administrar estas propiedades mediante una interfazdel usuario de administración de Hadoop para reducir la posibilidad de errores ygarantizar que estos cambios sean persistentes en todo el clúster. Editarmanualmente los archivos en múltiples nodos de Hadoop es difícil y está propenso aerrores. Debe tener un conjunto de parámetros de conexión del usuario que lohabiliten a iniciar sesión en la interfaz del usuario de administración para sudistribución.

l Si modifica core-site.xml directamente, debe tener un conjunto de parámetrosde conexión del usuario que lo habiliten a iniciar sesión en los nodos de Hadoop ymodificar core-site.xml.

Algunas propiedades son específicos de ECS y, por lo general, se necesitan paraagregarse a core-site.xml. Si utiliza el paquete de discos de Hortonworks AmbariHadoop ECS, los parámetros específicos de ECS ya estarán presentes.

Si planea editar core-site.xml directamente, la ubicación de core-site.xmldepende de la distribución que utilice, como se muestra en la siguiente tabla.

Tabla 24 Ubicación de archivos de core-site.xml

Distribución deECS

ubicación de core-site.xml Nodos poractualizar

Pivotal HD /etc/ghpd/hadoop/conf ComputeMaster yclientes

Cloudera /etc/hadoop/conf Nodos cliente

Hortonworks /etc/hadoop/conf Todos los nodos

core-site.xml reside en cada nodo del cluster de Hadoop, y usted debe modificar lasmismas propiedades en cada instancia. Puede hacer el cambio en un nodo, y luegoutilizar el comando de copia segura (scp) para copiar el archivo en los demás nodos delcluster. Como mejor práctica, respalde core-site.xml antes de comenzar el procesode configuración.

Consulte la referencia de la propiedad de core_site.xml en la página 190 para obtenermás información sobre cada propiedad que debe configurar.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Edite core-site.xml 169

Page 170: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Procedimiento

1. Si está utilizando una interfaz de administración como Hortonworks Ambari oCloudera Manager Safety Valve, inicie sesión como administrador y vaya a la páginade configuración de HDFS.

2. Si va a realizar los cambios mediante la edición manual de core-site.xml, sigalos pasos a continuación.

a. Inicie sesión en uno de los nodos de HDFS donde se encuentra core-site.xml.

b. Haga una copia de respaldo de core-site.xml.

cp core-site.xml core-site.backupc. Con el editor de texto que desee, abra core-site.xml para editarlo.

3. Agregue las propiedades y los valores siguientes para definir clases de Java queimplementan el sistema de archivos de ECS HDFS:

<property><name>fs.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

<property> <name>fs.AbstractFileSystem.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

4. Agregue la propiedad fs.vipr.installations. En el siguiente ejemplo, el valor seconfigura en Site1.

<property> <name>fs.vipr.installations</name> <value>Site1</value></property>

5. Agregue la propiedad fs.vipr.installation.[installation_name].hosts como una lista denodos de datos de ECS separados por comas o de direcciones IP del balanceador decarga separadas por comas. En el siguiente ejemplo, installation_name se configuraen Site1.

<property> <name>fs.vipr.installation.Site1.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value></property>

6. Agregue la propiedad fs.vipr.installation.[installation_name].resolution y configúrelaen uno de los siguientes valores:

Opción Descripción

dynamic Utilícela cuando tiene acceso a nodos de datos de ECS directamente sinun balanceador de carga.

fixed Utilícela cuando tiene acceso a nodos de datos de ECS con unbalanceador de carga.

En el siguiente ejemplo, installation_name se configura en Site1.

<property> <name>fs.vipr.installation.Site1.resolution</name> <value>dynamic</value></property>

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

170 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 171: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

a. Si configura fs.vipr.installation.[installation_name].resolution como dynamic,agregue la propiedad fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms a fin de especificar lafrecuencia de consulta a ECS para la lista de nodos activos.

En el siguiente ejemplo, installation_name se configura en Site1.

<property><name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name><value>900000</value></property>

7. Busque la propiedad fs.defaultFS y modifique el valor para especificar el URI delsistema de archivos de ECS.

Esta configuración es opcional, y puede especificar la URL completa del sistema dearchivos para conectarse a ViPRFS ECS.

Utilice el siguiente formato: viprfs://<bucket_name.namespace.installation_name, donde

l bucket_name: Es el nombre del depósito que contiene los datos que desea utilizarcuando ejecute tareas de Hadoop. Si se ejecuta en modo de autenticación simple,el encargado del depósito debe otorgar permiso a Todos. En el siguiente ejemplo,el bucket_name se configura en mybucket.

l namespace: Es el espacio de nombres del grupo de usuarios donde residebucket_name. En el siguiente ejemplo, el espacio de nombres se configura enmynamespace.

l installation_name: El valor especificado por la propiedad de fs.vipr.installations.En el siguiente ejemplo, installation_name se configura en Site1.

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.Site1/</value></property>

8. Busque fs.permissions.umask-mode y establezca el valor en 022.

En algunas configuraciones, esta propiedad quizás ya no exista. Si no existe,agréguelo.

<property> <name>fs.permissions.umask-mode</name> <value>022</value></property>

9. Agregue la propiedad fs.viprfs.auth.anonymous_translation; se utiliza paraespecificar el propietario y el grupo de un archivo o directorio creado mediante HDFS.

Nota

Antes de ECS 2.2, este parámetro se utilizaba para asignar un propietario a losarchivos y directorios que se crearon sin uno (archivos de propiedad anónima), demodo que el usuario actual tuviera permiso para modificarlos. Los archivos ydirectorios ya no se crean de manera anónima y tienen un propietario asignado segúnla configuración de este parámetro.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Edite core-site.xml 171

Page 172: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Opción Descripción

LOCAL_USER Utilice esta configuración con un clúster de Hadoop que utilice laseguridad simple. Asigna el usuario y gruopo de Unix del clúster deHadoop a directorios y archivos recientemente creados.

CURRENT_USER Utilice esta configuración para un clúster de Hadoop kerberizado.Asigna la entidad de seguridad de Kerberos ([email protected])como el propietario del archivo o directorio y utiliza el grupo que seasignó como el valor predeterminado para el depósito.

NONE (default) (En desuso) Anteriormente, indicaba que no se debía ejecutarninguna asignación desde los objetos de propiedad anónima alusuario actual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>LOCAL_USER</value></property>

10. Agregue la propiedad fs.viprfs.auth.identity_translation y configúrela comoCURRENT_USER_REALM, que mapea en el dominio del usuario conectado a través dekinit.

<property> <name>fs.viprfs.auth.identity_translation</name> <value>CURRENT_USER_REALM</value></property>

11. Agregue la propiedad viprfs.security.principal. Esta propiedad informa a KDC quién esel usuario de ECS.

El nombre principal puede incluir "_HOST", que se sustituye automáticamente por elnodo de datos real FQDN en el momento de la ejecución.

<property> <name>viprfs.security.principal</name> <value>vipr/[email protected]</value></property>

12. Si va a configurar el servicio HAWQ de Pivotal, agregue los siguientes parámetros.

a. Agregue un valor para la propiedad hawq.vipr.endpoint. Especifique el valorcon el siguiente formato: viprfs://<datanode-ip>:9040/<namespace>/<bucket>

Por ejemplo:

<property><name>hawq.vipr.endpoint</name><value>viprfs://10.0.0.1:9040/h3/hawqBucket</value></property>

b. Agregue la identidad del principal de Kerberos de HAWQ mediante laconfiguración de un valor parahawq.authentication.kerberos.principal.

Por ejemplo:

<property> <name>hawq.authentication.kerberos.principal</name>

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

172 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 173: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

<value>postgres@REALM</value></property>

c. Agregue la ruta a la keytab de HAWQ mediante la configuración de un valor parahawq.keytab.path.

Por ejemplo:

<property> <name>hawq.keytab.path</name> <value>/etc/security/keytabs/postgres.keytab</value></property>

13. Agregue la ubicación en caché de los vales de Kerberos.

Por ejemplo:

<property><name>hadoop.security.kerberos.ticket.cache.path</name> <value>/tmp/<krbcc_1000</value></property>

Se puede obtener este valor de la salida del comando klist.

14. Utilice Hortonworks Ambari o Cloudera Manager Safety Valve para actualizar core-site.xml con el mismo conjunto de propiedades y valores.

Inicializar la base de datos de HAWQCuando se utiliza HAWQ, se debe inicializar Greenplum Database.

Procedimiento

1. Cree un archivo de configuración para Greenplum Database que contenga lossiguientes parámetros. Llame el archivo gpinitsystem_config.

DFS_URL=<datanode-ip>:9040/<bucketName>DFS_NAME=hdfs

KERBEROS_KEYFILE=/etc/security/keytabs/postgres.keytabENABLE_SECURE_FILESYSTEM=on

2. kinit como el usuario postgres.

$ kinit [email protected]

3. Ejecute el comando gpinitsystem y apruebe el archivo de configuración.

gpinitsystem -c [config-file] -h /tmp/hawq/hostfile

Reiniciar y verificar el accesoUna vez ejecutados los pasos de configuración, puede reiniciar los servicios de Hadoop ycomprobar que dispone de acceso a HDFS.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Inicializar la base de datos de HAWQ 173

Page 174: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Cuando el sistema se configura para utilizar ECS HDFS, el NameNode de HDFS puedefallar en el inicio. Cuando ECS HDFS se configura como el HDFS, ECS HDFS ejecuta todaslas funciones de NameNode y no requiere que el NameNode esté activo.

Procedimiento

1. Reinicie los servicios Hadoop.

Normalmente, esto incluirá a HDFS, MapReduce, Yarn y HBase.

Si se reinician los servicios manualmente, puede consultar la tabla a continuación.

Distribución deHadoop

Comandos

Pivotal HD ComputeMaster:# service hadoop-yarn-resourcemanager restartNodos de datos:

# service hadoop-hdfs-datanode restart# service hadoop-yarn-nodemanager restartNameNode:

# service hadoop-yarn-nodemanager restartSi utiliza el servicio HAWQ de Pivotal, reinícielo ejecutando lossiguientes comandos:

# service hawq stop# service hawq startCuando configura el cluster de Hadoop de Pivotal para utilizar elsistema de archivos predeterminado de ECS HDFS (especificadopor fs.DefaultFS en core-site.xml), no puede utilizar lafuncionalidad de inicio/detención de cluster de icm_client; encambio, debe iniciar todos los servicios de cluster (excepto HDFS)individualmente. Por ejemplo:

icm_client start -s yarn

icm_client start -s zookeeper

y así sucesivamente.

Cloudera Utilice el administrador de Cloudera para reiniciar los servicios deHDFS y MapReduce.

Hortonworks # stop-all.sh# start-all.sh

2. Pruebe la configuración ejecutando el siguiente comando para obtener una lista dedirectorios:

# kinit <service principal>

# hdfs dfs -ls viprfs://mybucket.mynamespace.Site1/

13/12/13 22:20:37 INFO vipr.ViPRFileSystem: Initialized ViPRFS for viprfs://mybucket.mynamespace.Site1/

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

174 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 175: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 25

Guía sobre la configuración de Kerberos

l Guía sobre la configuración de Kerberos............................................................. 176l Configuración de los nodos ECS con el principal del servicio de ECS................... 179

Guía sobre la configuración de Kerberos 175

Page 176: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Guía sobre la configuración de KerberosProporciona orientación sobre la configuración de Kerberos en el clúster de Hadoop.

Configuración del KDC de KerberosConfigure el KDC de Kerberos siguiendo estos pasos.

Procedimiento

1. Instale krb5-workstation.

Utilice el comando:

yum install -y krb5-libs krb5-server krb5-workstation

2. Modifique /etc/krb5.conf y cambie el nombre y las extensiones del dominio.

3. Modifique /var/kerberos/krb5kdc/kdc.conf y cambie el nombre del dominiopara que coincida con el suyo.

4. Si su KDC es un VM, recree /dev/random (de otra forma, el siguiente paso de crearla base de datos de KDC tardará mucho).

a. Elimine con:

# rm -rf /dev/random

b. Recree con:

# mknod /dev/random c 1 9

5. Cree la base de datos de KDC.

# kdb5_util create -s

Nota

Si cometió un error con los principales iniciales. Por ejemplo, si ejecutó "kdb5_utilcreate -s" de manera incorrecta, tal vez tenga que eliminar los principales de maneraexplícita en el directorio /var/kerberos/krb5kdc/ .

6. Modifique kadm5.acl para especificar que los usuarios tienen permiso deadministrador.

*/[email protected] *

7. Modifique /var/kerberos/krb5kdc/kdc.conf y elimine cualquier tipo decifrado, excepto des-cbc-crc:normal. Modifique también el nombre de dominio.

8. Asegúrese de que iptables y selinux estén desactivados en todos los nodos (servidorKDC, así como nodos de Hadoop).

Guía sobre la configuración de Kerberos

176 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 177: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

9. Inicie los servicios de KDC y cree un principal de administrador local.

kadmin.local

# service krb5kdc start

# service kadmin start

# /usr/kerberos/sbin/kadmin.local-q "addprinc root/admin"

# kinit root/admin

10. Copie el archivo krb5.conf en todos los nodos de Hadoop.

Cada vez que haga una modificación en cualquiera de los archivos de configuración,reinicie los servicios siguientes y copie el archivo krb5.conf a los nodos de Hadoopy ECS relevantes.

11. Reinicie los servicios.

service krb5kdc restart

service kadmin restart

12. Puede usar el siguiente vínculo para configurar un KDC de Kerberos con base en lospasos en http://www.centos.org/docs/4/html/rhel-rg-en-4/s1-kerberos-server.html.

Configuración de la autenticación de usuario AD para KerberosCuando tiene un ambiente Hadoop configurado con seguridad Kerberos, puedeconfigurarlo para autenticar con el dominio AD de ECS.

Asegúrese de tener un usuario de AD para su ADREALM. El usuario "detscr" de ADREALMCAMBRIDGE.EMC.COM se utiliza en el siguiente ejemplo. Cree una confianzaunidireccional entre KDCREALM y ADREALM como se muestra en el ejemplo. No trate devalidar este dominio con "netdom trust".

En Active DirectoryDebe configurar una confianza unidireccional entre dominios, del dominio de KDC al deAD. Para hacerlo, ejecute los siguientes comandos desde una línea de comandos.

ksetup /addkdc KDC-REALM <KDC hostname>netdom trust KDC-REALM /Domain:AD-REALM /add /realm /passwordt:<TrustPassword>ksetup /SetEncTypeAttr KDC-REALM <enc_type>

Por ejemplo:

ksetup /addkdc LSS.EMC.COM lcigb101.lss.emc.comnetdom trust LSS.ACME.COM /Domain:CAMBRIDGE.ACME.COM /add /realm /passwordt:ChangeMeksetup /SetEncTypeAttr LSS.ACME.COM DES-CBC-CRC

Para este ejemplo, se utilizó el cifrado des-cbc-crc. Sin embargo, este es un cifrado débilque solo se eligió con fines de demostración. Sea cual fuere el cifrado que elija, AD, KDCy los clientes deben ser compatibles con él.

En su KDC (como raíz)Para configurar una confianza unidireccional, debe crear un principal de servicio"krbtgt" . Para hacerlo, el nombre es krbtgt/KDC-REALM@AD-REALM. Use la contraseñaChangeMe, o la que haya especificado para el argumento /passwordt anterior.

Guía sobre la configuración de Kerberos

Configuración de la autenticación de usuario AD para Kerberos 177

Page 178: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

1. En KDC (como raíz)

# kadminkadmin: addprinc -e "des-cbc-crc:normal" krbtgt/[email protected]

Nota

Durante la implementación, lo mejor es limitar los tipos de cifrado al que hayaelegido. Una vez que esté funcionando, se pueden añadir tipos de cifradoadicionales.

2. Agregue las siguientes reglas a su propiedad core-site.xmlhadoop.security.auth_to_local:

RULE:[1:$1@$0](^.*@CAMBRIDGE\.ACME\.COM$)s/^(.*)@CAMBRIDGE\.ACME\.COM$/$1/gRULE:[2:$1@$0](^.*@CAMBRIDGE\.ACME\.COM$)s/^(.*)@CAMBRIDGE\.ACME\.COM$/$1/g

3. Compruebe que AD o LDAP esté configurado correctamente con el servidor deKerberos (KDC). El usuario debe poder usar "kinit" con un usuario de AD y listar eldirectorio local de HDFS.

Nota

Si va a configurar el clúster de Hadoop y ECS para autenticación a través de un AD,cree cuentas locales de usuarios de Linux en todos los nodos de Hadoop para elusuario de AD de "kinit", y también asegúrese de que todos los hosts de Hadoophagan "kinit" con ese usuario de AD. Por ejemplo, si hace kinit comouserX@ADREALM, cree userX como usuario local en todos los hosts de Hadoop, yhaga kinit con: 'kinit userX@ADREALM' en todos los hosts para ese usuario.

En el siguiente ejemplo, vamos a hacer la autenticación como "[email protected]", por lo que vamos a crear un usuario llamado "detscr" yhacer kinit como este usuario en el host de Hadoop. Como se indica a continuación:

[root@lviprb159 ~]# su detscr [detscr@lviprb159 root]$ whoami detscr [detscr@lviprb159 root]$ kinit [email protected] Password for [email protected]: [detscr@lviprb159 root]$ klist Ticket cache: FILE:/tmp/krb5cc_1010 Default principal: [email protected] Valid starting Expires Service principal 12/22/14 14:28:27 03/02/15 01:28:30 krbtgt/[email protected] renew until 09/17/17 15:28:27 [detscr@lviprb159 root]$ hdfs dfs -ls /Found 4 itemsdrwx---rwx - yarn hadoop 0 2014-12-23 14:11 /app-logsdrwx---rwt - hdfs 0 2014-12-23 13:48 /appsdrwx---r-x - mapred 0 2014-12-23 14:11 /mapreddrwx---r-x - hdfs 0 2014-12-23 14:11 /mr-history

Guía sobre la configuración de Kerberos

178 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 179: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Configuración de los nodos ECS con el principal del servicio deECS

Cuando se agrega uno o más nodos nuevo a una configuración de ECS, se debenimplementar el principal del servicio ECS y keytab correspondiente a los nuevos nodos.

Antes de comenzar

Este procedimiento supone que anteriormente que ha ejecutado los pasos aquí en lapágina 162 y tener los manuales de Ansible instalados y accesibles.

Debe contar con los siguientes elementos para poder realizar este procedimiento:

l La lista de direcciones IP del nodo de ECS.

l Dirección IP del sistema KDC.

l La resolución de DNS donde se ejecuta este script debe ser la misma que laresolución de DNS para el host Hadoop; de lo contrario, el vipr/_HOST@REALM nofuncionará.

Procedimiento

1. Copie el contenido del directorio viprfs-client-<ECS version>-<version>/playbooks/samples en un directorio de trabajo.

2. Edite inventory.txt para que haga referencia a los nodos de datos de ECS y elservidor KDC.

Las entradas predeterminadas se muestran a continuación.

[data_nodes]192.168.2.[100:200]

[kdc]192.168.2.10

3. Ejecute la guía Ansible para generar keytabs.

ansible-playbook -v -k -i inventory.txt generate-vipr-keytabs.yml

4. Ejecute la guía Ansible para configurar los nodos de datos con el principal del serviciode ECS.

Asegúrese de que exista el directorio ./viprfs-client-<ECS version>-<version>/playbooks/samples/keytab y el archivo krb5.conf esté en eldirectorio de trabajo viprfs-client-<ECS version>-<version>/playbooks/samples.

ansible-playbook -v -k -i inventory.txt setup-vipr-kerberos.yml

Verifique que el principal del servicio correcto de ECS, uno por cada nodo de datos, sehaya creado (del KDC):

# kadmin.local -q "list_principals" | grep viprvipr/[email protected]/[email protected]

Guía sobre la configuración de Kerberos

Configuración de los nodos ECS con el principal del servicio de ECS 179

Page 180: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Compruebe que el keytab correcto se haya generado y almacenado en la ubicación:/data/hdfs/krb5.keytab en todos los nodos de datos de . Puede utilizar elcomando "strings" en el keytab para extraer el texto legible y verificar que contenga elprincipal correcto. Por ejemplo:

dataservice-10-247-199-69:~ # strings /data/hdfs/krb5.keytabMA.EMC.COMviprnile3-vm42.centera.lab.emc.com

En ese caso, el principal es vipr/nile3-vm42.centera.lab.emc.com.

Guía sobre la configuración de Kerberos

180 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 181: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 26

Solución de problemas

l Solución de problemas....................................................................................... 182l Compruebe que AD/LDAP está configurado correctamente con el clúster Hadoop

seguro.................................................................................................................182l Reinicio de los servicios después de la configuración hbase............................... 183l Falla la prueba PIG: no se puede obtener el principal de Kerberos....................... 183l Permiso denegado para el usuario de AD............................................................ 183l Errores de permisos............................................................................................ 183l \n no se pudo procesar la solicitud: %s...............................................................187l Habilitar el registro de cliente de Kerberos.......................................................... 187l Depuración de Kerberos en KDC.......................................................................... 187l Eliminación de la desviación del reloj..................................................................187

Solución de problemas 181

Page 182: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Solución de problemasEsta área ofrece soluciones alternativas para los problemas que pueden encontrarse alconfigurar ECS HDFS.

Compruebe que AD/LDAP está configurado correctamente con elclúster Hadoop seguro

Debe verificar que AD o LDAP está configurado correctamente con Kerberos (KDC) y elclúster Hadoop.

Cuando la configuración es correcta, deberá poder usar "kinit" contra un usuario de AD/LDAP. Además, si el clúster Hadoop está configurado para HDFS locales, debe comprobarque puede listar el directorio local HDFS antes de que ECS se agregue al clúster.

Solución alternativaSi no puede autenticarse con éxito como un usuario de AD/LDAP con el KDC en el clústerHadoop, debe corregir esto antes de proceder a la configuración de ECS Hadoop.

A continuación, se muestra un ejemplo de un inicio de sesión exitoso.

[kcluser@lvipri054 root]$ kinit [email protected] for [email protected]:

[kcluser@lvipri054 root]$ klistTicket cache: FILE:/tmp/krb5cc_1025Default principal: [email protected]

Valid starting Expires Service principal04/28/15 06:20:57 04/28/15 16:21:08 krbtgt/[email protected] renew until 05/05/15 06:20:57

Si lo anterior no tiene éxito, puede investigar el uso de la siguiente lista de verificación:

l Revise la corrección y sintaxis de/etc/krb5.conf en el servidor KDC. Losdominios pueden distinguir entre mayúsculas y minúsculas en los archivos deconfiguración, así como cuando se utilizan con el comando kinit.

l Revise que /etc/krb5.conf en el servidor KDC se copie a todos los nodosHadoop.

l Compruebe se haya establecido correctamente la confianza en un solo sentido entreAD/LDAP y el servidor KDC. Consulte la documentación adecuada sobre cómo haceresto.

l Asegúrese de que el tipo de cifrado en el servidor de AD/LDAP coincide con el delservidor KDC.

l Compruebe que /var/kerberos/krb5kdc/kadm5.acl y /var/kerberos/krb5kdc/kdc.conf estén correctos.

l Intente iniciar sesión como principio de servicio en el servidor KDC para indicar queel servidor KDC en sí está funcionando correctamente.

Solución de problemas

182 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 183: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

l Intente iniciar sesión como el mismo usuario de AD/LDAP directamente en el servidorKDC. Si eso no funciona, es probable que el problema esté directamente en elservidor KDC.

Reinicio de los servicios después de la configuración hbaseDespués de editar la propiedad hbase.rootdir en hbase-site.xml, el servicio hbase no sereinicia correctamente.

Solución alternativaDeben ejecutarse los siguientes pasos cuando este problema se presenta en Cloudera oHortonworks para que se ejecute hbase-master.

1. Conecte a la cli de zookeeper.

hbase zkcli2. Elimine el directorio hbase.

rmr /hbase3. Reinicie el servicio hbase.

En Cloudera, reinicie todos los servicios.

Falla la prueba PIG: no se puede obtener el principal de KerberosFalla la prueba PIG con el siguiente error: "Info:Error: java.io.IOException: Unable toobtain the Kerberos principal" incluso después de kinit como usuario AD, o con"Unable to open iterator for alias firstten".

Este problema se debe a que PIG (<0,13) no genera un token de delegación para ViPRFScomo almacenamiento secundario.

Solución alternativaAnexe la configuración de viprfs://bucket.ns.installation/ amapreduce.job.hdfs-servers. Por ejemplo:

set mapreduce.job.hdfs-servers viprfs://KcdhbuckTM2.s3.site1

Permiso denegado para el usuario de ADCuando ejecuta una aplicación como usuario de AD, se genera un error de "permisodenegado".

Solución alternativaConfigure los permisos para el directorio /user de la siguiente manera:

hdfs dfs -chmod 1777 /user

Errores de permisosPueden producirse errores de permisos insuficientes debido a diversos motivos. Puederecibirlos cuando ejecute un comando hadoop fs, o puede verlos en el registro deaplicación, como el registro de mapreduce o hive.

Solución de problemas

Reinicio de los servicios después de la configuración hbase 183

Page 184: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Errores INSUFFICIENT_PERMISSIONS

En el ejemplo que aparece a continuación, el “jhs” principal intentó crear un directorio (/tmp) y recibió un error INSUFFICIENT_PERMISSIONS. En este caso, los permisos deldirectorio raíz no le permitían a este usuario crear un directorio. La causa de este errordebe ser obvia para la mayoría de los usuarios.

root@lrmk042:/etc/security/keytabs# hadoop fs -mkdir /tmp15/11/08 21:03:09 ERROR vipr.ViPRFileSystemClientBase: Permissions failure for request: User: jhs/lrmk042.lss.emc.com@HOP171_HDFS.EMC.COM (auth:KERBEROS), host: hdfsBucket3.s3.site1, namespace: s3, bucket: hdfsBucket315/11/08 21:03:09 ERROR vipr.ViPRFileSystemClientBase: Request message sent: MkDirRequestMessage[kind=MKDIR_REQUEST,namespace=s3,bucket=hdfsBucket3,path=/tmp,hdfsTrustedStatus=HDFS_USER_NOT_TRUSTED,permissions=rwxr-xr-x,createParent=true]mkdir: java.security.AccessControlException: ERROR_INSUFFICIENT_PERMISSIONS

root@lrmk042:/etc/security/keytabs# hadoop fs -ls -d /drwxr-xr-x - hdfs hdfs 0 2015-11-08 16:58 /root@lrmk042:/etc/security/keytabs#

En caso de que exista un error de permisos insuficientes poco evidente para el cliente, esposible que deba analizar los registros del servidor. Inicie con dataheadsvc-error.log para buscar el error. Abra una ventana terminal para cada nodo de ECS yedite el archivo dataheadsvc-error.log. Encuentre el error que corresponde a lavez que vio el error en el cliente.

Error al obtener las credenciales

Cuando vea un error como el que se muestra a continuación en dataheadsvc-error.log:

2015-11-08 22:36:21,985 [pool-68-thread-6] ERROR RequestProcessor.java (line 1482) Unable to get group credentials for principal 'jhs@HOP171_HDFS.EMC.COM'. This principal will default to use local user groups. Error message: java.io.IOException: Failed to get group credentials for 'jhs@HOP171_HDFS.EMC.COM', status=ERROR

Esto no es un error. El mensaje significa que el servidor intentó buscar el nombreprincipal para ver si había grupos de Active Directory almacenados en caché para elusuario principal que realizaba la solicitud. Para un usuario de Kerberos, lo anteriorgenerará este error.

El error le informará el nombre de usuario que realiza la solicitud. Tome nota de ello.

Error de acceso a depósitos

Si un usuario que realiza una solicitud para obtener acceso a un depósito no tiene lospermisos de ACL, podría ver esta acumulación de errores en dataheadsvc-error.log.

2015-11-08 21:35:26,652 [pool-68-thread-1] ERROR BucketAPIImpl.java (line 220) Getting bucket failed withcom.emc.storageos.objcontrol.object.exception.ObjectAccessException:

Solución de problemas

184 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 185: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

you don't have GET_KEYPOOL_ACL permission to this keypoolat com.emc.storageos.objcontrol.object.exception.ObjectAccessException.createExceptionForAPI(ObjectAccessException.java:286)at com.emc.storageos.data.object.ipc.protocol.impl.ObjectAccessExceptionParser.parseFrom(ObjectAccessExceptionParser.java:61)

En este caso, debe agregar una ACL de usuario explícito para el depósito o agregar unaACL de grupo personalizado para uno de los grupos de los cuales el usuario es miembro.

Error de acceso a objetos

Otro tipo de error de permiso es un error de acceso al objeto. El acceso a objetos(archivos y directorios) no deben confundirse con el acceso a depósitos Un usuariopuede tener el control completo (lectura/escritura/borrado) a un depósito, pero puederecibir un error INSUFFICIENT_PERMISSIONS debido a que no tiene acceso a uno o másobjetos en la ruta a la que intenta obtener acceso. La acumulación que aparece acontinuación es un ejemplo de error de acceso a objetos:

2015-11-08 22:36:21,995 [pool-68-thread-6] ERROR FileSystemAccessHelper.java (line 1364) nfsProcessOperation failed to process path: mr-history/done2015-11-08 22:36:21,995 [pool-68-thread-6] ERROR ObjectControllerExceptionHelper.java (line 186) Method nfsGetSMD failed due to exceptioncom.emc.storageos.data.object.exception.ObjectControllerException: directory server returns error ERROR_ACCESS_DENIEDat com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.nfsProcessOperation(FileSystemAccessHelper.java:1368)at com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.getSystemMetadata(FileSystemAccessHelper.java:466)at com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessLayer.getSystemMetadata(FileSystemAccessLayer.java:532)at com.emc.storageos.data.object.blob.client.BlobAPI.getStat(BlobAPI.java:1294)at com.emc.vipr.engine.real.RealBlobEngine.stat(RealBlobEngine.java:1976)at com.emc.vipr.engine.real.RealBlobEngine.stat(RealBlobEngine.java:802)at com.emc.vipr.hdfs.fs.RequestProcessor.accept(RequestProcessor.java:499)at com.emc.vipr.hdfs.net.ConnectionManager$RequestThread.run(ConnectionManager.java:136)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)

Los dos elementos importantes que se deben destacar aquí son la acción solicitada(stat) y la ruta del objeto (mr-history/done). Tenga en cuenta que no se muestra elcarácter de barra diagonal principal, por lo que la ruta real es /mr-history/done. Ahoratiene tres elementos que son importantes para la depuración:

l usuario principal (jhs@HOP171_HDFS.EMC.COM)

l acción (stat is hadoop fs -ls)

Solución de problemas

Error de acceso a objetos 185

Page 186: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

l ruta (/mr-history/done)

Existen dos enfoques para la depuración adicional:

l Depuración de registro en Blobsvc on page 186

l Depuración del cliente Hadoop on page 186

Depuración de registro en BlobsvcUna solicitud de permiso fallida tendrá un error en blobsvc como este:

2015-11-08 22:36:21,994[TaskScheduler-BlobService-COMMUNICATOR-ParallelExecutor-5892]ERROR ObjectAclChecker.java (line 101) not permit, cred jhs@HOP171_HDFS.EMC.COM[hadoop]false1 withaction GET_OBJECT_ACL on object with acl/owner/group user={hdfs@hop171_hdfs.emc.com=[FULL_CONTROL]},groups={hdfs=[READ_ACL, EXECUTE, READ]}, other=[], owner=hdfs@hop171_hdfs.emc.com, group=hdfs

Simplemente busque 'no permit'. Esto nos brinda el usuario que hace la solicitud (jhs), elpropietario del objeto (hdfs), el grupo de objetos (hdfs) y los permisos para elpropietario, el grupo y otros. Lo que no nos dice es el objeto real que falló la verificaciónde permiso. En el nodo de Hadoop, conviértase en el hdfs principal, comience con la rutay prepare el árbol, lo que lleva al otro método de depuración y se analiza el sistema dearchivos de Hadoop a partir del cliente.

Depuración del cliente HadoopCuando se recibe un error de permisos, debe conocer el usuario principal que realiza lasolicitud, así como el tipo de acción y los elementos que se solicitan. En nuestroejemplo, el usuario jhs recibió un error que enumera el directorio /mr-history/done.Puede realizar algunos análisis para determinar la causa raíz. Si tiene acceso a la cuentade superusuario, ejecute estos pasos como esa cuenta.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /mr-history/donedrwxrwxrwt - mapred hadoop 0 2015-11-08 16:58 /mr-history/done

Esto demuestra que el jhs principal debió haber tenido acceso para enumerar estedirectorio.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /mr-historydrwxr-xr-x - hdfs hdfs 0 2015-11-08 16:58 /mr-history

De la misma manera, este directorio no tiene problemas de acceso

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /drwxr-x--- - hdfs hdfs 0 2015-11-08 16:58 /

En este caso, el problema es que el directorio raíz es propiedad de hdfs y el nombre degrupo es hdfs, pero el resto de la configuración es '-' (0). El usuario que realiza lasolicitud es jhs@REALM; este usuario es miembro de hadoop, pero no de hdfs, de modoque no tiene ninguna ACL de objetos para enumerar el directorio /mr-history/done.Cuando se ejecuta un chmod en el directorio raíz se habilita al usuario a ejecutar sustareas.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -chmod 755 /

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /drwxr-xr-x - hdfs hdfs 0 2015-11-08 16:58 /

Solución de problemas

186 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 187: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

\n no se pudo procesar la solicitud: %sCuando el listado de una categoría de un error: Error al proceso de solicitud se genera.

Al realizar una categoría de lista, por ejemplo:

# hadoop fs -ls viprfs://hdfsBucket2.s3.site1/

Se produjo el siguiente error interno: %s

ERROR_FAILED_TO_PROCESS_REQUEST

Solución alternativaSon razones posibles para este error:

1. El archivo JAR viprhdfs client en el nodo de Hadoop no está sincronizado con elsoftware ECS

2. Que intenta obtener acceso a una categoría (Kerberos) segura desde un nodo deHadoop no seguro (no Kerberos)

3. Que intenta obtener acceso a una categoría no seguro (no Kerberos) desde un nodo(Kerberos) Hadoop seguro.

Habilitar el registro de cliente de KerberosPara solucionar problemas de autenticación, puede habilitar el registro detallado en elnodo de clúster Hadoop que está utilizando.

El registro detallado se habilita usando una variable de ambiente que se aplica solo a lasesión SSH actual.

export HADOOP_OPTS="-Dsun.security.krb5.debug=true"

Depuración de Kerberos en KDCRealice un seguimiento del archivo de KDC /var/log/krb5kdc.log cuando realiceuna operación HDFS para facilitar la depuración.

tail -f /var/log/krb5kdc.log

Eliminación de la desviación del relojEs importante asegurar que el tiempo esté sincronizado entre cliente y servidor, ya queKerberos se basa en la precisión del reloj.

Si su AD tiene una desviación del reloj en relación con sus nodos de datos/KDC, tendráque configurar su servidor NTP. Puede hacerlo de la siguiente forma:

1. Utilice el escritorio remoto para conectarse a su servidor AD.

2. Ejecute los siguientes comandos:

Solución de problemas

\n no se pudo procesar la solicitud: %s 187

Page 188: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

a. w32tm /config /syncfromflags:manual /manualpeerlist:<ntp-server1>,<ntp-server2>

b. net stop w32time

c. net start w32time

Solución de problemas

188 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 189: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 27

Propiedades de core-site.xml de Hadoop paraECS HDFS

l Propiedades de Hadoop core-site.xml para ECS HDFS......................................... 190

Propiedades de core-site.xml de Hadoop para ECS HDFS 189

Page 190: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Propiedades de Hadoop core-site.xml para ECS HDFSAl configurar el archivo Hadoopcore-site.xml, utilice esta tabla como referencia paralas propiedades y sus valores relacionados.

Tabla 25 Propiedades de Hadoop core-site.xml

Propiedad Descripción

Propiedades de implementación del sistema de archivos

fs.viprfs.impl <property><name>fs.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

fs.AbstractFileSystem.viprfs.impl

<property> <name>fs.AbstractFileSystem.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value> </property>

Propiedades que definen la sección de autoridad del URI del sistema de archivos de ECS HDFS

fs.vipr.installations Una lista de nombres separados por comas. Los nombres se definen aún más mediante la propiedadfs.vipr.installation.[installation_name].hosts para identificar de manera única conjuntos de nodos dedatos de ECS. Los nombres se utilizan como un componente de la sección de autoridad del URI delsistema de archivos de ECS HDFS. Por ejemplo:

<property> <name>fs.vipr.installations</name> <value><site1>,<abc>,<testsite></value> </property>

fs.vipr.installation.[installation_name].hosts

Las direcciones IP de los nodos de datos del cluster de ECS o los balanceadores de carga para cadanombre que figura en la lista de la propiedad fs.vipr.installations. Especifique el valor en forma de listade direcciones IP separadas por comas. Por ejemplo:

<property> <name>fs.vipr.installation.<site1>.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value> </property>

<property> <name>fs.vipr.installation.<abc>.hosts</name> <value>198.51.100.0,198.51.100.1,198.51.100.2</value> </property>

<property> <name>fs.vipr.installation.<testsite>.hosts</name> <value>198.51.100.10,198.51.100.11,198.51.100.12</value> </property>

Propiedades de core-site.xml de Hadoop para ECS HDFS

190 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 191: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 25 Propiedades de Hadoop core-site.xml (continuación)

Propiedad Descripción

fs.vipr.installation.[installation_name].resolution

Especifica cómo el software de ECS HDFS sabe cómo obtener acceso a los nodos de datos de ECS. Losvalores son los siguientes:

l dynamic: Utilice este valor cuando obtiene acceso a nodos de datos de ECS directamente sin unbalanceador de carga.

l fixed: Utilice este valor cuando obtiene acceso a nodos de datos de ECS con un balanceador decarga.

<property> <name>fs.vipr.installation.testsite.resolution</name> <value>dynamic</value> </property>

fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms

Cuando la propiedad fs.vipr.installation.[installation_name].resolution se configura como dynamic, estapropiedad especifica la frecuencia de consulta a ECS para la lista de nodos activos. Los valores seexpresan en milisegundos. El valor predeterminado es de 10 minutos.

<property> <name>fs.vipr.installation.<testsite>.resolution.dynamic.time_to_live_ms</name> <value>600000</value> </property>

ECSURI del sistema de archivos

fs.defaultFS Una propiedad estándar de Hadoop que especifica el URI del sistema de archivos predeterminado. Laconfiguración de esta propiedad en el sistema de archivos de ECS HDFS es opcional. Si no se configuraen el sistema de archivos de ECS HDFS, debe especificar el URI completo en cada operación del sistemade archivos. El URI del sistema de archivos de HDFS tiene este formato:

viprfs://[bucket_name].[namespace].[installation_name]

l bucket_name: El nombre de bucket activado para HDFS que contiene los datos que desea utilizarcuando ejecuta tareas de Hadoop.

l namespace: El espacio de nombres del grupo de usuarios relacionado con el bucket activado paraHDFS.

l installation_name: El nombre relacionado con el conjunto de nodos de datos de ECS que Hadooppuede utilizar para tener acceso a los datos de ECS. El valor de esta propiedad debe coincidir conuno de los valores especificados en la propiedad fs.vipr.installations.

Por ejemplo:

<property> <name>fs.defaultFS</name> <value>viprfs://testbucket.s3.testsite</value> </property>

HBase requiere que haya un sistema de archivos predeterminado definido.

Propiedad UMASK

Propiedades de core-site.xml de Hadoop para ECS HDFS

Propiedades de Hadoop core-site.xml para ECS HDFS 191

Page 192: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 25 Propiedades de Hadoop core-site.xml (continuación)

Propiedad Descripción

fs.permissions.umask-mode

Esta propiedad estándar de Hadoop especifica cómo ECS HDFS debe computar permisos en objetos.Los permisos se computan aplicando una propiedad umask en los permisos de entrada. El valorrecomendado para simple y Kerberos configuraciones es: 022. Por ejemplo:

<property><name>fs.permissions.umask-mode</name><value>022</value></property>

Propiedades de traducción de identidad

fs.viprfs.auth.identity_translation

Esta propiedad especifica cómo elECSCliente de HDFS determina qué dominio de Kerberos pertenece unusuario determinado si uno no se especifica.ECSnodos de datos de almacenan propietarios de archivoscomo username@REALM, mientras queHadoopalmacena los propietarios de archivos como el nombrede usuario.Los valores posibles son los siguientes:

l NONE: Opción predeterminada. Los usuarios no se mapean en un dominio. Utilice estaconfiguración con un clúster de Hadoop que utilice la seguridad simple. Con esta configuración,ECS HDFS no realiza la traducción de dominio.

l CURRENT_USER_REALM: Es válido cuando Kerberos está presente. El dominio del usuario sedetecta automáticamente, y es el dominio del usuario que esté conectado actualmente. En esteejemplo, el dominio es EMC.COM porque sally está en el dominio EMC.COM. La propiedad delarchivo se cambia a [email protected].

# kinit [email protected]# hdfs dfs -chown john /path/to/file

Los dominios proporcionados en la línea de comandos tienen prioridad sobre los valores depropiedades.

<property> <name>fs.viprfs.auth.identity_translation </name> <value>CURRENT_USER_REALM</value> </property>

Nota

Ahora está en desuso FIXED_REALM.

fs.viprfs.auth.realm El dominio asignado a usuarios cuando la propiedad fs.viprfs.auth.identity_translation se configura enFIXED_REALM.Esto ahora está en desuso.

fs.viprfs.auth.anonymous_translation

Esta propiedad se utiliza para determinar cómo se asignan los usuarios y grupos a archivos reciéncreados

Nota

Esta propiedad se utilizó anteriormente para determinar qué pasó con los archivos que no se hayanpropietario. Estos archivos se dice que ser propiedad de "anonymous". Archivos y directorios anónimaya no son de propiedad y.

Propiedades de core-site.xml de Hadoop para ECS HDFS

192 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 193: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Tabla 25 Propiedades de Hadoop core-site.xml (continuación)

Propiedad Descripción

Los valores posibles son:

l LOCAL_USER1: Utilice esta configuración con un clúster de Hadoop que utilice la seguridad simple.Asigna el usuario y el grupo de Unix del clúster de Hadoop a directorios y archivos recientementecreados.

l CURRENT_USER: Utilice esta configuración para un clúster de Hadoop kerberizado. Asigna laentidad de seguridad de Kerberos ([email protected]) como el propietario del archivo o directorio yutiliza el grupo que se asignó como el valor predeterminado para el depósito.

l NONE: (En desuso) Anteriormente, indicaba que no se debía ejecutar ninguna asignación desde losobjetos de propiedad anónima al usuario actual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>CURRENT_USER</value> </property>

Propiedades del dominio Kerberos y de principal del servicio

viprfs.security.principal Esta propiedad especifica el principal del servicio de ECS. Esta propiedad informa a KDC sobre elservicio de ECS. Este valor es específico de su configuración.El nombre principal puede incluir "_HOST", que se sustituye automáticamente por el nodo de datos realFQDN en el momento de la ejecución.

Por ejemplo:

<property> <name>viprfs.security.principal</name> <value>vipr/[email protected]</value></property>

Ejemplo de core-site.xml para el modo de autenticación simpleEste core-site.xml es un ejemplo de propiedades de ECS HDFS para el modo deautenticación simple.

Ejemplo 2 core-site.xml

<property> <name>fs.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

<property> <name>fs.AbstractFileSystem.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

<property> <name>fs.vipr.installations</name> <value>Site1</value></property>

Propiedades de core-site.xml de Hadoop para ECS HDFS

Ejemplo de core-site.xml para el modo de autenticación simple 193

Page 194: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Ejemplo 2 core-site.xml (continuación)

<property> <name>fs.vipr.installation.Site1.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value></property>

<property> <name>fs.vipr.installation.Site1.resolution</name> <value>dynamic</value></property>

<property> <name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name> <value>900000</value></property>

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.Site1/</value></property>

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>CURRENT_USER</value></property>

<property> <name>fs.viprfs.auth.identity_translation</name> <value>FIXED_REALM</value></property>

<property> <name>fs.viprfs.auth.realm</name> <value>MY.TEST.REALM</value></property>

Propiedades de core-site.xml de Hadoop para ECS HDFS

194 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 195: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

CAPÍTULO 28

Ejemplo de metadatos de depósito seguro

l Asegurar los metadatos del depósito.................................................................. 196

Ejemplo de metadatos de depósito seguro 195

Page 196: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Asegurar los metadatos del depósitoLa siguiente lista

{ "head_type": "hdfs", "metadata": [ { "name": "internal.kerberos.user.ambari-qa.name", "value": "ambari-qa@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.ambari-qa.shortname", "value": "ambari-qa" }, { "name": "internal.kerberos.user.ambari-qa.groups", "value": "hadoop,users" }, { "name": "internal.kerberos.user.amshbase.name", "value": "amshbase@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.amshbase.shortname", "value": "ams" }, { "name": "internal.kerberos.user.amshbase.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.cmaurer.name", "value": "cmaurer@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.cmaurer.shortname", "value": "cmaurer" }, { "name": "internal.kerberos.user.cmaurer.groups", "value": "cmaurer,adm,cdrom,sudo,dip,plugdev,users,lpadmin,sambashare" }, { "name": "internal.kerberos.user.dn.name", "value": "dn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.dn.shortname", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.dn.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.hbase.name", "value": "hbase@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hbase.shortname", "value": "hbase" }, { "name": "internal.kerberos.user.hbase.groups",

Ejemplo de metadatos de depósito seguro

196 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 197: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

"value": "hadoop" }, { "name": "internal.kerberos.user.hdfs.name", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hdfs.shortname", "value": "hdfs" }, { "name": "internal.kerberos.user.hdfs.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.hive.name", "value": "hive@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hive.shortname", "value": "hive" }, { "name": "internal.kerberos.user.hive.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.jhs.name", "value": "jhs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.jhs.shortname", "value": "mapred" }, { "name": "internal.kerberos.user.jhs.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.nm.name", "value": "nm@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nm.shortname", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nm.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.nn.name", "value": "nn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nn.shortname", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nn.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.oozie.name", "value": "oozie@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.oozie.shortname",

Ejemplo de metadatos de depósito seguro

Asegurar los metadatos del depósito 197

Page 198: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

"value": "oozie" }, { "name": "internal.kerberos.user.oozie.groups", "value": "hadoop,users" }, { "name": "internal.kerberos.user.rm.name", "value": "rm@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.rm.shortname", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.rm.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.spark.name", "value": "spark@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.spark.shortname", "value": "spark" }, { "name": "internal.kerberos.user.spark.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.yarn.name", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.yarn.shortname", "value": "yarn" }, { "name": "internal.kerberos.user.yarn.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.zookeeper.name", "value": "zookeeper@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.zookeeper.shortname", "value": "ams" }, { "name": "internal.kerberos.user.zookeeper.groups", "value": "hadoop" }, { "name": "hadoop.proxyuser.hcat.groups", "value": "*" }, { "name": "hadoop.proxyuser.hcat.hosts", "value": "*" }, { "name": "hadoop.proxyuser.yarn.users", "value": "*" }, { "name": "hadoop.proxyuser.yarn.hosts",

Ejemplo de metadatos de depósito seguro

198 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos

Page 199: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

"value": "*" }, { "name": "hadoop.proxyuser.hbase.hosts", "value": "*" }, { "name": "hadoop.proxyuser.hbase.users", "value": "cmaurer" }, { "name": "hadoop.proxyuser.hive.hosts", "value": "10.247.179.42" }, { "name": "hadoop.proxyuser.hive.users", "value": "*" }, { "name": "hadoop.proxyuser.hcat.groups", "value": "*" }, { "name": "hadoop.proxyuser.hcat.hosts", "value": "*" }, { "name": "dfs.permissions.supergroup", "value": "hdfs" } ]}

Ejemplo de metadatos de depósito seguro

Asegurar los metadatos del depósito 199

Page 200: Guía de acceso a datos...9 11 S3 13 Introducción al servicio de soporte de Amazon S3 en ECS 15 Soporte de API de Amazon S3 en ECS.....16 Funciones compatibles de S3 17 Funcionalidades

Ejemplo de metadatos de depósito seguro

200 Elastic Cloud Storage (ECS) 2.2 Guía de acceso a datos