guia de acesso a dados - mexico.emc.com · elastic cloud storage (ecs) versão 2.2.1 guia de acesso...

204
Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Upload: truongthu

Post on 01-Jan-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Elastic Cloud Storage (ECS)Versão 2.2.1

Guia de acesso a dados302-002-791

03

Page 2: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Copyright © 2013-2016 EMC Corporation. Todos os direitos reservados. Publicado no Brasil.

Publicado em Agosto, 2016

A EMC assegura que as informações apresentadas neste documento estão corretas. As informações estão sujeitas a alteraçõessem prévio aviso.

AS INFORMAÇÕES CONTIDAS NESTA PUBLICAÇÃO SÃO FORNECIDAS “NO ESTADO EM QUE SE ENCONTRAM." A EMCCORPORATION NÃO GARANTE NENHUM TIPO DE INFORMAÇÃO CONTIDA NESTA PUBLICAÇÃO, ASSIM COMO SE ISENTA DASGARANTIAS PARA A COMERCIALIZAÇÃO DE UM PRODUTO PARA UM PROPÓSITO ESPECÍFICO.

EMC² e, EMC e o logotipo da EMC são marcas registradas da EMC Corporation nos Estados Unidos. Todas as outras marcascomerciais aqui utilizadas pertencem a seus respectivos proprietários.

Para obter a documentação regulatória mais atualizada para sua linha de produtos, visite o site Suporte on-line da EMC(https://support.emc.com).

EMC Computer Systems Brasil LtdaRua Verbo Divino, 1.488 – 4º andar São Paulo – SP – 04719-002 0800-553622Tel.: (11) 5185-8800 Fax: (11) 5185-8999brazil.emc.com

2 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 3: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

9

11

S3 13

Introdução ao suporte a Amazon S3 do ECS 15

Suporte à API Amazon S3 no ECS.................................................................. 16

Recursos compatíveis do S3 17

Recursos compatíveis e não compatíveis da API do S3.................................. 18

Extensões S3 21

Extensões da API...........................................................................................22Atualizando um intervalo de bytes em um objeto.......................................... 22Sobregravação de parte de um objeto........................................................... 24Acrescentando dados a um objeto................................................................ 24Lendo vários intervalos de byte em um objeto...............................................25

Extensão de pesquisa de metadados 27

Usando a pesquisa de metadados................................................................ 28Atribuir valores de índice de metadados a um bucket....................................28

Configurando valores de índice na API REST ECS Management......... 28Configurando valores na API do S3...................................................30

Atribuir metadados aos objetos usando o protocolo S3.................................31Usar consultas de pesquisa de metadados................................................... 31

Consultas de data e hora................................................................. 33Exemplos de pesquisa de metadados.............................................. 34

Metadados de sistema do ECS e atributos opcionais.....................................35

Criar e gerenciar chaves secretas 37

Criar e gerenciar chaves secretas.................................................................. 38Criar uma chave para um usuário de objeto...................................................38

Gerar uma chave secreta no portal do ECS....................................... 38Criar uma chave secreta S3 usando a API REST de gerenciamento doECS.................................................................................................. 38

Criar uma chave secreta do S3: autoatendimento..........................................39Trabalhando com chaves de autoatendimento................................. 40

Autenticação com o serviço do S3 43

Autenticação com o serviço do S3................................................................. 44

Figuras

Tabelas

Parte 1

Capítulo 1

Capítulo 2

Capítulo 3

Capítulo 4

Capítulo 5

Capítulo 6

CONTEÚDO

Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados 3

Page 4: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Acesso ao client Java 45

Usando SDKs para acessar o serviço do S3................................................... 46Usando o SDK do Java Amazon.........................................................46SDK Java client para ECS.................................................................. 48

OpenStack Swift 49

Introdução ao suporte a OpenStack Swift do ECS 51

Suporte à API do OpenStack Swift no ECS..................................................... 52

Recursos compatíveis do Swift 53

Operações compatíveis com o OpenStack Swift............................................ 54

Extensões Swift 57

Extensões da API do SWIFT............................................................................58Atualizando um intervalo de bytes em um objeto.......................................... 58Sobregravação de parte de um objeto........................................................... 59Acrescentando dados a um objeto................................................................ 60Lendo vários intervalos de byte em um objeto...............................................61

Authentication 63

Autenticação do OpenStack Swift..................................................................64Criar usuários Swift no Portal do ECS................................................64

Autenticação do OpenStack Versão 1 ........................................................... 65Autenticação do OpenStack Versão 2............................................................67Autenticação usando a integração do ECS Keystone V3.................................69

Configurar o ECS para autenticar usuários do keystone.................... 70

Autorização 71

Autorização de recipiente..............................................................................72

EMC Atmos 75

Introdução ao suporte a EMC Atmos do ECS 77

Suporte à API do EMC Atmos no ECS..............................................................78

Recursos compatíveis do Atmos 79

Chamadas API REST compatíveis do EMC Atmos............................................80Chamadas API REST incompatíveis do EMC Atmos.........................................81Suporte a sub-tenants nas chamadas API REST do EMC Atmos...................... 82

Extensões da API do Atmos 83

Extensões da API...........................................................................................84Acrescentando dados a um objeto................................................... 84

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

CONTEÚDO

4 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 5: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAS 87

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS89

Configurando o suporte a CAS no ECS........................................................... 90Armazenamento estático...............................................................................90Conformidade............................................................................................... 92

Fortalecimento da plataforma.......................................................... 92Política de conformidade e retenção................................................ 92Agente de conformidade.................................................................. 94

Retenção do CAS no ECS............................................................................... 94Configurar as políticas de retenção de namespace........................................ 96Configurar um bucket para o CAS.................................................................. 97Configurar um usuário de objeto do CAS....................................................... 98Configurar ACLs de bucket para um usuário...................................................99APIs REST do ECS que dão suporte a usuários do CAS................................. 101Suporte à API do SDK CAS (Content-Addressed Storage, armazenamento deconteúdo endereçável)................................................................................102

API ECS Management 105

Introdução à API REST ECS Management 107

API REST de gerenciamento do ECS............................................................. 108

Autenticação com o serviço de gerenciamento do ECS 109

Autenticar-se com o API REST de gerenciamento do ECS..............................110Autenticar-se com AUTH-TOKEN .....................................................110Autenticar com cookies..................................................................111Fazer log-out.................................................................................. 112Whoami......................................................................................... 112

Resumo da API REST ECS Management 115

Resumo da API REST de gerenciamento do ECS........................................... 116

HDFS 121

O que é ECS HDFS? 123

O que é ECS HDFS?......................................................................................124Configurando o Hadoop para usar o ECS HDFS ........................................... 125URI do ECS HDFS para acesso ao file system............................................... 125Modos de autenticação do Hadoop............................................................. 126

Acessando o bucket como um file system...................................... 127Grupo padrão e ACLs de grupos personalizados dos buckets......... 127Superusuário e supergrupo do Hadoop.......................................... 128Acesso multiprotocolo (cruzado)....................................................128Modo de autenticação Kerberos do Hadoop................................... 129Usuário proxy.................................................................................129Usuário de equivalência.................................................................129Suporte a SymLink......................................................................... 130

Parte 4

Capítulo 16

Parte 5

Capítulo 17

Capítulo 18

Capítulo 19

Parte 6

Capítulo 20

CONTEÚDO

Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados 5

Page 6: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Migração de um cluster simples para um cluster de Kerberos do Hadoop....130Interação do file system.............................................................................. 131Aplicativos Hadoop compatíveis e não compatíveis.................................... 131

Criar um bucket para o file system do HDFS 133

Criar um bucket para HDFS usando o Portal do ECS..................................... 134Configurar ACLs personalizadas de buckets de grupo.....................136Configurar as permissões de ACL dos buckets para um usuário......138

Exemplos de permissões de bucket do Hadoop e do ECS............................ 139

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS143

Implementando um cluster Hortonworks com Ambari..................................144Faça download do Ambari........................................................................... 144Fazer download da biblioteca de client do ECS HDFS...................................144Configurar um repositório local no qual será implementada a biblioteca declient do ECS...............................................................................................145Instalar o servidor do Ambari.......................................................................145Habilitar o pacote de discos Ambari Hadoop ECS........................................ 145Instalar manualmente o agente do Ambari.................................................. 146Instalar o Hadoop .......................................................................................147

Configurar a integração do ECS HDFS a um cluster simples do Hadoop151

Configurar a integração do ECS HDFS a um cluster simples do Hadoop........152Planejar a integração do ECS HDFS e do Hadoop......................................... 152Obter o pacote de instalação e suporte do ECS HDFS.................................. 153Implementar a biblioteca de client do ECS HDFS......................................... 153Configurar o Pivotal HAWQ.......................................................................... 155Editar o arquivo core-site.xml do Hadoop.................................................... 156Inicializar o banco de dados HAWQ ............................................................ 160Editar o hbase-site.xml do HBASE............................................................... 160Reiniciar e verificar o acesso....................................................................... 161

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop(que passou por Kerberos) 163

Integrar o cluster seguro do Hadoop ao ECSHDFS ....................................... 164Planejar a migração de um cluster simples para um cluster de Kerberos......164Configurar o Pivotal HAWQ em um ambiente do Kerberos............................165Configurar os nós do ECS com o principal do serviço do ECS....................... 166Proteger o bucket do ECS usando metadados..............................................169

Carregar valores de metadados no ECS usando a API REST degerenciamento...............................................................................172

Edite o core-site.xml....................................................................................173Inicializar o banco de dados do HAWQ ....................................................... 177Reiniciar e verificar o acesso....................................................................... 177

Orientação sobre a configuração do Kerberos 179

Orientação sobre a configuração do Kerberos............................................. 180Configurar o KDC do Kerberos.........................................................180

Capítulo 21

Capítulo 22

Capítulo 23

Capítulo 24

Capítulo 25

CONTEÚDO

6 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 7: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Configurar a autenticação de usuários do AD para Kerberos...........181Configurar um ou mais novos nós do ECS com o principal do serviço do ECS................................................................................................................... 183

Solução de problemas 185

Solução de problemas................................................................................ 186Verificar se o AD/LDAP está corretamente configurado com o cluster seguro doHadoop.......................................................................................................186Reiniciar serviços após a configuração do hbase.........................................187Falhas do teste do Pig: unable to obtain Kerberos principal.........................187Permissão negada para o usuário do AD..................................................... 187Erros de permissões....................................................................................187

Erros INSUFFICIENT_PERMISSIONS................................................. 188Falha ao obter credenciais............................................................. 188Erro de acesso ao bucket............................................................... 188Erro de acesso a object.................................................................. 189

Falha ao processar solicitação.................................................................... 190Ativar o registro e a depuração do Kerberos no lado do client......................191Depurar o Kerberos no KDC......................................................................... 191Eliminar a precisão do relógio..................................................................... 191

Propriedades do core-site.xml do Hadoop para ECS HDFS 193

Propriedades do core-site.xml do Hadoop para HDFS ECS........................... 194Amostra de core-site.xml para o modo de autenticação simples.....197

Exemplo de metadados seguros de bucket 199

Proteger metadados do bucket....................................................................200

Capítulo 26

Capítulo 27

Capítulo 28

CONTEÚDO

Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados 7

Page 8: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CONTEÚDO

8 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 9: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Habilite a função Compliance em um novo namespace no Portal do ECS....................... 94Nova política de retenção.............................................................................................. 97Políticas de retenção de um namespace........................................................................ 97Configurações de CAS dos usuários de objeto............................................................... 98Editar ACL do bucket......................................................................................................99Gerenciamento de ACLs dos buckets........................................................................... 100Integração do ECS HDFS em um cluster do Hadoop ..................................................... 124

1234567

FIGURAS

Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados 9

Page 10: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

FIGURAS

10 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 11: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

APIs do S3 compatíveis................................................................................................. 18Recursos adicionais.......................................................................................................19APIs do S3 incompatíveis.............................................................................................. 19Extensões da API de objeto............................................................................................22Chamadas do OpenStack compatíveis...........................................................................54Chamadas do OpenStack Swift incompatíveis............................................................... 55Extensões da API do SWIFT............................................................................................ 58Chamadas API REST do Atmos compatíveis....................................................................80Chamadas API REST do Atmos incompatíveis.................................................................81Extensões da API de objeto............................................................................................84Requisitos comparados de arquivamento regular e estático.......................................... 91Recursos de retenção da API REST ECS.......................................................................... 95ACLs dos buckets........................................................................................................ 100Grupos de ACL dos buckets......................................................................................... 101API REST de gerenciamento do ECS- resumo dos métodos........................................... 116Exemplos de permissões de bucket para acesso ao file system no modo simples........139Exemplo de permissões de bucket para acesso ao file system no modo Kerberos........140Pré-requisitos de configuração do ECS HDFS................................................................152Biblioteca de client do ECS HDFS................................................................................. 153Conector ECS HAWQ.................................................................................................... 155locais do core-site.xml.................................................................................................156locais de hbase-site.xml.............................................................................................. 160Conector ECS HAWQ.................................................................................................... 165Local dos arquivos core-site.xml ................................................................................. 173Propriedades do core-site.xml do Hadoop ...................................................................194

12345678910111213141516171819202122232425

TABELAS

Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados 11

Page 12: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

TABELAS

12 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 13: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

PARTE 1

S3

Capítulo 1, "Introdução ao suporte a Amazon S3 do ECS"

Capítulo 2, "Recursos compatíveis do S3"

Capítulo 3, "Extensões S3"

Capítulo 4, "Extensão de pesquisa de metadados"

Capítulo 5, "Criar e gerenciar chaves secretas"

Capítulo 6, "Autenticação com o serviço do S3"

Capítulo 7, "Acesso ao client Java"

S3 13

Page 14: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

S3

14 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 15: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 1

Introdução ao suporte a Amazon S3 do ECS

l Suporte à API Amazon S3 no ECS.......................................................................... 16

Introdução ao suporte a Amazon S3 do ECS 15

Page 16: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Suporte à API Amazon S3 no ECSEsta seção descreve o suporte do ECS à API Amazon S3.

O Amazon S3 Object Service é disponibilizado nas portas a seguir.

Protocolo Portas

HTTP 9020

HTTPS 9021

Os seguintes tópicos descrevem o suporte à API S3, a extensão oferecida pelo ECS, edescrevem como se autenticar no serviço e como usar SDKs para desenvolver clientspara acessar o serviço:

l Recursos compatíveis e não compatíveis da API do S3 na página 18

l Extensões da API na página 22

l Usando a pesquisa de metadados na página 28

l Criar e gerenciar chaves secretas na página 38

l Autenticação com o serviço do S3 na página 44

l Usando SDKs para acessar o serviço do S3 na página 46

Alguns aspectos do endereçamento e da autenticação de buckets são específicos aoECS. Se você deseja configurar um aplicativo existente para comunicação com o ECS, oudesenvolver um novo aplicativo que use a API do S3 para comunicação com o ECS,consulte o seguinte tópico:

l Guia do administrador: abordar o armazenamento em object do ECS e usar a URLbase

Introdução ao suporte a Amazon S3 do ECS

16 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 17: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 2

Recursos compatíveis do S3

l Recursos compatíveis e não compatíveis da API do S3.......................................... 18

Recursos compatíveis do S3 17

Page 18: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Recursos compatíveis e não compatíveis da API do S3ECS dá suporte a um subconjunto da API REST Amazon S3.

As seguintes seções detalham as APIs compatíveis e não compatíveis:

l APIs do S3 compatíveis na página 18

l APIs do S3 incompatíveis na página 19

APIs do S3 compatíveisA tabela a seguir lista os métodos da API do S3 compatíveis.

Tabela 1 APIs do S3 compatíveis

Recurso Observações

GET service ECS dá suporte aos parâmetros marker e max-keys para permitira paginação da lista de buckets.

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

Por exemplo:

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

DELETE Bucket

DELETE Bucket cors

DELETE Bucket lifecycle Somente a peça de expiração é compatível com o ciclo de vida.As políticas relacionadas a arquivamento (AWS Glacier) não sãocompatíveis.

GET Bucket (List Objects)

GET Bucket cors

GET Bucket acl

GET Bucket lifecycle Somente a peça de expiração é compatível com o ciclo de vida.As políticas relacionadas a arquivamento (AWS Glacier) não sãocompatíveis.

GET Bucket Object versions

GET Bucket versioning

HEAD Bucket

List Multipart Uploads

PUT Bucket

PUT Bucket cors

PUT Bucket acl

PUT Bucket lifecycle Somente a peça de expiração é compatível com o ciclo de vida.As políticas relacionadas a arquivamento (AWS Glacier) não sãocompatíveis.

PUT Bucket versioning

Recursos compatíveis do S3

18 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 19: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 1 APIs do S3 compatíveis (continuação)

Recurso Observações

DELETE Object

Exclui muitos objetos

GET Object

GET Object ACL

HEAD Object

PUT Object Dá suporte a PUT fragmentada

PUT Object acl

PUT Object - Copy

OPTIONS object

Initiate Multipart Upload

Upload Part

Upload Part - Copy

Complete Multipart Upload ECS exibe uma ETag de "00" para essa solicitação. Isso édiferente das respostas do Amazon S3.

Abort Multipart Upload

List Parts

Tabela 2 Recursos adicionais

Recurso Observações

Pre-signed URLs ECS dá suporte ao uso de URLs pré-assinadas para permitir queos usuários tenham acesso aos objetos sem necessidade decredenciais.

Mais informações podem ser encontradas aqui.

Chunked PUT A operação PUT pode ser usada para fazer upload de objetos emfragmentos. A transferência fragmentada usa o cabeçalhoTransfer-Encoding (Transfer-Encoding: chunked) para especificarque o conteúdo será transmitido em fragmentos. Isso permiteque o conteúdo seja enviado antes que o tamanho total dacarga útil seja conhecido.

APIs do S3 incompatíveisA tabela a seguir lista os métodos da API do S3 não compatíveis.

Tabela 3 APIs do S3 incompatíveis

Recurso Observações

DELETE Bucket policy

Recursos compatíveis do S3

Recursos compatíveis e não compatíveis da API do S3 19

Page 20: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 3 APIs do S3 incompatíveis (continuação)

Recurso Observações

DELETE Bucket tagging

DELETE Bucket website

GET Bucket policy

GET Bucket location ECS só reconhece um só datacenter virtual.

GET Bucket logging

GET Bucket notification A notificação é definida somente para o recurso de redundânciareduzida no S3. No momento, o ECS não dá suporte anotificações.

GET Bucket tagging

GET Bucket requestPayment ECS tem seu próprio modelo para pagamentos.

GET Bucket website

PUT Bucket policy

PUT Bucket logging

PUT Bucket notification A notificação é definida somente para o recurso de redundânciareduzida no S3. No momento, o ECS não dá suporte anotificações.

PUT Bucket tagging

PUT Bucket requestPayment ECS tem seu próprio modelo para pagamentos.

PUT Bucket website

Object APIs

GET Object torrent

POST Object

POST Object restore Essa operação está relacionada ao AWS Glacier, que não écompatível com o ECS.

Recursos compatíveis do S3

20 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 21: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 3

Extensões S3

l Extensões da API...................................................................................................22l Atualizando um intervalo de bytes em um objeto.................................................. 22l Sobregravação de parte de um objeto................................................................... 24l Acrescentando dados a um objeto........................................................................ 24l Lendo vários intervalos de byte em um objeto.......................................................25

Extensões S3 21

Page 22: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Extensões da APIVárias extensões das APIs de objeto são compatíveis.

As extensões e as APIs que dão suporte a elas são listados na tabela a seguir.

Tabela 4 Extensões da API de objeto

Recurso Observações

Object Range Update Usa o cabeçalho Range para especificar o intervalo de objeto a seratualizado.

Consulte Atualizando um intervalo de bytes em um objeto na página22

Object RangeOverwrite

Usa o cabeçalho Range para especificar o intervalo de objeto a sersobregravado.

Consulte Sobregravação de parte de um objeto na página 24

Object Range Append Usa o cabeçalho Range para especificar o intervalo de objetoacrescentado.

Acrescentando dados a um objeto na página 24

Object Range Read Usa o cabeçalho Range para especificar o intervalo de bytes de objetopara ler.

Consulte Lendo vários intervalos de byte em um objeto na página25

Metadata Search Permite a pesquisa de objects com base nos metadados anteriormenteindexados.

Consulte Usando a pesquisa de metadados na página 28

Atualizando um intervalo de bytes em um objetoUm exemplo do uso de extensões da API do ECS para atualizar um intervalo de bytes deum objeto é fornecido abaixo.

Primeiro, faça uma primeira solicitação GET no objeto nomeado object1 encontrado embucket1 para analisar o objeto. object1 tem o 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

Extensões S3

22 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 23: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

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.

Agora você deseja atualizar um intervalo de bytes específico do objeto. Para fazer isso, ocabeçalho Range na solicitação de dados de objeto deve incluir o deslocamento do inícioe do fim do objeto que deseja atualizar. O formato é: Range:bytes=<startOffset>-<endOffset>No exemplo a seguir, a solicitação PUT inclui o cabeçalho Range com o valorbytes=10-14, que indica que os bytes 10,11,12,13,14 devem ser substituídos pelovalor enviado na solicitação. Aqui, o novo valor green está sendo enviado.

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

Ao ler o objeto novamente, o novo valor agora será The quick green fox jumpsover the lazy dog. (A palavra brown foi substituída por green.) Você atualizouum intervalo específico de bytes desse 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.

Extensões S3

Atualizando um intervalo de bytes em um objeto 23

Page 24: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Sobregravação de parte de um objetoUm exemplo do uso das extensões da API do ECS para sobregravar dados a um objeto éfornecido abaixo.

Você pode sobregravar parte de um objeto oferecendo apenas o deslocamento de iníciona solicitação de dados. Os dados na solicitação serão gravados com início nodeslocamento fornecido. O formato é: Range: <startingOffset>-Por exemplo, para gravar os dados brown cat iniciando no deslocamento 10, vocêemitiria essa solicitação 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

Ao recuperar o objeto, você pode encontrar o valor final The quick brown catjumps over the lazy dog and cat. (green fox foi substituído por browncat). Você sobregravou parte dos dados nesse objeto no deslocamento inicial fornecido.

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.

Acrescentando dados a um objetoUm exemplo do uso das extensões da API do ECS para acrescentar dados a um objeto éfornecido abaixo.

Pode haver os casos em que é necessário acrescentar a um objeto, mas determinar odeslocamento exato de bytes não é eficiente ou útil. Para este cenário, o ECS fornece a

Extensões S3

24 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 25: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

capacidade de acrescentar atomicamente os dados ao objeto sem especificar umdeslocamento (o deslocamento correto é devolvido na resposta).

Um cabeçalho Range com o valor especial bytes=-1- pode ser usado para acrescentardados a um objeto. Dessa forma, o objeto pode ser estendido sem saber o tamanho doobjeto existente.

O formato é: Range: bytes=-1-

A seguir, há uma amostra de solicitação que demonstra o acréscimo a um objetoexistente usando um valor Range de bytes=-1-. Aqui, o valor and cat é enviado nasolicitação.

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

Ao recuperar o objeto novamente, você pode encontrar o valor total The quick greenfox jumps over the lazy dog and cat. Você acrescentou dados para esseobjeto.

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.

Lendo vários intervalos de byte em um objetoUm exemplo do uso das extensões da API do ECS para ler vários intervalos de bytes emum objeto é apresentado abaixo.

Para ler dois intervalos específicos de bytes no objeto chamado object1, você emitiriaa solicitação GET a seguir para Range: bytes==4-8,41-44. A resposta de leituraseria para as palavras quick e lazy.

Extensões S3

Lendo vários intervalos de byte em um objeto 25

Page 26: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Obs.

A API do Amazon S3 dá suporte a apenas um intervalo ao usar o cabeçalho HTTP Rangepara leitura; O ECS é compatível com vários intervalos de byte.

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--

Extensões S3

26 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 27: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 4

Extensão de pesquisa de metadados

l Usando a pesquisa de metadados........................................................................ 28l Atribuir valores de índice de metadados a um bucket............................................28l Atribuir metadados aos objetos usando o protocolo S3.........................................31l Usar consultas de pesquisa de metadados........................................................... 31l Metadados de sistema do ECS e atributos opcionais.............................................35

Extensão de pesquisa de metadados 27

Page 28: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Usando a pesquisa de metadadosA API do ECS compatível com S3 oferece uma extensão de pesquisa de metadados para aAPI que permite que os objetos de um bucket sejam indexados com base em seusmetadados e que o índice de metadados seja consultado para localizar objetos e seusdados associados.

Tradicionalmente, os metadados podem ser associados a objetos usando a API ECS S3 e,se você conhece a identidade do objeto em que estiver interessado, poderá ler seusmetadados. No entanto, sem o recurso de pesquisa de metadados do ECS, não épossível localizar um objeto com base em seus metadados sem fazer a iteração por meiodo conjunto de objetos de um bucket.

Os metadados podem ser metadados do usuário ou metadados do sistema. Os metadadosdo sistema são definidos e gravados automaticamente em objetos pelo ECS, enquantoos metadados do usuário são gravados por clients com base nos requisitos do usuáriofinal. Os metadados do sistema e do usuário podem ser indexados e usados como basepara as pesquisas de metadados. O número de valores de metadados que podem serindexados é limitado a 5 e deve ser definido na criação do bucket.

Além dos metadados do sistema, os objetos também têm atributos que podem serexibidos como parte dos resultados da pesquisa de metadados.

Os seguintes tópicos abordam as etapas envolvidas na configuração e no uso do recursode pesquisa de metadados:

l Atribuir valores de índice de metadados a um bucket na página 28

l Atribuir metadados aos objetos usando o protocolo S3 na página 31

l Usar consultas de pesquisa de metadados na página 31

Os valores de metadados do sistema que estão disponíveis e podem ser indexados, e osvalores de metadados que podem ser exibidos opcionalmente com os resultados daconsulta de pesquisa, são listados aqui na página 35.

Atribuir valores de índice de metadados a um bucketVocê pode definir valores de índice de metadados em um bucket usando o Portal do ECSou a API REST ECS Management, ou usando o protocolo S3. Os valores de índice devemrefletir o nome dos metadados que estão sendo indexados e podem ser baseados emmetadados de sistema ou metadados de usuário.

Uma lista dos metadados de sistema disponíveis é apresentada em Metadados desistema do ECS e atributos opcionais na página 35.

Os valores de índice são definidos na criação de um bucket. Você pode desabilitar o usode indexação em um bucket, mas não pode alterar nem excluir valores de índiceindividuais.

Configurando valores de índice no PortalA página Manage > Bucket permite a criação de buckets e a atribuição de valores deíndice durante o processo de criação. Consulte Guia do administrador: criar e configurarbuckets para obter detalhes.

Configurando valores de índice na API REST ECS Management

Os métodos oferecidos pela API REST ECS Management para trabalhar com índices sãolistados na tabela a seguir e links são fornecidos para referências sobre a API.

Extensão de pesquisa de metadados

28 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 29: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Caminho da API Descrição

GET /object/bucket/searchmetadata

Lista os nomes de todas as chaves de metadados de sistemadisponíveis para atribuição a um novo bucket.

POST /object/bucket Atribui os nomes de índice de metadados que serão indexadospara o bucket especificado. Os nomes de índice são fornecidosna carga útil do método.

GET /object/bucket Obtém uma lista de buckets. As informações de cada bucketmostram os detalhes de pesquisa de metadados.

GET /object/bucket/{bucketname}/info

Obtém os detalhes do bucket selecionado. As informações dobucket incluem os detalhes de pesquisa de metadados.

DELETE /object/bucket/{bucketname}/searchmetadata

Interrompe a indexação usando as chaves de metadados.

Exemplo: obtém a lista dos nomes de metadados disponíveisO exemplo a seguir obtém a lista completa de nomes de metadados disponíveis paraindexação e que podem ser exibidos nas consultas.

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

Os resultados da consulta são apresentados a seguir.

<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> <Attribute> <Name>ContentType</Name> <Datatype>string</Datatype> </Attribute> <Attribute> <Name>Expiration</Name> <Datatype>datetime</Datatype> </Attribute> <Attribute> <Name>ContentEncoding</Name> <Datatype>string</Datatype> </Attribute>

Extensão de pesquisa de metadados

Configurando valores de índice na API REST ECS Management 29

Page 30: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

<Attribute><Name>Expires</Name><Datatype>datetime</Datatype>

</Attribute><Attribute>

<Name>Retention</Name><Datatype>integer</Datatype>

</Attribute></OptionalAttributes>

</MetadataSearchList>

Exemplo: obtém a lista de chaves que estão sendo indexadas para um bucketO exemplo a seguir obtém a lista de chaves de metadados que estão sendo indexadaspara um bucket.

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

Os resultados desse exemplo são apresentados a seguir.

<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>

Configurando valores na API do S3

Os métodos oferecidos pela API do S3 para trabalhar com índices são listados na tabelaa seguir e links são fornecidos para referências sobre a API.

Caminho da API Descrição

GET /?searchmetadata Lista os nomes de todos os metadados de sistemadisponíveis para indexação em novos buckets.

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

Cria um bucket com a chave de metadados de pesquisaindicada no cabeçalho.

Obs.

Um datatype deve ser associado uma chave de metadadosde usuário, mas não é necessário para uma chave demetadados de sistema.

GET /{bucket}/?searchmetadata Obtém a lista de chaves de metadados que estão sendoindexadas para o bucket.

Extensão de pesquisa de metadados

30 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 31: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

ExemploO exemplo a seguir mostra um exemplo de tan para criar um bucket com índices demetadados para três chaves de metadados de sistema e duas chaves de metadados deusuário.

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"

Atribuir metadados aos objetos usando o protocolo S3Os usuários finais podem atribuir metadados de usuário a objetos usando o cabeçalho"x-amz-meta-". O valor atribuído pode ser qualquer cadeia de texto e distinguemaiúsculas de minúsculas.

Quando os metadados forem indexados para que possam ser usados como base parapesquisas de objeto (o recurso de pesquisa de metadados), um tipo de dado é atribuídoaos dados. Ao gravar os metadados em objetos, os clients devem gravar dados noformato adequado para que eles possam ser usados corretamente nas pesquisas.

Os tipos de dado são:

String

Se o termo de índice da pesquisa for marcado como texto, a string de metadadosserá tratada como uma string em todas as comparações da pesquisa.

Número inteiro

Se o termo de índice da pesquisa for marcado como número inteiro, a string demetadados será convertida em um número inteiro nas comparações da pesquisa.

Decimal

Se um termo de índice da pesquisa for marcado como decimal, a string demetadados será convertida em um valor decimal para que o caractere "." sejatratado como um ponto decimal.

Datetime

Se o termo de índice da pesquisa for marcado como datetime, a string demetadados será tratada como uma data e hora com o formato esperado: AAAA-MM-ddTHH:mm:ssZ. Se você quiser que a string seja tratada como datetime, deverá usaro formato AAAA-MM-ddTHH:mm:ssZ ao especificar os metadados.

ExemploO exemplo a seguir usa a API do S3 para fazer upload de um objeto e de dois valores demetadados de usuário no 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

Usar consultas de pesquisa de metadadosO recurso de pesquisa de metadados oferece uma linguagem de consulta avançada quepermite que os objetos que indexaram metadados sejam pesquisados.

A sintaxe é exibida na tabela a seguir.

Extensão de pesquisa de metadados

Atribuir metadados aos objetos usando o protocolo S3 31

Page 32: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Sintaxe da API Corpo da resposta

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>

As palavras-chave de expressão e seus significados são listados abaixo:

expression

Uma expressão na forma:

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

Onde "condition" é um filtro do nome da chave de metadados na forma:

{selector} {operator}{argument},

Por exemplo:

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

Extensão de pesquisa de metadados

32 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 33: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

selector

Um nome de chave pesquisável associado ao bucket.

operador

Um operador. Uma destas opções: ==, >, <, <=, >=

argument

Um valor em relação ao qual o seletor é testado.

attributes=[fieldname,...]

Especifica todos os atributos opcionais de objeto que devem ser incluídos norelatório. Os valores de atributos serão incluídos no relatório no qual esse atributoestá presente no objeto. Os valores opcionais de atributo abrangem:

l ContentEncoding

l ContentType

l Retenção

l Expiração

l Expires

sorted=[selector]

Especifica um nome de chave pesquisável associado ao bucket. O nome da chavedeve ser uma chave exibida na expressão. Na ausência de &sorted=nome da chave,o resultado será classificado de acordo com o primeiro nome de chave exibido naexpressão de consulta.

Obs.

Se operadores "or" forem usados na expressão, a ordem de classificação seráindeterminada.

include-older-versions=[true|false]

Quando o controle de versão do S3 estiver habilitado em um bucket, configurar essaopção como true exibirá as versões antigas e atuais dos objetos que correspondemà expressão. O padrão é false.

Consultas de data e hora

Os valores de data e hora dos metadados de usuário são especificados no formatoISO-8601 "aaaa-MM-dd'T'HH:mm:ssZ" e são mantidos pelo ECS nesse formato. Asconsultas de metadados também usam esse formato. No entanto, o ECS mantém osvalores de data e hora para os metadados de sistema como epoch time, o número demilissegundos desde o início de 1970.

Quando uma consulta exibir resultados, ela exibirá o formato de data e hora mantidopelo ECS. Um exemplo dos dois formatos é exibido a seguir.

Exemplo de cabeçalho de upload de metadados de usuário:

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

Extensão de pesquisa de metadados

Consultas de data e hora 33

Page 34: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Formato da expressão de consulta de usuário e sistema:

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

Fragmento de resultados da consulta — metadados de sistema

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

Fragmento de resultados da consulta — metadados de usuário

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

Exemplos de pesquisa de metadados

O exemplo a seguir usa a API S3 para pesquisar um bucket com correspondência detamanho específico de objeto e de valor de metadados de usuário.

Obs.

Alguns clients REST podem exigir que você codifique os "espaços" com o código de URL%20

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

O resultado mostra três objetos que correspondem à pesquisa.

<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>

Extensão de pesquisa de metadados

34 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 35: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

<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> <indexKey/> </object> </ObjectMatches></BucketQueryResult>

Metadados de sistema do ECS e atributos opcionaisOs metadados de sistema são automaticamente associados a cada objeto armazenadona área de armazenamento de objetos. Alguns metadados de sistema são semprepreenchidos e podem ser usados como chaves de índice; outros metadados não sãosempre preenchidos, mas, quando estiverem presentes, poderão ser exibidos comresultados de consulta da pesquisa de metadados.

Extensão de pesquisa de metadados

Metadados de sistema do ECS e atributos opcionais 35

Page 36: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Metadados de sistemaOs metadados de sistema listados na tabela a seguir podem ser usados como chaves deíndices da pesquisa de metadados.

Nome (alias) Type Descrição

ObjectName string Nome do objeto.

Owner string Identidade do proprietário do objeto.

Size integer Tamanho do objeto.

CreateTime datetime Horário em que o objeto foi criado.

LastModified datetime Data e hora em que o objeto foi modificado pelaúltima vez.

Obs.

Modificação compatível com extensões deatualização da faixa de bytes de S3 do ECS, não coma API S3 pura.

Atributos opcionais de metadadosOs atributos opcionais dos metadados de sistema podem ou não ser preenchidos paraum objeto, mas podem ser exibidos juntamente com os resultados de consulta dapesquisa. Os atributos opcionais dos metadados de sistema são listados na tabela aseguir.

Nome (alias) Type

ContentType string

Expiration datetime

ContentEncoding string

Expires datetime

Retention integer

Extensão de pesquisa de metadados

36 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 37: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 5

Criar e gerenciar chaves secretas

l Criar e gerenciar chaves secretas...........................................................................38l Criar uma chave para um usuário de objeto...........................................................38l Criar uma chave secreta do S3: autoatendimento..................................................39

Criar e gerenciar chaves secretas 37

Page 38: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Criar e gerenciar chaves secretasOs usuários dos serviços object do ECS precisam de uma chave secreta para seautenticar em um serviço.

As chaves secretas podem ser criadas e disponibilizadas ao usuário de objeto dasseguintes formas:

l O administrador cria uma chave e a distribui ao usuário de objeto (Criar uma chavepara um usuário de objeto na página 38).

l O usuário de objeto que é um usuário de domínio cria uma nova chave usando a APIde autoatendimento oferecida pela API REST de gerenciamento do ECS (Criar umachave secreta do S3: autoatendimento na página 39).

É possível ter 2 chaves secretas para um usuário. Ao mudar (algumas vezes chamado de"acúmulo") uma chave secreta, um tempo de expiração em minutos pode ser definidopara a chave antiga. Durante o intervalo de expiração, ambas as chaves serão aceitaspara solicitações. Isso oferece um período de tolerância em que um aplicativo pode seratualizado para usar a nova chave.

Criar uma chave para um usuário de objetoOs usuários de gerenciamento do ECS podem criar uma chave secreta para um usuáriode objeto.

l Gerar uma chave secreta no portal do ECS na página 38

l Criar uma chave secreta S3 usando a API REST de gerenciamento do ECS na página38

Gerar uma chave secreta no portal do ECSÉ possível gerar uma chave secreta no portal do ECS.

Antes de você começar

l Você deve ser um System Admin ou Namespace Admin do ECS

Caso seja um System Admin, é possível criar uma chave secreta para um usuário deobjeto que pertença a qualquer namespace. Caso seja um Namespace Admin, é possívelcriar uma chave secreta para um usuário de objeto que pertença a seu namespace.

Procedimento

1. No portal do ECS, selecione a página Manage > Users.

2. Na tabela Object Users, selecione Edit para o usuário ao qual deseja atribuir umachave secreta.

3. Em S3, selecione Generate & Add Password.

4. Copie a chave gerada e envie um e-mail ao usuário de objeto.

Criar uma chave secreta S3 usando a API REST de gerenciamento do ECSA API REST de gerenciamento do ECS permite que um usuário de gerenciamento crie umachave secreta para um usuário de objeto S3.

As APIs são as seguintes:

Criar e gerenciar chaves secretas

38 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 39: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Caminho da API Descrição

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

API que permite que chaves secretas sejam gerenciadas e atribuídasaos usuários de objeto.

O Namespace Admin pode criar chaves para os usuários de seunamespace. O System Admin pode atribuir chaves aos usuários dequalquer namespace.

Mais informações sobre as chamadas API podem ser encontradas na referência da APIREST ECS Management.

Criar uma chave secreta do S3: autoatendimentoA API REST de gerenciamento do ECS permite que os usuários de domínio autenticadossolicitem uma chave secreta para acessar a área de armazenamento de objetos.

A Referência da API REST ECS Management pode ser usada quando você quiser criar umclient personalizado para realizar determinadas operações de gerenciamento do ECS.Para as operações simples, os usuários de domínio podem usar curl ou um client HTTPbaseado em navegador para executar a API e criar uma chave secreta.

Quando um usuário executar a API object/secret-keys, o ECS criará um usuário deobjeto automaticamente e o atribuirá a uma chave secreta.

Caminho da API Descrição

/object/secret-keys

API para permitir que os usuários do client S3 criem uma nova chavesecreta que os permitirá acessar os objetos e buckets de seunamespace.

Também é conhecida como API de autoatendimento.

A carga útil da /object/secret-keys pode incluir um período opcional de expiraçãoda chave existente.

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

Se você estiver criando uma chave secreta pela primeira vez, poderá omitir o parâmetroexisting_key_expiry_time_mins e uma chamada seria:

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>

Criar e gerenciar chaves secretas

Criar uma chave secreta do S3: autoatendimento 39

Page 40: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Trabalhando com chaves de autoatendimentoExistem várias operações que podem ser realizadas com chaves secretas deautoatendimento usando a Referência da API REST de gerenciamento do ECS.

Os exemplos oferecidos usam a ferramenta curl para demonstrar as atividades aseguir.

l Fazer log-in como um usuário de domínio na página 40

l Gerar a primeira chave na página 40

l Gerar a segunda chave na página 40

l Verificar chaves na página 41

l Excluir todas as chaves secretas na página 41

Fazer log-in como um usuário de domínioVocê pode fazer log-in como um usuário de domínio e obter um token de autenticaçãoque pode ser usado para autenticar as solicitações 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>

Gerar a primeira chaveVocê pode gerar uma chave 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>

Gerar a segunda chaveVocê pode gerar uma segunda chave secreta e configurar a expiração da primeira chave.

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

Criar e gerenciar chaves secretas

40 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 41: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

"{\"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>

Verificar chavesVocê pode verificar as chaves às quais foi atribuído. Neste caso, há duas chaves e aprimeira tem uma data/hora de expiração.

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>

Excluir todas as chaves secretasCaso seja necessário excluir suas chaves antes de gerá-las novamente, use o comando aseguir.

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

Criar e gerenciar chaves secretas

Trabalhando com chaves de autoatendimento 41

Page 42: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Criar e gerenciar chaves secretas

42 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 43: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 6

Autenticação com o serviço do S3

l Autenticação com o serviço do S3......................................................................... 44

Autenticação com o serviço do S3 43

Page 44: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Autenticação com o serviço do S3A autenticação com a API Amazon S3 é descrita na documentação do Amazon S3mencionada abaixo. Este tópico identifica alguns aspectos específicos ao ECS doprocesso de autenticação.

O Amazon S3 usa um cabeçalho de autorização que deve estar presente em todas assolicitações para identificar o usuário e fornecer uma signature da solicitação. Durante achamada Amazon o cabeçalho apresenta o seguinte formato:

Authorization: AWS <AWSAccessKeyId>:<Signature>

No ECS, o AWSAccessKeyId faz o mapeamento ao UID (ID do usuário) do ECS. Um ID dechave de acesso de AWS tem 20 caracteres (alguns clients S3, como o navegador do S3,verifique isso), mas o ECS Data Services não tem essa limitação.

A signature é calculada a partir de elementos da solicitação e da chave secreta dousuário conforme descrito na documentação do Amazon S3:

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

Aplicam-se as seguintes observações:

l No ECS Object Data Service, o ID exclusivo pode ser configurado (por meio da API doECS ou da interface do usuário do ECS) com 2 chaves secretas. O ECS Data Servicetentará usar a primeira chave secreta, e se a signature calculada não corresponder,tentará usar a segunda chave secreta. Se a segunda chave falhar, a solicitação serárejeitada. Quando usuários adicionam ou alteram a chave secreta, eles devemesperar 2 minutos de modo que todos os nós do Data Service possam seratualizados com a nova chave secreta antes de usar a nova chave secreta.

l No ECS Data Service, o namespace também é levado em consideração no cálculo designature HMAC.

Autenticação com o serviço do S3

44 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 45: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 7

Acesso ao client Java

l Usando SDKs para acessar o serviço do S3........................................................... 46

Acesso ao client Java 45

Page 46: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Usando SDKs para acessar o serviço do S3Ao desenvolver aplicativos que se comunicam com o serviço ECS S3, há um número deSDKs que darão suporte a atividades de desenvolvimento.

A Comunidade EMC apresenta informações em vários clients que estão disponíveis eorientação sobre seu uso: Recursos de Desenvolvedor do EMC ViPR.

Os tópicos a seguir descrevem o uso do SDK Amazon S3 e o uso do SDK EMC ECS Java.

l Usando o SDK do Java Amazon na página 46

l SDK Java client para ECS na página 48

Obs.

Se quiser utilizar as extensões de API do ECS (consulte ), o suporte a essas extensões éoferecido no SDK EMC ECS Java. Se você não precisar de suporte para as extensões doECS, ou se tiver aplicativos existentes que as usam, será possível usar o SDK AmazonJava.

Usando o SDK do Java AmazonVocê pode acessar o armazenamento em object do ECS usando o SDK Java S3.

De modo padrão, o objeto client do AmazonS3Client é codificado para trabalhardiretamente em amazon.com. Esta seção mostra como configurar o AmazonS3Client paratrabalhar com o ECS.

Para criar uma instância do objeto do AmazonS3Client, você precisa passar credenciais aele. Isso é feito criando um objeto AWSCredentials e transferindo a ele a chave de acessoAWS (seu nome de usuário do ECS) e sua chave secreta gerada para o ECS.

O trecho do código a seguir mostra como configurar isso.

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

Por padrão o client Amazon tentará o contato com WebServices Amazon. Para sobreporesse comportamento e entrar em contato com o ECS, é necessário configurar umendpoint específico.

Você pode definir o ponto periférico usando o método setEndpoint. O protocoloespecificado no ponto periférico determina se o client deve ser direcionado à porta HTTP(9020) ou à porta HTTPS (9021).

Obs.

Se você pretende usar a porta HTTPS, o JDK de seu aplicativo deve ser configurado paravalidar o certificado do ECS com sucesso; caso contrário, o client apresentará erros deverificação SSL e falha de conexão.

No seguinte trecho, o client está sendo usado para acessar o ECS por HTTP:

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

Acesso ao client Java

46 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 47: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Ao usar o endereçamento em estilo de caminho (ecs1.emc.com/mybucket), seránecessário definir a opção setPathStyleAccess como segue:

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);

O código a seguir mostra como listar objetos em um bucket.

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

A operação CreateBucket difere de outras operações já que ela espera que uma regiãoseja especificada. No S3 isso indicaria o datacenter no qual o bucket deveria ser criado.No entanto, o ECS não dá suporte a regiões. Por esse motivo, ao fazer a chamada daoperação CreateBucket, especificamos a região padrão, que interrompe o AWS de fazerdownload do arquivo de configuração da região do Amazon CloudFront.

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

O exemplo completo para se comunicar com o serviço de dados do ECS S3, criar umbucket e manipular um objeto é apresentado a seguir:

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) { ObjectListing objects = client.listObjects(bucketName); for (S3ObjectSummary summary : objects.getObjectSummaries()) {

Acesso ao client Java

Usando o SDK do Java Amazon 47

Page 48: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

System.out.println(summary.getKey()+ " "+summary.getOwner()); } }}

SDK Java client para ECSO SDK Java ECS baseia-se no SDK Java Amazon S3 e dá suporte a extensões de API doECS.

Um exemplo de uso do ViPRS3client é mostrado abaixo.

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) { } }}

Acesso ao client Java

48 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 49: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

PARTE 2

OpenStack Swift

Capítulo 8, "Introdução ao suporte a OpenStack Swift do ECS"

Capítulo 9, "Recursos compatíveis do Swift"

Capítulo 10, "Extensões Swift"

Capítulo 11, "Authentication"

Capítulo 12, "Autorização"

OpenStack Swift 49

Page 50: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

OpenStack Swift

50 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 51: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 8

Introdução ao suporte a OpenStack Swift do ECS

l Suporte à API do OpenStack Swift no ECS..............................................................52

Introdução ao suporte a OpenStack Swift do ECS 51

Page 52: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Suporte à API do OpenStack Swift no ECSO ECS inclui suporte à API do OpenStack Swift. Esta seção descreve as operaçõescompatíveis e descreve os mecanismos de autorização e autenticação.

O OpenStack Swift Object Service é disponibilizado nas portas a seguir.

Protocolo Portas

HTTP 9024

HTTPS 9025

As seguintes seções descrevem os métodos compatíveis, as extensões do ECS e omecanismo de autenticação:

l Operações compatíveis com o OpenStack Swift na página 54

l Extensões da API do SWIFT na página 58

l Autenticação do OpenStack Swift na página 64

l Autorização de recipiente na página 72

Os exemplos que mostram o uso da API do OpenStack Swift podem ser encontradosaqui:

l Exemplos da API do OpenStack

Introdução ao suporte a OpenStack Swift do ECS

52 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 53: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 9

Recursos compatíveis do Swift

l Operações compatíveis com o OpenStack Swift.................................................... 54

Recursos compatíveis do Swift 53

Page 54: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Operações compatíveis com o OpenStack SwiftAs seções a seguir apresentam as solicitações da API REST OpenStack que sãocompatíveis com o ECS.

l Chamadas do OpenStack Swift compatíveis na página 54

l Chamadas do OpenStack Swift incompatíveis na página 55

Essa informação é da seção V1 API de armazenamento em object da documentação Referência da API do OpenStack.

Chamadas do OpenStack Swift compatíveisAs chamadas API REST OpenStack Swift a seguir são compatíveis com o ECS.

Tabela 5 Chamadas do OpenStack compatíveis

Método Caminho Descrição

GET v1/{account} Recupera uma lista de recipientes de armazenamentoexistentes ordenados por nomes.

GET v1/{account}/{container} Recupera uma lista de objetos armazenados norecipiente.

PUT v1/{account}/{container} Cria um recipiente.

DELETE v1/{account}/{container} Exclui um recipiente antigo.

POST v1/{account}/{container} Cria ou atualiza os metadados arbitrários do recipienteassociando cabeçalhos de metadados personalizadoscom o nível de URI do recipiente. Esses cabeçalhosdevem ter o formato X-Container-Meta-*.

HEAD v1/{account}/{container} Recupera os metadados do recipiente. Atualmente nãoinclui o número de objetos e os bytes usados.O usuário necessita de privilégios de administrador.

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

Recupera dados do objeto.

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

Grava ou sobregrava os conteúdos e metadados de umobjeto.Usado para copiar objetos existente para outro objetousando o cabeçalho X-Copy-From para designar aorigem.

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

Remove um objeto do sistema de armazenamentopermanentemente. Em combinação com o comandoCOPY você pode usar COPY e depois DELETE paramover efetivamente um objeto.

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

Recupera metadados de objeto e outros cabeçalhos deHTTP padrão.

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

Define e sobregrava metadados arbitrários de objetos.Esses metadados devem ter o formato X-Objeto-Meta-*. X-Delete-At ou X-Delete-After para objetos emexpiração também pode ser atribuído por essa

Recursos compatíveis do Swift

54 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 55: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 5 Chamadas do OpenStack compatíveis (continuação)

Método Caminho Descrição

operação. Mas outros cabeçalhos como o tipo deconteúdo não podem ser alterados por essa operação.

Chamadas do OpenStack Swift incompatíveisAs chamadas API REST OpenStack Swift a seguir não são compatíveis com o ECS.

Tabela 6 Chamadas do OpenStack Swift incompatíveis

Método Caminho Descrição

HEAD v1/{account} Recupera os metadados da conta, por exemplo, onúmero de recipientes, o total de bytes armazenadosno armazenamento de objetos do OpenStack para aconta/o locatário.

POST v1/{account} Cria ou atualiza os metadados de uma contaassociando seus cabeçalhos de metadadospersonalizados com o nível de URI da conta. Essescabeçalhos devem ter o formato X-Account-Meta-*.

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

A cópia é compatível usando PUT v1/{account}/{container}/{object} com o cabeçalho X-Copy-From.

Recursos compatíveis do Swift

Operações compatíveis com o OpenStack Swift 55

Page 56: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Recursos compatíveis do Swift

56 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 57: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 10

Extensões Swift

l Extensões da API do SWIFT....................................................................................58l Atualizando um intervalo de bytes em um objeto.................................................. 58l Sobregravação de parte de um objeto................................................................... 59l Acrescentando dados a um objeto........................................................................ 60l Lendo vários intervalos de byte em um objeto.......................................................61

Extensões Swift 57

Page 58: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Extensões da API do SWIFT

Várias extensões das APIs de objeto são compatíveis. As extensões e as APIs que dãosuporte a elas são listados na tabela a seguir.

Tabela 7 Extensões da API do SWIFT

Recurso Observações

PUT Object (range-update) Usa o cabeçalho Range para especificar o intervalo de objeto a seratualizado.

Atualizando um intervalo de bytes em um objeto na página 22

PUT Object (range-overwrite)

Usa o cabeçalho Range para especificar o intervalo de objeto a sersobregravado.

Sobregravação de parte de um objeto na página 24

PUT Object (range-append) Usa o cabeçalho Range para especificar o intervalo de objetoacrescentado.

Acrescentando dados a um objeto na página 24

GET Object (range-read) Usa o cabeçalho Range para especificar o intervalo de bytes deobjeto para ler.

Lendo vários intervalos de byte em um objeto na página 25

Atualizando um intervalo de bytes em um objetoUm exemplo do uso de extensões da API do ECS para atualizar um intervalo de bytes deum objeto é fornecido abaixo.

Primeiro, faça uma primeira solicitação GET no objeto nomeado object1 encontrado embucket1 para analisar o objeto. object1 tem o 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 The quick brown fox jumps over the lazy dog.

Extensões Swift

58 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 59: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Agora você deseja atualizar um intervalo de bytes específico do objeto. Para fazer isso, ocabeçalho Range na solicitação de dados de objeto deve incluir o deslocamento do inícioe do fim do objeto que deseja atualizar. O formato é: Range:bytes=<startOffset>-<endOffset>No exemplo a seguir, a solicitação PUT inclui o cabeçalho Range com o valorbytes=10-14, que indica que os bytes 10,11,12,13,14 devem ser substituídos pelovalor enviado na solicitação. Aqui, o novo valor green está sendo enviado.

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

Ao ler o objeto novamente, o novo valor agora será The quick green fox jumpsover the lazy dog. (A palavra brown foi substituída por green.) Você atualizouum intervalo específico de bytes desse 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.

Sobregravação de parte de um objetoUm exemplo do uso das extensões da API do ECS para sobregravar dados a um objeto éfornecido abaixo.

Você pode sobregravar parte de um objeto oferecendo apenas o deslocamento de iníciona solicitação de dados. Os dados na solicitação serão gravados com início nodeslocamento fornecido. O formato é: Range: <startingOffset>-

Extensões Swift

Sobregravação de parte de um objeto 59

Page 60: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Por exemplo, para gravar os dados brown cat iniciando no deslocamento 10, vocêemitiria essa solicitação 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

Ao recuperar o objeto, você pode encontrar o valor final The quick brown catjumps over the lazy dog and cat. (green fox foi substituído por browncat). Você sobregravou parte dos dados nesse objeto no deslocamento inicial fornecido.

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.

Acrescentando dados a um objetoUm exemplo do uso das extensões da API do ECS para acrescentar dados a um objeto éfornecido abaixo.

Pode haver os casos em que é necessário acrescentar a um objeto, mas determinar odeslocamento exato de bytes não é eficiente ou útil. Para este cenário, o ECS fornece acapacidade de acrescentar atomicamente os dados ao objeto sem especificar umdeslocamento (o deslocamento correto é devolvido na resposta).

Um cabeçalho Range com o valor especial bytes=-1- pode ser usado para acrescentardados a um objeto. Dessa forma, o objeto pode ser estendido sem saber o tamanho doobjeto existente.

O formato é: Range: bytes=-1-

Extensões Swift

60 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 61: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

A seguir, há uma amostra de solicitação que demonstra o acréscimo a um objetoexistente usando um valor Range de bytes=-1-. Aqui, o valor and cat é enviado nasolicitação.

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

Ao recuperar o objeto novamente, você pode encontrar o valor total The quick greenfox jumps over the lazy dog and cat. Você acrescentou dados para esseobjeto.

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.

Lendo vários intervalos de byte em um objetoUm exemplo do uso das extensões da API do ECS para ler vários intervalos de bytes emum objeto é apresentado abaixo.

Para ler dois intervalos específicos de bytes no objeto chamado object1, você emitiriaa solicitação GET a seguir para Range: bytes==4-8,41-44. A resposta de leituraseria para as palavras quick e lazy.

Extensões Swift

Lendo vários intervalos de byte em um objeto 61

Page 62: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Obs.

A API do Amazon S3 dá suporte a apenas um intervalo ao usar o cabeçalho HTTP Rangepara leitura; O ECS é compatível com vários intervalos de byte.

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--

Extensões Swift

62 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 63: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 11

Authentication

l Autenticação do OpenStack Swift..........................................................................64l Autenticação do OpenStack Versão 1 ................................................................... 65l Autenticação do OpenStack Versão 2....................................................................67l Autenticação usando a integração do ECS Keystone V3.........................................69

Authentication 63

Page 64: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Autenticação do OpenStack Swift

O ECS dá suporte a versões diferentes do protocolo de autenticação do OpenStack Swift.

v1

O ECS permite aos usuários de objeto a autenticação com o serviço do ECS Swift e aobtenção de um token de autenticação que pode ser usado ao realizar chamadasAPI subsequentes para o serviço do ECS Swift. Consulte Autenticação do OpenStackVersão 1 na página 65.

v2

O ECS permite aos usuários de objeto a autenticação com o serviço do ECS Swiftpara obter um token restrito, ou seja, um token associado a um tenant (equivalentea um projeto), que pode ser usado ao realizar chamadas de API subsequentes parao serviço do ECS Swift. Consulte Autenticação do OpenStack Versão 2 na página67.

v3

O ECS valida usuários do Keystone V3 que apresentam tokens restritos a um projetodo Keystone. Consulte Autenticação usando a integração do ECS Keystone V3 napágina 69.

Para protocolos v1 e v2, o acesso à área de armazenamento de objeto do ECS usando oprotocolo do OpenStack Swift requer uma conta de usuário de objeto do ECS e umasenha Swift.

Para v3, os usuários são criados e atribuídos a projetos e funções fora do ECS usando umserviço do Keystone V3. O ECS não realiza autenticação, mas valida o token deautenticação com o serviço do Keystone V3.

A atribuição de credenciais do Swift a usuários de objeto do ECS está descrita em Criarusuários Swift no Portal do ECS na página 64.

Criar usuários Swift no Portal do ECSOs usuários de objeto do ECS podem receber credenciais para acessar a área dearmazenamento de objeto do ECS usando o protocolo do OpenStack Swift.

Antes de você começar

Você precisará ser um Administrador de sistema do ECS.

Você pode encontrar mais informações sobre como adicionar usuários de objeto do ECSem Guia do administrador: adicionar usuários e atribuir funções.

Procedimento

1. No Portal do ECS, selecione Manage > Users.

A página User Management é exibida.

2. Na página User Management, selecione New Object User ou adicione uma senhaSwift a um usuário existente, selecionando a ação Edit de um usuário listado natabela de usuários.

Se você estiver criando um novo usuário, será necessário informar um nome para ousuário e selecionar o namespace ao qual o usuário pertence.

3. Na área Swift, campo Groups, informe um grupo ao qual usuário pertencerá.

A área Swift está destacada na figura abaixo.

Authentication

64 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 65: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Se você especificar o grupo "admin", os usuários poderão automaticamente executartodas as operações de de contêiner. Se você especificar um grupo diferente, essegrupo deve receber permissões no contêiner. Consulte Autorização de recipiente napágina 72 para obter mais informações sobre a autorização de contêiner.

4. Digite uma senha para o usuário do Swift.

5. Selecione Set Password & Groups.

Autenticação do OpenStack Versão 1Com este procedimento, você pode autenticar-se no serviço ECS OpenStack Swift usandoa V1 do protocolo de autenticação.

Procedimento

1. Adquira um ID exclusivo e uma senha para um usuário de objeto do ECS.

Você pode fazer isso no Portal do ECS (consulte Criar usuários Swift no Portal doECS na página 64) ou você pode entrar em contato com a API REST do ECS para geraruma senha.

Solicitação:

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

Resposta:

HTTP 200

2. Ligue para a API REST de autenticação do OpenStack como mostrado abaixo. Use aporta 9024 para HTTP, ou a porta 9025 para HTTPS.

Authentication

Autenticação do OpenStack Versão 1 65

Page 66: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Solicitação:

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

Resposta:

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

Resultado

Se o ID exclusivo e senha forem validados pelo ECS, a URL e o token de armazenamentoserão exibidos no cabeçalho da resposta. As solicitações adicionais são autenticadas aoincluir esse token. A URL de armazenamento apresenta o nome do host e o endereço dorecurso. Você pode acessar recipientes e objetos com o seguinte cabeçalho X-Storage-Url:

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

O token gerado expira 24 horas após a criação. Se você repetir a solicitação deautenticação no período de 24 horas usando o mesmo ID exclusivo e senha, oOpenStack devolverá o mesmo token. Uma vez que o período de expiração de 24 horasexpira, o OpenStack devolverá um novo token.

Authentication

66 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 67: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

No exemplo de autenticação simples a seguir, a primeira ligação de REST devolve X-Auth-Token. A segunda chamada REST usa o X-Auth-Token para executar uma solicitação GETem uma conta.

$ 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: ECS_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

Autenticação do OpenStack Versão 2ECS inclui suporte limitado a autenticação do OpenStack Versão 2 (Keystone).

Antes de você começar

O ECS fornece uma implementação do serviço de identidade do OpenStack Swift V2, quepermite a um aplicativo Swift que usa autenticação V2 autenticar usuários. Os usuáriosdevem ser os usuários de objeto do ECS que receberam credenciais do OpenStack Swift.Essas credenciais permitem que eles acessem a área de armazenamento de objeto doECS usando o protocolo Swift.

Apenas tokens restritos a um tenant/namespace do ECS (equivalente a um projeto Swift)podem ser usados para fazer chamadas de API do Swift. Um token não restrito pode serobtido e utilizado para acessar o serviço de identidade para recuperar a identidade dotenant antes de obter um token restrito a um tenant e a um endpoint de serviço.

Authentication

Autenticação do OpenStack Versão 2 67

Page 68: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

O token restrito e o endpoint de serviço podem ser usados para autenticação com o ECS,conforme a seção anterior que descreve a autenticação do V1.

Os dois artigos listados a seguir apresentam informações contextuais importantes.

l Workflow do keystone do OpenStack e escopo de token

l Autentique para a API do administrador

Procedimento

1. Para recuperar um token não restrito do ECS, você pode usar a API /v2.0/tokens efornecer um nome de usuário e uma senha para o serviço do ECS Swift.

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

A resposta é como a seguir. O token não restrito é precedido por id e tokens geradospelo ECS e precedido pelo prefixo "ecs_".

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

2. Recupere as informações do locatário associadas ao token não restringido.

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

A resposta é como a seguir.

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

3. Recupere o token restringido juntamente com o storageUrl.

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

Um exemplo de resposta é mostrado a seguir. O token restringido é precedido pelo id.

{"access":{"token":{"id":"ecs_baf0709e30ed4b138c5db6767ba76a4e","expires":"1376633255485","tenant":{"description":"s3","enabled":true,"name":"s3"}},"user":{"name":"swift_admin","roles":[{"name":"member"},{"name":"admin"}],"role_links":[]},

Authentication

68 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 69: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

"serviceCatalog":[{"type":"object-store", "name":"Swift","endpoints_links":[],"endpoint":[{"internalURL": "http://203.0.113.10:9024/v1/s3","publicURL":"http://203.0.113.10:9024/v1/s3"}]}]}}

4. Use a URL do token restringido e do ponto periférico para autenticação do Swift. Aetapa é a mesma que no V1 do OpenStack.

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

Autenticação usando a integração do ECS Keystone V3O ECS dá suporte ao Keystone V3 por meio da validação dos tokens de autenticaçãofornecidos pelos usuários do OpenStack Swift. Para o Keystone V3, os usuários sãocriados fora do ECS usando um serviço de Keystone V3. O ECS não realiza autenticação,mas valida o token de autenticação com o serviço do Keystone V3.

Obs.

No domínio do Keystone, um projeto pode ser considerado como um equivalente a umtenant/namespace do ECS. É possível considerar o namespace do ECS como um tenant.

O Keystone V3 permite que os usuários sejam atribuídos a funções e que as ações queeles estão autorizados a realizar sejam baseadas em sua lista de membros de função. Noentanto, o suporte do ECS ao Keystone V3 atualmente não dá suporte às políticas doKeystone, então os usuários devem estar na função/grupo "admin" para realizaroperações relacionadas a contêiner.

Os tokens de autenticação devem ser restritos a um projeto; tokens não restritos não sãopermitidos com o ECS. As operações relacionadas a tokens não restritos, como obteruma lista de projetos (equivalentes a um tenant no ECS) e serviços, devem ser realizadaspor usuários em relação ao serviço do Keystone diretamente, e os usuários devem entãoobter um token restrito do serviço do Keystone que pode ser validado pelo ECS e, se forválido, usado para autenticar com o ECS.

Para ativar a validação do ECS, um provedor de autenticação deve ter sido configuradono ECS para que, quando um token restrito a um projeto for recebido de um usuário, oECS poderá validá-lo em relação ao provedor de autenticação do Keystone V3. Alémdisso, deve ser criado um namespace do ECS correspondente ao projeto do Keystone.Mais informações são apresentadas em Configurar o ECS para autenticar usuários dokeystone na página 70.

Verificações de autorizaçãoO ECS usa as informações especificadas pelos tokens do Keystone para realizar asdecisões de autorização. As verificações de autorização são as seguintes:

1. O ECS verifica se o projeto ao qual o token está restrito corresponde ao projeto naURL.

2. Se a operação for uma operação de objeto, o ECS avalia a ACL associada ao objetopara determinar se a operação será permitida.

3. Se a operação for uma operação de contêiner, o ECS avaliará a operação solicitadaem relação às funções do usuário no projeto, da seguinte maneira:

a. Se a operação for listar contêineres e o usuário tiver uma função de admin,permitir

b. Se a operação for criar contêineres e o usuário tiver uma função de admin,permitir

Authentication

Autenticação usando a integração do ECS Keystone V3 69

Page 70: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

c. Se a operação for atualizar metadados do contêiner e o usuário tiver uma funçãode admin, permitir

d. Se a operação for ler metadados do contêiner e o usuário tiver função de admin,permitir

e. Se a operação for excluir contêineres e usuário tiver uma função de admin,permitir

DomíniosNo Keystone V3, todos os usuários pertencem a um domínio e esse domínio pode tervários projetos. Os usuários trêm acesso aos projetos com base em suas funções. Se umusuário não for atribuído a um domínio, o domínio será padrão.

Objetos e contêineres criados com os usuários do Swift Keystone V3 pertencerão a<user>@<domain.com>. Se um usuário não tiver sido atribuído a um domínio, o nome deusuário atribuído a contêineres e objetos será <user>@default.

Configurar o ECS para autenticar usuários do keystonePara autenticar usuários do Keystone, você deve adicionar um provedor de autenticaçãoao ECS e criar um namespace ao qual os usuários do Swift pertencerão.

Antes de você começar

Os seguintes pré-requisitos se aplicam:

l Você precisará das credenciais para uma conta de Administrador de sistema do ECS.

l Você precisará obter a identidade do projeto do Keystone ao qual os usuários doSwift que acessarão o ECS pertencem.

Procedimento

1. Faça log-in no ECS como Administrador do sistema.

2. Crie um provedor de autenticação que especifica o endpoint do serviço do KeystoneV3 e as credenciais de uma conta de administrador que pode ser usada para validaros tokens.

Consulte Guia do administrador: configurar um provedor de autenticação.

3. Crie um namespace do ECS que tenha o mesmo ID que o projeto/conta do Keystoneao qual pertencem os usuários que queiram se autenticar.

Você precisará obter o ID do projeto do Keystone.

Resultado

Depois que o namespace é criado, os usuários que pertencem ao projeto do Keystonecorrespondente e que têm um token que está restrito a esse projeto, podem autenticarcom o ECS (por meio do ECS comunicação com o provedor de autenticação de Keystone)e usar a API do Swift para acessar a área de armazenamento de objeto do ECS.

Authentication

70 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 71: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 12

Autorização

l Autorização de recipiente......................................................................................72

Autorização 71

Page 72: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Autorização de recipienteA autorização do OpenStack Swift tem apenas recipientes como destino.

O Swift atualmente dá suporte a dois tipos de autorização:

l Autorização do estilo referente

l Autorização do estilo em grupo.

O ECS dá suporte apenas a autorização com base em grupo.

Os usuários administradores podem executar todas as operações na conta. Usuários nãoadministradores só podem realizar operações por recipiente com base nas listas decontrole de acesso X-Container-Read e X-Container-Write do recipiente. As seguintesoperações podem ser concedidas a usuários não administradores:

O administrador atribui acesso de leitura ao recipienteO usuário "admin" pode atribuir permissões de leitura a um grupo usando:

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

Este comando permite que os usuários pertencentes a GROUP LIST tenham direitos deacesso de leitura no contêiner1. Por exemplo, atribuir permissões de leitura para o grupo"Member":

curl –X PUT -v –H 'X-Container-Read: Member' –H 'X-Auth-Token: {ADMIN_TOKEN}' http://127.0.0.1:8080/v1/{account}/{container1}

Depois que a permissão de leitura é dada, os usuários que pertencem ao(s) grupo(s) dedestino podem executar as operações abaixo:

l HEAD container - Recupera os metadados do recipiente. Permitido somente se ousuário é atribuído ao grupo que tem privilégios de administrador de locatário.

l GET container - Lista objetos em um recipiente

l GET objects with container - Lê o conteúdo do objeto dentro do recipiente

O administrador concede acesso de gravação ao recipienteO usuário "admin" pode atribuir permissões de leitura a um grupo usando:

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

Este comando permite que os usuários pertencentes a GROUP LIST tenham direitos deacesso de gravação no contêiner1. Por exemplo, para atribuir permissões de gravação aogrupo "Member":

curl –X PUT -v –H 'X-Container-Write: Member' –H 'X-Auth-Token: {ADMIN_TOKEN}' http://127.0.0.1:8080/v1/{account}/{container1}

Autorização

72 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 73: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Os usuários no grupo GROUP LIST recebem a permissão de gravação. Uma vez que apermissão de gravação é concedida, os usuários que pertencem ao(s) grupo(s) dedestino podem executar estas operações:

l POST container - Definir os metadados. Comece com o prefixo "X-Container-Meta".

l PUT objects within container - Gravar/sobrepor objetos com o recipiente.

Informações adicionais sobre a autorização podem ser encontradas em: Operações de recipientes.

Autorização

Autorização de recipiente 73

Page 74: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Autorização

74 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 75: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

PARTE 3

EMC Atmos

Capítulo 13, "Introdução ao suporte a EMC Atmos do ECS"

Capítulo 14, "Recursos compatíveis do Atmos"

Capítulo 15, "Extensões da API do Atmos"

EMC Atmos 75

Page 76: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

EMC Atmos

76 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 77: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 13

Introdução ao suporte a EMC Atmos do ECS

l Suporte à API do EMC Atmos no ECS......................................................................78

Introdução ao suporte a EMC Atmos do ECS 77

Page 78: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Suporte à API do EMC Atmos no ECSO ECS dá suporte a um subconjunto de APIs do EMC Atmos. Esta seção lista as operaçõescompatíveis e as extensões do ECS.

O EMC Atmos Object Service é disponibilizado nas portas a seguir.

Protocolo Portas

HTTP 9022

HTTPS 9023

Mais informações sobre as operações compatíveis podem ser encontradas no Guia doprogramador Atmos que está disponível no EMC Supportzone.

l Guia do Programador do Atmos

A compatibilidade do formato do cabo é fornecida para todas as operações compatíveis.Portanto, as operações descritas no Guia do Programador do Atmos se aplicam àsoperações API expostas pelo ECS.

O Guia do programador Atmos também apresenta informações sobre a autenticação com aAPI do Atmos e fornece exemplos abrangentes para muitos dos recursos compatíveis.

Introdução ao suporte a EMC Atmos do ECS

78 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 79: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 14

Recursos compatíveis do Atmos

l Chamadas API REST compatíveis do EMC Atmos....................................................80l Chamadas API REST incompatíveis do EMC Atmos.................................................81l Suporte a sub-tenants nas chamadas API REST do EMC Atmos.............................. 82

Recursos compatíveis do Atmos 79

Page 80: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Chamadas API REST compatíveis do EMC AtmosECS dá suporte a um subconjunto de APIs do EMC Atmos.

As seguintes chamadas API REST do Atmos são compatíveis. Chamadas para asinterfaces de objetos e de namespace são exibidas.

Tabela 8 Chamadas API REST do Atmos compatíveis

Método Caminho Descrição

Operações de serviços

GET /rest/service Obter informações sobre osistema

Operações de objeto

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

Criar um objeto

(Consulte as notas aseguir)

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

Excluir objeto

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

Atualizar objeto

(Consulte as notas aseguir)

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

Ler o objeto (ou a lista dediretório)

POST /rest/namespace/<path>?rename Renomear um objeto

Operações do MetaData

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

Obter os metadados dousuário para um objeto

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

Definir os metadados dousuário

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

Excluir metadados dousuário

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

Obter os metadados dosistema para um objeto

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

Obter ACL

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

Definir ACL

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

Obter tags de metadadospara um objeto

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

Obter informações deobjeto

Recursos compatíveis do Atmos

80 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 81: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 8 Chamadas API REST do Atmos compatíveis (continuação)

Método Caminho Descrição

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

Obter todos os metadadosde objetos

Operações de espaço-objeto

GET /rest/objects Listar objetos

GET /rest/objects?listabletags Obter tags listáveis

Obs.

l O cabeçalho x-emc-wschecksum não é compatível.

l O upload do formato HTML não é compatível.

l GET /rest/objects não dá suporte a diferentes tipos de resposta com x-emc-

accept. Por exemplo, o text/plain não é compatível.

l A expiração e a retenção de objetos não são compatíveis.

Chamadas API REST incompatíveis do EMC Atmos

As seguintes chamadas API REST do Atmos não são compatíveis.

Tabela 9 Chamadas API REST do Atmos incompatíveis

Método Caminho Descrição

Versão do objeto

POST /rest/objects/<ObjectID>?versions Criar uma versão do objeto

DELETE /rest/objects/<objectID>?versions Excluir uma versão do objeto

GET /rest/objects/<objectID>?versions Listar versões de um objeto

PUT /rest/objects/<objectID>?versions Restaurar versão do objeto

Acesso anônimo

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

URL compartilhável

POST /rest/accesstokens Criar um token de acesso

GET /rest/accesstokens/<token_id>?info Obter detalhes do token deacesso

DELETE /rest/accesstokens/<token_id> Excluir token de acesso

GET /rest/accesstokens Listar tokens de acesso

Recursos compatíveis do Atmos

Chamadas API REST incompatíveis do EMC Atmos 81

Page 82: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 9 Chamadas API REST do Atmos incompatíveis (continuação)

Método Caminho Descrição

GET /rest/accesstokens/<token_id> Fazer download de conteúdoanonimamente

Obs.

A proteção de checksum usando o cabeçalho personalizado x-emc-wschecksum não écompatível.

Suporte a sub-tenants nas chamadas API REST do EMC AtmosECS inclui duas chamadas API REST nativas que servem especificamente para adicionar osuporte a sub-tenants do ECS para aplicativos do Atmos.

Essas chamadas são como a seguir:

Chamada API Exemplo

Subtenant criar PUT Http url: /rest/subtenantCabeçalhos necessários: x-emc-uid (por exemplo, [email protected] ) x-emc-signature.

O ID de Subtenant é configurado no cabeçalho “subtenantID” da resposta.

Subtenant excluir DELETE Http url: /rest/subtenants/{subtenantID}Cabeçalhos necessários: x-emc-uid (por exemplo, [email protected] ) x-emc-signature

Recursos compatíveis do Atmos

82 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 83: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 15

Extensões da API do Atmos

l Extensões da API...................................................................................................84

Extensões da API do Atmos 83

Page 84: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Extensões da APIVárias extensões das APIs de objeto são compatíveis.

As extensões e as APIs que dão suporte a elas são listadas na tabela a seguir.

Tabela 10 Extensões da API de objeto

Recurso Observações

PUT Object (range-append)

Usa o cabeçalho Range para especificar o intervalo de objetoacrescentado.

Acrescentando dados a um objeto na página 84

Acrescentando dados a um objetoUm exemplo do uso das extensões da API do ECS para acrescentar dados a um objeto éfornecido abaixo.

Pode haver os casos em que é necessário acrescentar a um objeto, mas determinar odeslocamento exato de bytes não é eficiente ou útil. Para este cenário, o ECS fornece acapacidade de acrescentar atomicamente os dados ao objeto sem especificar umdeslocamento (o deslocamento correto é devolvido na resposta).

Um cabeçalho Range com o valor especial bytes=-1- pode ser usado para acrescentardados a um objeto. Dessa forma, o objeto pode ser estendido sem saber o tamanho doobjeto existente.

O formato é: Range: bytes=-1-

A seguir, há uma amostra de solicitação que demonstra o acréscimo a um objetoexistente usando um valor Range de bytes=-1-. Aqui, o valor and cat é enviado nasolicitação.

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: 24

Extensões da API do Atmos

84 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 85: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Content-Length: 0Server: Jetty(7.6.4.v20120524)

A posição de compensação na qual os dados foram acrescentados é exibida nocabeçalho x-emc-append-offset.

Ao recuperar o objeto novamente, você pode encontrar o valor total The quick greenfox jumps over the lazy dog and cat. Você acrescentou dados para esseobjeto.

Extensões da API do Atmos

Acrescentando dados a um objeto 85

Page 86: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Extensões da API do Atmos

86 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 87: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

PARTE 4

CAS

Capítulo 16, "Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS"

CAS 87

Page 88: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAS

88 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 89: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 16

Configurar o suporte aos aplicativos do SDK CAScom o portal do ECS

l Configurando o suporte a CAS no ECS................................................................... 90l Armazenamento estático.......................................................................................90l Conformidade....................................................................................................... 92l Retenção do CAS no ECS....................................................................................... 94l Configurar as políticas de retenção de namespace................................................ 96l Configurar um bucket para o CAS.......................................................................... 97l Configurar um usuário de objeto do CAS............................................................... 98l Configurar ACLs de bucket para um usuário...........................................................99l APIs REST do ECS que dão suporte a usuários do CAS......................................... 101l Suporte à API do SDK CAS (Content-Addressed Storage, armazenamento de

conteúdo endereçável)........................................................................................102

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS 89

Page 90: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Configurando o suporte a CAS no ECSApresenta o suporte a CAS (Content Addressable Storage, armazenamento de conteúdoendereçável) do ECS.

O ECS CAS permite que os aplicativos client baseados no SDK do CAS armazenem,recuperem e excluam objetos do conteúdo fixos do armazenamento do ECS.

O armazenamento subjacente do ECS deve ser provisionado antes de definir suaconfiguração do ECS. Geralmente, o provisionamento é realizado quando um novo rackdo ECS é instalado. Isso inclui a configuração de um pool de armazenamento, um VDC eum grupo de replicação. No ECS CAS, é possível usar a documentação padrão caso sejanecessário criar ou editar esses objetos para dar suporte ao CAS. Consulte Guia doadministrador: configurar pools de armazenamento, VDCs e grupos de replicação.

Para pools de armazenamento, considere configurar um arquivamento estático. Consulte Armazenamento estático na página 90.

Em seguida, configure seus namespaces, usuários e buckets usando a documentaçãopadrão:

l Guia do administrador: configurar um namespace para um tenant

l Guia do administrador: adicionar usuários e atribuir funções

l Guia do administrador: criar e configurar buckets

Este documento descreve como modificar sua configuração básica para dar suporte aoCAS:

l Armazenamento estático na página 90

l Conformidade na página 92

l Retenção do CAS no ECS na página 94

l Configurar as políticas de retenção de namespace na página 96

l Configurar um bucket para o CAS na página 97

l Configurar um usuário de objeto do CAS na página 98

l Configurar ACLs de bucket para um usuário na página 99

l APIs REST do ECS que dão suporte aos usuários do CAS na página 101

l Suporte à API do SDK CAS (Content-Addressed Storage, armazenamento de conteúdoendereçável) na página 102

Armazenamento estáticoDescreve os arquivos de armazenamento estático.

Eliminação de codificação para arquivamento estáticoOs arquivamentos estáticos armazenam objetos que não são alterados com frequência enão exigem o esquema padrão mais sólido de EC. O esquema de EC usado aqui é de 10fragmentos de dados e 2 fragmentos de codificação (10/12). A eficiência é de 1,2 x.

Você pode especificar um arquivamento estático (armazenamento estático) ao criar umnovo pool de armazenamento. Depois que o pool de armazenamento for criado, oesquema de EC não poderá ser alterado. Esse esquema pode dar suporte à perda de umúnico nó. Ele também pode dar suporte à perda de um drive de seis, ou de dois drives de12, em dois nós separados.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

90 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 91: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Requisitos de EC

Tabela 11 Requisitos comparados de arquivamento regular e estático

Caso de uso Como é habilitado Mínimo denósnecessários

Mínimo dediscosnecessários

Discosrecomendados

Eficiência daEC

Esquema deEC

Arquivamentoregular

Padrão 4 16* 32 1,33 x 12/16

Arquivamentoestático

Configurado peloadministrador

8 12* 24 1,2 x 10/12

Obs.

*Já que a configuração mínima que pode ser implementada para um appliance da série Cé de dois appliances com 12 discos, 24 discos é o mínimo efetivo.

Configuração de pool de armazenamentoPara estabelecer um arquivamento estático no portal, selecione Cold Storage ao criar umnovo pool de armazenamento. Depois que um pool de armazenamento tiver sido criado,essa configuração não poderá ser alterada.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

Armazenamento estático 91

Page 92: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

ConformidadeDescreve os recursos do ECS que dão suporte aos padrões do governo e do setor para oarmazenamento de registros eletrônicos.

O ECS dá suporte à norma 17a-4(f) da SEC para armazenamento de registro eletrônico.

A conformidade tem três componentes:

l Fortalecimento da plataforma: resolve vulnerabilidades de segurança comuns dosoftware.

l Retenção de registro com base na política: limita a possibilidade de alterar políticasde retenção para recursos em retenção.

l Geração de relatórios de conformidade: um agente de sistema relata periodicamenteo status de conformidade do sistema.

Obs.

Como a conformidade certifica a plataforma, o recurso Compliance está disponívelsomente para ECS. O Software ECS não é suportado em hardware de terceiros.

Fortalecimento da plataformaDescreve as restrições de segurança do ECS que fazem com que a plataforma atenda aospadrões de conformidade.

Recursos de segurança da plataforma ECS:

l O acesso root a nós é desativado, isto é, não são permitidos log-ins SSH à conta root.

l Os clientes do ECS podem acessar nós pela conta admin que é estabelecida nomomento da instalação.

l Os usuários da conta admin autorizados executam comandos em nós usando sudo.

l Registro de auditoria completo para comandos sudo.

l O ESRS fornece a possibilidade de desligar todo o acesso remoto aos nós. No ESRSPolicy Manager, defina a ação Start Remote Terminal para Never Allow.

l Todas as portas desnecessárias, como ftpd, sshd etc. são fechadas.

Política de conformidade e retençãoDescreve as regras aprimoradas para retenção de registro em um sistema ECS habilitadopara conformidade.

Obs.

Os recursos descritos aqui são aplicáveis somente aos dados que usam o ECS comoarmazenamento de back-end.

O ECS tem recursos de retenção de objeto ativados ou definidos em nível de object,bucket e namespace. A conformidade fortalece esses recursos limitando as alteraçõesque podem ser feitas às configurações de retenção em objetos sob retenção. As regrasincluem:

l A função Compliance estar ativada no nível do namespace. Isso significa que todosos buckets no namespace devem ter um período de retenção maior que zero.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

92 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 93: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

l A função Compliance pode ser ativada em um namespace somente quando onamespace é criado. (Não é possível adicionar a função Compliance a umnamespace existente.)

l Uma vez ativada, não é possível desativar a função Compliance.

l Todos os buckets em um namespace devem ter um período de retenção maior quezero.

Obs.

Se você tiver um aplicativo que atribui períodos de retenção em nível de objeto, nãouse o ECS para atribuir um período de retenção maior que o do aplicativo. Issocausará erros no aplicativo.

l Um bucket com dados não pode ser excluído, independentemente de seu valor deretenção.

l Usar a opção Infinite em um bucket significa que os objetos do bucket em umnamespace habilitado para conformidade nunca podem ser excluídos.

l O período de retenção para um objeto não pode ser excluído ou reduzido. Portanto, operíodo de retenção para um bucket não pode ser excluído ou reduzido.

l Os períodos de retenção de objeto e bucket podem ser aumentados.

l Nenhum recurso pode excluir um objeto em retenção. Isso inclui a permissão deexclusão privilegiada do CAS.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

Política de conformidade e retenção 93

Page 94: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Figura 1 Habilite a função Compliance em um novo namespace no Portal do ECS

Agente de conformidadeDescreve a operação do agente de conformidade.

Todos os recursos de conformidade estão ativados por padrão, exceto o monitoramentode conformidade. Se o monitoramento estiver ativado, o agente, periodicamente,registrará uma mensagem em um thread.

Obs.

Faça acordos com o Atendimento ao cliente da EMC para ativar o monitoramento deconformidade. As mensagens de monitoramento estão disponíveis por comando a partirdo nó. Elas não aparecem no Portal do ECS.

Retenção do CAS no ECSUm C-Clip do CAS pode ter um período de retenção que rege o período em que o objetoassociado é retido no armazenamento do ECS antes que um aplicativo possa excluí-lo.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

94 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 95: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Períodos de retençãoOs períodos de retenção são atribuídos no C-Clip do objeto pelo aplicativo do CAS.

Por exemplo, se um documento financeiro deve ser retido por três anos após sua data decriação, um período de retenção de três anos é especificado no C-Clip associado aodocumento financeiro. Também é possível especificar se o objeto deve ser retidoindefinidamente.

Políticas de retenção (classes de retenção)As políticas de retenção permitem que os casos de uso de retenção sejam capturados eaplicados aos C-Clips. Por exemplo, diferentes tipos de documentos podem terdiferentes períodos de retenção. É possível exigir os seguintes períodos de retenção:

l Financeiro: 3 anos

l Jurídico: 5 anos

l E-mail: 6 meses

Quando uma política de retenção é aplicada a vários C-Clips, ao alterar essa política, operíodo de retenção mudará para todos os objetos aos quais a política se aplica.

As políticas de retenção são associadas aos namespaces do ECS e são reconhecidascomo classes de retenção pelo aplicativo do CAS.

A retenção no nível de bucket não é recomendada para o CASECS oferece retenção no nível de bucket para todos os serviços de object. Já que aretenção no nível de bucket se sobrepõe a todas as retenções no nível de objeto do CAS,ela provavelmente interferirá com o aplicativo externo do CAS.

Preferência do CASQuando vários períodos e retenção são aplicados a um objeto do CAS no ECS, o períodode retenção com o maior valor tem preferência, independentemente de como a retençãofoi aplicada.

Como aplicar a retenção do CASÉ possível definir políticas de retenção (classes de retenção) aos namespaces no portaldo ECS ou na API REST ECS. Consulte Configurar as políticas de retenção denamespace na página 96.

Seu aplicativo externo do CAS pode atribuir um período de retenção fixo ou uma classede retenção fixa ao C-Clip durante sua criação.

Ao aplicar períodos de retenção por meio das APIs, especifique o período em segundos.

Observe que o ECS CAS adota o horário de criação do C-Clip para todos os cálculosrelacionados à retenção, e não o horário da migração.

Como criar políticas de retenção com a API REST do ECS.É possível criar períodos e políticas de retenção usando a API REST de gerenciamento doECS, cujo resumo é apresentado a seguir.

Tabela 12 Recursos de retenção da API REST ECS

Método Descrição

PUT /object/bucket/{bucketName}/retention O valor de retenção de um bucket define umperíodo de retenção padrão que é aplicado atodos os objetos de um bucket. Portanto, sevocê configurar um período de retenção de umano, um objeto do bucket não poderá serexcluído durante um ano.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

Retenção do CAS no ECS 95

Page 96: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 12 Recursos de retenção da API REST ECS (continuação)

Método Descrição

GET /object/bucket/{bucketName}/retention Exibe o período de retenção atualmenteconfigurado para um bucket específico.

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

Para os namespaces, a configuração deretenção age como uma política, onde cadapolítica é um par <Nome>: <Período deretenção>. É possível definir várias políticas deretenção para um namespace e atribuir umapolítica, por nome, a um objeto do namespace.Isso permite a alteração do período de retençãode um conjunto de objetos que têm a mesmapolítica atribuída por meio da alteração dapolítica correspondente.

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

Atualiza o período de uma classe de retençãoassociada a um namespace.

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

Exibe as classes de retenção definidas para umnamespace.

Encontre mais informações sobre a API REST em: Usar a API REST ECS Management napágina 108. A referência on-line encontra-se aqui: Referência da API REST degerenciamento do ECS.

Configurar as políticas de retenção de namespaceOferece instruções de configuração específicas do CAS para políticas de retenção denamespace.

O recurso Retention Policy dos namespaces oferece um modo de definir e gerenciar asclasses de retenção do CAS para todos os C-Clips criados no namespace.

Um namespace pode ter muitas políticas de retenção, e cada política define um períodode retenção. Ao aplicar uma política de retenção a vários C-Clips (com a API), umaalteração da política de retenção alterará o período de retenção de todos os objetosassociados à política. No CAS, as classes de retenção são aplicadas ao C-Clip de umobjeto pelo aplicativo. Se um objeto estiver em um período de retenção, não serápermitido fazer solicitações de modificação do objeto.

Procedimento

1. No ECSportal, selecione Manage > Namespace.

2. Para editar a configuração de um namespace existente, selecione a ação Editassociada ao namespace existente.

3. Adicione e configure políticas de retenção.

a. Na área Retention Policies, selecione Add para adicionar uma nova política.

b. Especifique um nome para a política.

c. Especifique o período da política de retenção.

Marque a caixa de seleção Infinite para garantir que os objetos dessa políticanunca sejam excluídos.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

96 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 97: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Figura 2 Nova política de retenção

4. Selecione Save.

Figura 3 Políticas de retenção de um namespace

Configurar um bucket para o CASConfigure um bucket para dar suporte ao CAS.

Obs.

As políticas de retenção no nível de bucket não são recomendadas para o CAS.

Procedimento

1. No ECSportal, selecione Manage > Bucket.

2. Para editar a configuração de um bucket existente, selecione a ação Edit Bucketassociada ao bucket.

3. Selecione o controle CAS On para ativar o CAS para o bucket.

4. Selecione Save.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

Configurar um bucket para o CAS 97

Page 98: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Configurar um usuário de objeto do CASConfigure um usuário de objeto para usar o CAS.

Ao configurar um usuário de objeto, é possível atribuir recursos que fazem parte doselementos de um perfil CAS ao perfil do usuário. Você poderá ver o arquivo PEAresultante para uso em seus aplicativos de CAS.

Procedimento

1. No portal do ECSportal, selecione Manage > Users.

2. Para editar a configuração de um usuário de objeto existente, selecione a ação Editassociada ao usuário.

Figura 4 Configurações de CAS dos usuários de objeto

3. Na área do CAS, digite uma senha (secreta) ou selecione Generate para que o portalcrie uma senha para você.

4. Selecione Set Password.

5. Selecione Generate PEA File para gerar o arquivo PEA que seu aplicativo precisarápara autenticar o armazenamento CAS no ECS.

6. Ao configurar um bucket padrão, todas as ações que o usuário realizar que nãoespecificarem um bucket utilizarão o bucket padrão especificado. Digite o nome dobucket padrão e selecione Set Bucket.

7. Selecione Add Attribute para adicionar uma tag de metadados ao usuário.

8. Adicione o nome e o valor da tag de metadados.

Consulte a documentação SDK do CAS para obter mais informações sobre tags demetadados.

9. Selecione Save Metadata.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

98 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 99: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Configurar ACLs de bucket para um usuárioEdite a lista de controle de acesso de um bucket para limitar o acesso a um usuário.

Edite as ACLs dos buckets dos usuários do CAS. Algumas ACLs dos buckets do ECS sãomapeadas a permissões do CAS e algumas não têm significado para dados do CAS.

Procedimento

1. No ECSportal, selecione Manage > Bucket.

2. Para editar as ACLs de um bucket existente, selecione a ação Edit ACL associada aobucket.

Figura 5 Editar ACL do bucket

3. Selecione a ação Edit associada ao usuário.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

Configurar ACLs de bucket para um usuário 99

Page 100: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Figura 6 Gerenciamento de ACLs dos buckets

4. Modifique as permissões.

Tabela 13 ACLs dos buckets

Recurso SDK do CAS ACL do ECS Definição da ACL

Read read Permite que o usuárioabra C-Clips dobucket.

Write write Permite que o usuáriocrie C-Clips no bucket.

Exist read Permite que o usuárioabra C-Clips dobucket.

Delete delete Permite que o usuárioexclua C-Clips dobucket.

Privileged Delete privileged write Permite que o usuáriorealize uma exclusão

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

100 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 101: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 13 ACLs dos buckets (continuação)

Recurso SDK do CAS ACL do ECS Definição da ACL

privilegiada de um C-Clip. A exclusãoprivilegiada permiteque o usuário excluaum C-Clip que estejamem retenção.

Clip-Enumeration No momento,incompatível com ECS

Retention Period No momento,incompatível com ECS

Obs.

Somente Centera* dásuporte a LitHold(Litigation Hold,retenção legal).

Obs.

Outras ACLs do ECS não têm significado para o CAS.

5. Selecione Save.

6. Também é possível editar as ACLs no nível de grupo. Os grupos são pré-definidos e aassociação do grupo é automática, com base nos critérios do usuário. SelecioneGroup ACLs.

7. Selecione Add.

8. Selecione o grupo que deseja editar na lista Group Name.

Tabela 14 Grupos de ACL dos buckets

Grupo de ACL dos buckets Descrição

public Todos os usuários autenticados ou não.

all users Todos os usuários autenticados.

others Usuários autenticados, mas não o proprietário do bucket.

log delivery Não compatível.

9. Edite as ACLs e selecione Save.

APIs REST do ECS que dão suporte a usuários do CASDescreve os recursos de APIs REST do ECS que podem ser usados para gerenciar asconfigurações de perfil e de usuários do CAS.

A API REST ECS Management contém recursos para gerenciar dados de um usuário quesão específicos do CAS.

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

APIs REST do ECS que dão suporte a usuários do CAS 101

Page 102: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Descrições dos recursos da API REST:

l GET /object/user-cas/secret/{uid} : obtém a chave secreta do CAS parao usuário especificado.

l GET /object/user-cas/secret/{namespace}/{uid}: obtém a chavesecreta do CAS para o namespace e o usuário especificados.

l POST /object/user-cas/secret/{uid}: cria ou atualiza a chave secreta doCAS para um usuário especificado.

l GET /object/user-cas/secret/{namespace}/{uid}/pea: gera umarquivo PEA para o usuário especificado.

l POST /object/user-cas/secret/{uid}/deactivate: exclui a chavesecreta do CAS para um usuário especificado.

l GET /object/user-cas/bucket/{namespace}/{uid}: obtém o bucketpadrão para o namespace e o usuário especificados.

l GET /object/user-cas/bucket/{uid}: obtém o bucket padrão para umusuário especificado.

l POST /object/user-cas/bucket/{namespace}/{uid}: atualiza o bucketpadrão para o namespace e o usuário especificados.

l GET /object/user-cas/applications/{namespace}: obtém osaplicativos registrados do CAS para um namespace especificado.

l POST /object/user-cas/metadata/{namespace}/{uid}: atualiza osaplicativos registrados do CAS para um namespace e um usuário especificados.

l GET /object/user-cas/metadata/{namespace}/{uid}: obtém osmetadados de usuário do CAS para o namespace e o usuário especificados.

Consulte a Referência da API REST de gerenciamento do ECS para mais informações.

Suporte à API do SDK CAS (Content-Addressed Storage,armazenamento de conteúdo endereçável)

Supported versionsO ECS dá suporte à API de CAS com build 3.1.544 ou superior. Se estiver usando um SOWindows de 64 bits, as APIs de CAS serão aceitar a partir do build 3.3.718. Além disso,você deve verificar se o aplicativo do ISV dá suporte ao ECS.

Mais informações sobre o suporte ao CAS do ECS são fornecidas em Configurar o suporteaos aplicativos do SDK CAS com o portal do ECS na página 90.

Suporte de consulta de CASA consulta de CAS é aceita a partir do ECS 2.2.

Obs.

No ECS, as operações da consulta de CAS retornam resultados com base na hora decriação do C-Clip existente e na hora de exclusão do C-Clip excluído (reflexo). No EMCCentera, as operações de consulta retornam resultados com base na hora de gravação doobjeto.

APIs incompatíveisAs chamadas API do SDK CAS não são compatíveis com o ECS 2.2:

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

102 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 103: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

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

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

Suporte à API do SDK CAS (Content-Addressed Storage, armazenamento de conteúdo endereçável) 103

Page 104: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Configurar o suporte aos aplicativos do SDK CAS com o portal do ECS

104 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 105: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

PARTE 5

API ECS Management

Capítulo 17, "Introdução à API REST ECS Management"

Capítulo 18, "Autenticação com o serviço de gerenciamento do ECS"

Capítulo 19, "Resumo da API REST ECS Management"

API ECS Management 105

Page 106: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

API ECS Management

106 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 107: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 17

Introdução à API REST ECS Management

l API REST de gerenciamento do ECS..................................................................... 108

Introdução à API REST ECS Management 107

Page 108: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

API REST de gerenciamento do ECSEsta seção descreve como acessar a API REST de gerenciamento do ECS e como seautenticar nela, e oferece um resumo dos caminhos da API. A API REST de gerenciamentodo ECS permite que a área de armazenamento de objetos seja configurada e gerenciada.Após a configuração da área de armazenamento de objeto, as operações subsequentesde criação, leitura, atualização e exclusão de objetos serão realizadas usando protocolosde objeto e arquivo compatíveis com o ECS.

Consulte o seguinte tópico para obter noções básicas de como acessar a API REST e decomo se autenticar:

l Autenticar-se com o API REST de gerenciamento do ECS na página 110

os caminhos da API são resumidos em:

l Resumo da API REST de gerenciamento do ECS na página 116

Além de isso, uma referência da API é fornecida em:

l Referência da API REST de gerenciamento do ECS

A Referência da API REST de gerenciamento do ECS é gerada automaticamente do código-fonte e oferece uma referência para cada um dos métodos disponíveis.

Introdução à API REST ECS Management

108 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 109: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 18

Autenticação com o serviço de gerenciamento doECS

l Autenticar-se com o API REST de gerenciamento do ECS......................................110

Autenticação com o serviço de gerenciamento do ECS 109

Page 110: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Autenticar-se com o API REST de gerenciamento do ECSO ECS usa um sistema de autenticação baseado em tokens para todas as suas chamadasAPI REST. São oferecidos exemplos para a autenticação com a API REST ECS, com e semcookies.

Assim que um usuário é autenticado no ECS, um token de autenticação é exibido e podeser usado para autenticar o usuário nas chamadas posteriores.

l Um código HTTP 401 será exibido se o client estiver seguindo os redirecionamentosautomaticamente, indicando que é necessário fazer log-in e autenticar-se para obterum novo token.

l Um código HTTP 302 será exibido se o client não estiver seguindo osredirecionamentos automaticamente. O código 302 direciona o client ao local ondepoderá ser autenticado novamente.

É possível recuperar e usar tokens de autenticação:

l Salvando o cookie X-SDS-AUTH-TOKEN de uma solicitação de autenticação comsucesso e o enviando nas solicitações posteriores.

l Lendo o cabeçalho HTTP X-SDS-AUTH-TOKEN de uma solicitação de autenticação comsucesso e o copiando nas solicitações posteriores.

A API REST está disponível na porta :4443 e os clients acessam o ECS emitindo umasolicitação de log-in no formato:

https://<ECS_IP>:4443/login

Autenticar-se com AUTH-TOKENEste exemplo mostra como usar os tokens de autenticação lendo o cabeçalho http X-SDS-AUTH-TOKEN de uma solicitação de autenticação feita com sucesso e copiando essecabeçalho em uma solicitação posterior. O exemplo não usa cookies. Os exemplos destaseção são escritos em curl e formatados para serem legíveis.

Este comando executa uma operação GET no recurso /login. A opção -u indica o usuáriodo cabeçalho básico de autenticação. A designação do usuário deve ser incluída nasolicitação. Após a autenticação com sucesso, um código HTTP 200 é exibido, bem comoo cabeçalho X-SDS-AUTH-TOKEN que contém o token codificado.

A duração padrão do token da API de gerenciamento é de 8 horas, o que significa queapós 8 horas o token não é mais válido. O tempo de inatividade padrão para um token éde 2 horas; após um período de inatividade de 2 horas, o token expira. Se um usuárioutilizar um token expirado, ele será redirecionado para a URL "/login" e o usosubsequente do token expirado fará com que o código de erro 401 de status de HTTPseja exibido.

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

Autenticação com o serviço de gerenciamento do ECS

110 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 111: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

< Content-Type: application/xml< Content-Length: 93< Connection: keep-alive< X-SDS-AUTH-TOKEN: BAAcQ0xOd3g0MjRCUG4zT3NJdnNuMlAvQTFYblNrPQMAUAQADTEzODU0OTQ4NzYzNTICAAEABQA5dXJu OnN0b3JhZ2VvczpUb2tlbjo2MjIxOTcyZS01NGUyLTRmNWQtYWZjOC1kMGE3ZDJmZDU3MmU6AgAC0A8=<<?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):

Em seguida, o token pode ser passado na próxima chamada API. É possível copiar oconteúdo do X-SDS-AUTH-TOKEN e passá-lo à próxima solicitação por meio do switch -Hdo 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>

Autenticar com cookiesEste exemplo mostra como usar os tokens de autenticação salvando o cookie de umasolicitação de autenticação feita com sucesso e, depois, passando o cookie em umasolicitação posterior. Os exemplos desta seção são escritos em curl e formatados paraserem legíveis.

Neste exemplo, você especifica o parâmetro ?using-cookies=true para indicar que desejareceber cookies além do cabeçalho HTTP normal. Esse comando curl salva o token deautenticação em um arquivo chamado cookiefile no diretório atual.

curl -L --location-trusted -k https://<ECS_IP>:4443/login?using-cookies=true -u "root:Password" -c cookiefile -v

O próximo comando passa o cookie com o token de autenticação pelo switch -b e exibeas informações de tenant do usuário.

curl -k https://10.247.100.247:4443/object/namespaces -b cookiefile -v

Autenticação com o serviço de gerenciamento do ECS

Autenticar com cookies 111

Page 112: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

<?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>

Fazer log-outA API de log-out encerra uma sessão.

Um usuário é autorizado a um máximo de 100 tokens de autenticação simultâneos. Apósesse limite, o sistema recusará todas as novas conexões para esse usuário até que ostokens sejam liberados. Os tokens podem ser liberados por sua expiração natural ouacionando explicitamente esse URI:

https://<ECS_IP>:4443/logout

Se você tiver várias sessões em execução ao mesmo tempo, esse URI forçará oencerramento de todos os tokens relacionados ao usuário atual.

GET https://<ECS_IP>:4443/logout?force=true

Segue a seguir um exemplo de solicitação de log-out.

Solicitação

GET https://<ECS_IP>:4443/logout

X-SDS-AUTH-TOKEN:{Auth_Token}

Transfira o cabeçalho ou o cookie com o token de autenticação para fazer log-out.

Resposta

HTTP 200

WhoamiUm usuário do ECS pode exibir seu próprio nome de usuário, sua associação de tenant esuas funções usando a chamada API whoami.

Solicitação

GET https://<ECS_IP>:4443/user/whoami

Resposta

HTTP 200

GET /user/whoami<user> <common_name>root</common_name> <distinguished_name/> <namespace/> <roles> <role>SYSTEM_ADMIN</role>

Autenticação com o serviço de gerenciamento do ECS

112 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 113: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

</roles></user>

HTTP 200

GET /user/whoami<user> <common_name>[email protected]</common_name> <distinguished_name/> <namespace>ns1</namespace> <roles> <role>NAMESPACE_ADMIN</role> </roles></user>

Esse exemplo mostra o resultado de whoami para o usuário root e para um usuário quefoi atribuído à função NAMESPACE_ADMIN do namespace "ns1".

Autenticação com o serviço de gerenciamento do ECS

Whoami 113

Page 114: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Autenticação com o serviço de gerenciamento do ECS

114 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 115: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 19

Resumo da API REST ECS Management

l Resumo da API REST de gerenciamento do ECS................................................... 116

Resumo da API REST ECS Management 115

Page 116: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Resumo da API REST de gerenciamento do ECSA API REST de gerenciamento do ECS permite que a área de armazenamento de objetosdo ECS seja configurada e gerenciada.

A seguinte tabela resume a API REST de gerenciamento do ECS.

Tabela 15 API REST de gerenciamento do ECS- resumo dos métodos

Área da API Descrição

Configuração

Certificate /object-certAPI para gerenciamento de certificados.

/object-cert/keystoreAPI que permite que a cadeia de certificados usada pela EMC sejaespecificada e a distribuição do certificado.

ConfigurationProperties

/config/object/propertiesAPI que permite que o escopo de usuários seja configurado comoGLOBAL ou NAMESPACE.

No escopo GLOBAL, os usuários são globais e podem sercompartilhados nos namespaces. Nesse caso, o namespace padrãoassociado a um usuário determina o namespace para as operações deobjeto e não é necessário informar um namespace para uma operação.Se o escopo de usuários for NAMESPACE, um usuário será associado aum namespace e, portanto, pode haver mais de um usuário com omesmo nome, cada um deles associado a diferentes namespaces. Nomodo NAMESPACE, um namespace deve ser oferecido para cadaoperação.

Deve ser configurado antes da criação do primeiro usuário. O padrão éGLOBAL.

Licensing /licenseAPI que permite que uma licença seja adicionada e que os detalhes dalicença sejam recuperados.

Feature /feature/API que recupera os detalhes de um recurso.

CAS

CAS User Profile /object/user-casAPI que permite a atribuição de chaves secretas aos usuários do CAS e ageração do arquivo PEA (Pool Entry Authorization).

Acesso ao file system

NFS /object/nfsA API permitirá a criação de uma exportação NFS com base em umbucket do ECS e também permitirá acesso à exportação por grupos eusuários do Unix.

Resumo da API REST ECS Management

116 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 117: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 15 API REST de gerenciamento do ECS- resumo dos métodos (continuação)

Área da API Descrição

Metering

Billing /object/billingAP que permite a medição da utilização da área de armazenamento deobjetos no nível de tenant e de bucket. Consulte Guia do administrador:gerenciar um tenant para obter mais informações.

Migração

Transformation /object/transformationAPI que permite a transformação de dados.

Monitoramento

Capacity /object/capacityAPI para recuperar a capacidade gerenciada atual.

Dashboard

Alerts /vdc/alertsAPI para recuperar alertas de auditoria.

Events /vdc/eventsAPI que exibe os eventos de auditoria para um namespace especificado.

Multi-tenancy

Namespace /object/namespacesAPI que permite que um namespace seja criado e gerenciado.

Também permite a configuração do período de retenção para onamespace. Consulte Guia do administrador: gerenciar um tenant paraobter mais informações.

Replicação geográfica

Replication Group /data/data-service/vpoolsAPI que permite a criação e administração de grupos de replicação.

Temporary Failed Zone /tempfailedzone/API que permite que todas as zonas com falha temporária ou que aszonas com falha temporária de um grupo de replicação específico sejamrecuperadas.

Provisionamento

Base URL /object/baseurlAPI que permite a criação de uma URL base que habilita ofuncionamento de aplicativos existentes com a área de armazenamentode objetos do ECS. Mais informações sobre a URL base podem serobtidas em: .

Bucket /object/bucket

Resumo da API REST ECS Management

Resumo da API REST de gerenciamento do ECS 117

Page 118: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 15 API REST de gerenciamento do ECS- resumo dos métodos (continuação)

Área da API Descrição

API para provisionamento e gerenciamento de buckets.

/object/bucket/{bucketName}/lockAPI que permite que o acesso aos buckets seja bloqueado. Consulte Guia do administrador: gerenciar um tenant para obter maisinformações.

Data Store /vdc/data-storesAPI que permite a criação de datastores nos file systems (/vdc/data-stores/filesystems) ou nos nós de commodity (/vdc/data-stores/commodity).

Node /vdc/nodesAPI para recuperar os nós que estão configurados para o cluster nomomento.

Storage Pool /vdc/data-services/varraysAPI que permite a criação e gerenciamento de pools de armazenamento.

Virtual Data Center /object/vdcsPermite que um VDC seja adicionado e que seus endpointsintermediários do VDC e a chave secreta sejam especificados para areplicação de dados entre os locais do ECS.

VDC Keystore /vdc/keystoreAPI que gerencia certificados de um VDC.

Suporte

Call Home /vdc/callhome/API que permite que o ConnectEMC seja configurado e a criação deeventos de alerta para o ConnectEMC.

CLI Package /cliAPI que faz download do pacote do ECS.

Gerenciamento de usuários

AuthenticationProvider

/vdc/admin/authprovidersAPI que permite que os provedores de autenticação sejam adicionados egerenciados.

Password Group(Swift)

/object/user-passwordAPI que permite a geração de uma senha para ser usada com aautenticação do OpenStack Swift.

Secret Key /object/user-secret-keysAPI que permite que chaves secretas sejam gerenciadas e atribuídas aosusuários de objeto.

Resumo da API REST ECS Management

118 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 119: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 15 API REST de gerenciamento do ECS- resumo dos métodos (continuação)

Área da API Descrição

Secret Key Self-Service /object/secret-keysAPI que permite que os usuários do S3 criem uma nova chave secretaque os permitirá acessar os objetos e buckets de seu namespace naárea de armazenamento de objetos.

User (Object) /object/usersAPI para criação e gerenciamento de usuários de objeto. Os usuários deobjeto são sempre associados a um namespace. A API exibe uma chavesecreta que pode ser usada para acesso ao S3. Um usuário de objetoatribuído a uma chave secreta S3 pode alterá-la usando a API REST.

/object/users/lock.

Permite que o acesso aos usuários seja bloqueado.

User (Management) /vdc/usersAPI para criação e gerenciamento de usuários de gerenciamento. Osusuários de gerenciamento podem ser atribuídos à função SystemAdmin ou Namespace Admin. A senha dos usuários de gerenciamentolocais pode ser alterada.

Resumo da API REST ECS Management

Resumo da API REST de gerenciamento do ECS 119

Page 120: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Resumo da API REST ECS Management

120 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 121: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

PARTE 6

HDFS

Capítulo 20, "O que é ECS HDFS?"

Capítulo 21, "Criar um bucket para o file system do HDFS"

Capítulo 22, "Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS"

Capítulo 23, "Configurar a integração do ECS HDFS a um cluster simples do Hadoop"

Capítulo 24, "Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)"

Capítulo 25, "Orientação sobre a configuração do Kerberos"

Capítulo 26, "Solução de problemas"

Capítulo 27, "Propriedades do core-site.xml do Hadoop para ECS HDFS"

Capítulo 28, "Exemplo de metadados seguros de bucket"

HDFS 121

Page 122: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

HDFS

122 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 123: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 20

O que é ECS HDFS?

l O que é ECS HDFS?..............................................................................................124l Configurando o Hadoop para usar o ECS HDFS ................................................... 125l URI do ECS HDFS para acesso ao file system....................................................... 125l Modos de autenticação do Hadoop..................................................................... 126l Migração de um cluster simples para um cluster de Kerberos do Hadoop............130l Interação do file system...................................................................................... 131l Aplicativos Hadoop compatíveis e não compatíveis............................................ 131

O que é ECS HDFS? 123

Page 124: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

O que é ECS HDFS?O ECS HDFS é um HCFS (Hadoop Compatible File System) que permite que você executeaplicativos do Hadoop 2.X na infraestrutura de armazenamento do ECS.

Você pode configurar sua distribuição do Hadoop para ser executada no file systemintegrado do Hadoop, no ECS HDFS ou em qualquer combinação do HDFS, do ECS HDFSou de outros Hadoop Compatible File Systems disponíveis em seu ambiente. A figura aseguir mostra como o ECS HDFS integra-se a um cluster existente do Hadoop.

Figura 7 Integração do ECS HDFS em um cluster do 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

Em um ambiente do Hadoop configurado para usar o ECS HDFS, cada um dos nós dedados do ECS HDFS funciona como um NameNode tradicional do Hadoop, o que significaque todos os nós de dados do ECS HDFS podem aceitar e atender solicitações do HDFS.

Ao configurar o client do Hadoop para usar o ECS HDFS em vez do HDFS tradicional, aconfiguração aponta para o ECS HDFS para fazer qualquer atividade de HDFS. Em cada nódo client do ECS HDFS, qualquer componente tradicional do Hadoop utilizaria abiblioteca de client do ECS HDFS (o arquivo JAR do ViPRFS) para realizar a atividade doHDFS.

Para integrar o ECS HDFS com um ambiente do Hadoop existente, você deve ter:

O que é ECS HDFS?

124 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 125: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

l Um cluster do Hadoop já instalado e configurado. Estas distribuições sãocompatíveis:

n Cloudera 5.1, 5.2, 5.3, 5.4

n Pivotal 2.1, 3.0, 3.0.1

n Hortonworks 2.0, 2.1, 2.2, 2.3

Se você pretende usar a distribuição do Hortonworks, pode usar o HortonworksAmbari. O Hortonworks 2.3 (Hadoop 2.7) vem completa com um pacote de discos doECS que pode ser habilitado para simplificar a integração ao ECS HDFS. As instruçõespara usar essa distribuição são fornecidas em: Implementando um clusterHortonworks com Ambari na página 144.

l O Hadoop instalado e configurado para dar suporte ao ECS HDFS, que requer:

n Um ou mais buckets habilitados para file system usados para acesso ao HDFS.

n A biblioteca de client do ECS implementada no cluster.

l Um cluster do Hadoop que use Kerberos ou Kerberos com o Active Directory.

n Principais de serviço do Kerberos implementados nos nós do ECS

n Metadados protegidos implementados no bucket.

Configurando o Hadoop para usar o ECS HDFSO Hadoop armazena as informações de configuração do sistema em vários arquivos,como core-site.xml, hdfs-site.xml, hive-site.xml etc. A edição de core-site.xml é parte obrigatória da configuração do ECS.

Existem vários tipos de propriedades para adicionar ou modificar no core-site.xml,que incluem:

l Classes Java do ECS HDFS: esse conjunto de propriedades define as classes deimplementação do ECS HDFS contidas na biblioteca de client do ECS HDFS. Elas sãoobrigatórias.

l Propriedades do local do file system: essas propriedades definem o URI do filesystem (esquema e autoridade) que será usado ao executar trabalhos do Hadoop, eos endereços IP dos nós de dados do ECS para um file system específico do ECS.

l Propriedades do realm e do principal do serviço do Kerberos: Essas propriedades sãonecessárias somente quando você estiver executando em um ambiente Hadooponde o Kerberos esteja presente. Essas propriedades mapeiam usuários do Hadoope do ECS HDFS.

O core-site.xml reside em cada nó do cluster do Hadoop. Você deve adicionar asmesmas propriedades para cada instância do core-site.xml.

Obs.

Todas as distribuições compatíveis (Ambari, Cloudera, Pivotal) permitem a administraçãodos arquivos de configuração por meio de sua interface de gerenciamento. Recomenda-se usar a interface de gerenciamento em vez de fazer a edição manual de arquivos. Alémdisso, as alterações feitas usando a interface de gerenciamento são mantidas no cluster.

URI do ECS HDFS para acesso ao file systemApós configurar o Hadoop para usar o file system do ECS, você poderá acessá-loespecificando o URI do ECS HDFS com viprfs:// como o esquema e uma combinação

O que é ECS HDFS?

Configurando o Hadoop para usar o ECS HDFS 125

Page 126: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

de bucket do ECS, namespace do tenant e nome de instalação definido pelo usuário paraa autoridade.

O URI do ECS HDFS se parece com:

viprfs://bucket_name.namespace.installation/path

O bucket_name corresponde a um bucket habilitado para HDFS. Ele contém os dados quevocê deseja analisar com o Hadoop. O namespace corresponde ao namespace de umtenant, e o installation_name é um nome que você atribui a um conjunto específico denós do ECS ou a um balanceador de carga.ECS O HDFS resolve o installation_name paraum conjunto de nós do ECS ou para um balanceador de carga usando a propriedadefs.vipr.installation.[installation_name].hosts, que inclui os endereços IP dos nós do ECSou do balanceador de carga.

Se o installation_name for mapeado a um conjunto de nós do ECSECS, será possívelespecificar a frequência de consultas ao ECS para a lista de nós ativos configurandofs.vipr.installation.[installation_name].resolution para dynamic, e fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms para especificar a frequência deconsulta ao ECS para a lista de nós ativos.

Você pode especificar o URI do ECS HDFS como o file system padrão em core-site.xml, para ambientes simples e Kerberos, configurando-o como o valor dapropriedade fs.defaultFS, mas isso não é um requisito. Quando o ECS HDFS não foro file system padrão, você deverá usar o URI completo que inclui o caminho sempre queacessar os dados do ECS. Se você tem aplicativos existentes que já usam um file systempadrão diferente, é necessário atualizar os aplicativos.

Modos de autenticação do HadoopO Hadoop dá suporte a dois diferentes modos de operação para determinar a identidadede um usuário: o modo simples e o modo Kerberos.

Simples

No modo simples, a identidade de um processo do client é determinada pelosistema operacional do host. Em sistemas semelhantes ao Unix, o nome de usuárioé o equivalente a 'whoami'.

Kerberos

Na operação do Kerberos, a identidade do processo de um client é determinada porsuas credenciais do Kerberos. Por exemplo, em um ambiente de Kerberos, umusuário pode usar o utilitário kinit para obter um TGT (Ticket-Granting-Ticket) doKerberos e usar o utilitário klist para determinar seu principal atual. Ao mapear umprincipal do Kerberos para um nome de usuário do HDFS usando a propriedadeauth_to_local do Hadoop, todos os componentes, exceto os da instância primária,serão descartados. Por exemplo, um principal todd/[email protected] atuará como o nome de usuário simples todd noHDFS.

O ECS HDFS integra-se a clusters do Hadoop configurados para usar modos deautenticação simples ou Kerberos.

Quando o cluster do Hadoop for protegido por Kerberos, o ECS pode ser configurado paraconceder acesso aos usuários com principais Kerberos na forma [email protected] alternativa, quando o ECS usar o AD para autenticar usuários, uma confiançaunidirecional pode ser configurada entre o ambiente de Kerberos e o AD para que os

O que é ECS HDFS?

126 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 127: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

usuários possam se autenticar usando suas credenciais do AD, na [email protected].

As permissões de arquivos e diretórios são determinadas pela umask(fs.permissions.umask-mode). A umask recomendada é 022.

Acessando o bucket como um file systemO armazenamento de file system do HDFS é oferecido por um bucket do ECS. Quandovocê cria um bucket, você solicita que o ECS o disponibilize como um file system.

Ao conceder acesso ao file system, o ECS (por meio da biblioteca de client do ECS) usa aspermissões configuradas para o bucket e as configurações do arquivo core-site.xmldo Hadoop para determinar o acesso. Você precisa para garantir que tenha configuradoacesso suficiente para permitir que os usuários e serviços do Hadoop possam criararquivos e diretórios no file system root (bucket).

O proprietário do bucket é o proprietário do file system root e as permissões atribuídasao proprietário no bucket se transformam em permissões no file system root. Além disso,as ACLs de bucket precisam ser atribuídas para que cada usuário que precise acessar ofile system do HDFS tenha permissão no bucket. Isso pode ser feito adicionando ACLs deusuário explicitamente para todos os usuários do bucket ou especificando ACLs degrupos personalizados. Consulte Grupo padrão e ACLs de grupos personalizados dosbuckets na página 127. O proprietário do bucket deve ser um usuário de objeto do ECS.Os outros usuários não são usuários de objeto e podem ser nomes de usuário do Unix docluster do Hadoop.

Depois que os usuários tiverem acesso ao file system porque são proprietários dele,porque foram adicionados ao bucket como um usuário ou porque são membro do grupoao qual o file system pertence, os arquivos e diretórios que eles criarem terãopermissões determinadas pela propriedade umask em core-site.xml.

O ECS também dá suporte a superusuário e ao mecanismo de supergrupo para habilitar oacesso ao HDFS.

Grupo padrão e ACLs de grupos personalizados dos bucketsVocê pode habilitar o acesso ao bucket com base em ACLs de usuário ou atribuindo ACLsde grupos personalizados. Grupos personalizados são nomes de grupos de usuários,conforme definido no cluster do Hadoop, e permitem que os usuários do Hadoopacessem o bucket usando o HDFS.

Os grupos comuns definidos no cluster do Hadoop são hdfs (com o usuário hdfs),hadoop (normalmente, inclui todos os usuários de serviço) e users (inclui outrosusuários não relacionados a serviço que terão acesso aos aplicativos do cluster doHadoop). Você pode criar grupos correspondentes no Portal do ECS e atribuir permissõesa eles.

Também é possível atribuir um Grupo padrão para o bucket. O grupo padrão será o grupoatribuído ao file system raiz '/'. Por exemplo, se o proprietário de seu bucket for hdfs e ogrupo padrão for definido como hadoop, '/' será definido para hdfs:hadoop comousuário e grupo, respectivamente. Um grupo padrão também é um grupo personalizado eserá exibido na lista de ACLs de grupos personalizados.

Se um grupo padrão não for definido, a raiz do file system não terá nenhum grupo, comoexibido a seguir.

drwx---rwx+ - hdfs 0 2015-12-09 12:30 /

O que é ECS HDFS?

Acessando o bucket como um file system 127

Page 128: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Se um grupo padrão "hadoop" for definido, a propriedade e as permissões serãoconforme exibido a seguir.

drwxrwxrwx+ - hdfs hadoop 0 2015-12-09 12:28 /

Essas permissões não são herdadas por diretórios criados na raiz.

Se um grupo padrão não estiver atribuído, o proprietário do bucket (o proprietário do filesystem raiz) pode atribuir um grupo ao acessar o HDFS a partir do Hadoop usando hdfsdfs -chgrp e hdfs dfs -chmod.

Superusuário e supergrupo do Hadoop.

O superusuário de um ambiente Hadoop do é o usuário que inicia o namenode,geralmente hdfs ou [email protected]. Em relação ao ECS HDFS, o superusuário é oproprietário do bucket. Portanto, se você quiser que o superusuário do Hadoop tenhaacesso de superusuário ao bucket do ECS, deverá garantir que o bucket pertença aohdfs, ao [email protected] ou ao [email protected], se você estiver usando o ActiveDirectory para autenticar usuários no ambiente do Hadoop.

Para garantir que o client do Hadoop tenha acesso de superusuário, você também podeconfigurar um grupo de superusuários usando a propriedadedfs.permissions.superusergroup em core-site.xml. No modo simples, a verificaçãopara determinar se um usuário é membro do supergrupo é feita no client, verificando ovalor da propriedade dfs.permissions.supergroup hadoop. No modo Kerberos, averificação para determinar se um usuário é membro do supergrupo é feita no servidordo ECS.

Em geral, quando os buckets são configurados para acesso pelo superusuário doHadoop ou por um grupo de superusuários do Hadoop, o superusuário terá acesso total(leitura e gravação) ao bucket. Geralmente, os usuários sem privilégios de superusuárioterão acesso de leitura, mas isso dependerá de como o bucket foi criado. Um usuário nãoprecisa ser usuário de objeto do ECS para ter acesso ao bucket. O nome precisacorresponder a um usuário do AD, do Kerberos ou local do Unix (dependendo do modode autenticação que está sendo usado).

Uma prática recomendada é garantir que o usuário hdfs ou o principal hdfs seja oproprietário do bucket (superusuário) ou um membro de um grupo de superusuários.

Acesso multiprotocolo (cruzado)O ECS dá suporte à capacidade de gravar dados em um bucket usando o protocolo S3 ede disponibilizar esses dados como arquivos via HDFS.

O acesso multiprotocolo (também chamado de acesso cruzado) significa que os objetosgravados no bucket usando o protocolo S3 podem se tornar o tema dos trabalhos doHadoop, como o MapReduce. Da mesma forma, diretórios e arquivos gravados pelo HDFSpodem ser lidos e modificados utilizando clients do S3.

Para que os dados gravados com S3 possam ser acessados como arquivos, oadministrador do bucket pode definir um grupo padrão no bucket e pode definir aspermissões padrão para arquivos e diretórios pertencentes a esse grupo. Esse grupopadrão do Unix é atribuído aos objetos quando eles são criados no S3 para que, quandoeles forem acessados pelo HDFS, não tenham apenas um proprietário, mas também listade membros do grupo e permissões que permitam o acesso a partir do cluster doHadoop.

Os arquivos criados usando o HDFS e acessados com o protocolo S3 não serão afetadospelas permissões padrão. Elas somente serão aplicadas quando os arquivos foremcriados usando o protocolo S3.

O que é ECS HDFS?

128 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 129: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Modo de autenticação Kerberos do HadoopQuando o Kerberos e o ECS Active Directory Server são integrados, o realm do Kerberosfornece um só namespace de usuários para que os usuários do Hadoop autenticadoscom o comando kinit sejam reconhecidos como usuários ECS credenciados.

Em um cluster Hadoop em execução no modo Kerberos, deve haver uma confiançaunidirecional de realm cruzado do realm do Kerberos para o realm do Ative Directoryusado para autenticar seus usuários do ECS.

As seguintes propriedades de tradução de identidade do core-site.xml são usadaspara garantir a tradução adequada dos usuários do Hadoop ao ECS:

l fs.permissions.umask-mode: defina o valor como 022.

l fs.viprfs.auth.anonymous_translation: defina o valor como CURRENT_USER.

l fs.viprfs.auth.identity_translation: defina o valor como CURRENT_USER_REALM paraque o realm dos usuários seja automaticamente detectado.

Além disso, você deve definir as seguintes propriedades no core-site.xml paradefinir o principal do serviço:

l viprfs.security.principal

Usuário proxyO ECS HDFS dá suporte ao uso do usuário proxy do Hadoop.

Um usuário proxy permite que um superusuário do Hadoop envie trabalhos ou acesse oHDFS em nome de outro usuário. A funcionalidade de usuário proxy pode ser comparadaaos recursos de 'usuário efetivo' do Unix/Linux, nos quais a execução de um comandocomo um usuário pressuporá a identidade de um usuário diferente, conformeidentificado pelas configurações de permissão do arquivo executável.

Os usuários proxy são configurados para personificação segura por namespace (ou porbucket). Os usuários de proxy são compatíveis com o modo simples e de Kerberos. Emqualquer modo, o administrador pode restringir as personificações de proxy usando aspropriedades 'hadoop.proxyuser.*.*'.

Usuário de equivalênciaO ECS converte principais de três partes em principais de duas partes.

Geralmente, um principal do Kerberos tem a forma primary/instance@realm, embora ainstância não seja obrigatória; portanto, o principal do primary@realm se aplica atodos os hosts do realm. Se a instância for especificada, ela poderá ser usada paradesignar um host específico, como joe/[email protected]/[email protected]. Esses dois principais servem para omesmo usuário principal (joe), mas somente devem receber autenticação nos hosts(host1 ou host2).

Esse tipo de principal de usuário é recomendado para oferecer um nível avançado desegurança. Da perspectiva do ECS, todos os principais teriam que ser adicionados aoECS. Esse processo é muito complicado e, portanto, o recurso de usuário de equivalênciapermite que a autorização do ECS seja realizada por meio de um principal de duas partes(primary@realm), mesmo se principais de três partes estiverem sendo usados.

O que é ECS HDFS?

Modo de autenticação Kerberos do Hadoop 129

Page 130: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Suporte a SymLinkNo HDFS padrão, um link simbólico que não especifique o URI completo do arquivoaponta para um caminho na mesma instância do HDFS.

A mesma regra é válida para o ECS HDFS. Quando você não especificar o URI completoem um symlink, o ECS HDFS usará o namespace e o bucket atuais como raiz. Parafornecer um symlink para um arquivo fora do namespace e bucket atuais, você devefornecer o URI completo com o esquema e a autoridade.

Obs.

Hadoop 2.2 não dá suporte a SymLinks.

Migração de um cluster simples para um cluster de Kerberos doHadoop

O ECS dá suporte à migração de um ambiente simples do Hadoop a um ambienteHadoop protegido por Kerberos.

Quando o ECS HDFS é integrado a um ambiente do Hadoop que usa segurança simples,os arquivos e diretórios criados por usuários e processos do Hadoop pertencerão ausuários não protegidos. Se, posteriormente, você migrar o cluster do Hadoop para usara segurança do Kerberos, os arquivos e diretórios gravados no ECS HDFS não serão maisacessíveis a esses usuários.

O ECS oferece um recurso integrado de migração que permite que você faça ummapeamento entre shortnames e principais do Kerberos no ECS, para que os arquivos depropriedade de shortnames não protegidos possam ser acessados como o principalmapeado do Kerberos.

Quando você tiver apenas um pequeno número de arquivos que foram gravados porusuários shortname, é possível executar o comando chown para que eles sejampropriedade do principal do Kerberos. No entanto, quando você tiver um grande númerode arquivos, a propriedade deles não precisará ser alterada com o recurso de migração.

Esse recurso não é implementado para buckets e você precisará alterar as ACLs debucket para permitir o acesso pelos principais do Kerberos caso dependa do acesso porusuários. No entanto, se você usar a lista de membros do grupo como o meio principalpara habilitar o acesso, não será necessário alterar as ACLs de bucket.

O ECS permite o uso de grupos para simplificar o acesso aos buckets, arquivos ediretórios. Os grupos sempre usam nomes simples do Unix; portanto, o nome do grupoassociado a um bucket, arquivo ou diretório será o mesmo que acessá-los de um clustersimples ou com proteção do Kerberos. Ao acessar em um ambiente simples, a lista demembros do grupo será determinada na caixa Unix; ao acessar em um cluster comproteção do Kerberos, você poderá configurar a lista de membros do grupo atribuindo omapeamento.

Ao usar as credenciais do Active Directory, o mapeamento entre os principais do AD e osprincipais do Unix é feito por meio da remoção do sufixo de domínio; portanto, o usuá[email protected] torna-se hdfs. Esse processo não é tão flexível quanto o uso demapeamento de principais do Kerberos, que permite mapeamentos como de [email protected] para hdfs.

Ao usar grupos com o Active Directory, um provedor de autenticação deve ter sidoconfigurado no ECS para que a associação do grupo possa ser verificada.

O que é ECS HDFS?

130 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 131: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Interação do file systemQuando você está interagindo diretamente com o ECS HDFS, você pode observar asseguintes diferenças de interação com o file system do padrão do HDFS:

l Os aplicativos que esperam que o file system seja uma instância doDistributedFileSystem não funcionam. Os aplicativos codificados para trabalhar naimplementação do HDFS integrado exigem alterações para usar o ECS HDFS.

l O ECS HDFS não é compatível com checksum dos dados.

l Quando você usa a função listCorruptFileBlocks, todos os blocks são relatados comoOK porque o ECS HDFS não tem conhecimento de blocks corrompidos.

l O fator de replicação é sempre informado como a constante N, onde N=1. Os dadossão protegidos pelo SLA do ECS, não pela replicação do Hadoop.

Aplicativos Hadoop compatíveis e não compatíveisO ECS HDFS dá suporte à maioria dos aplicativos do ecossistema do Hadoop.

Aplicativos compatíveisOs seguintes aplicativos do ecossistema do Hadoop são compatíveis:

l HDFS

l MapReduce

l Yarn

l Pig

l Hive

l HBase

l HAWQ (consulte Configurar o Pivotal HAWQ na página 155 para obter as versõescompatíveis)

Aplicativos não compatíveisOs seguintes aplicativos do ecossistema do Hadoop não são compatíveis:

l HttpFS

l Hue

l Cloudera Impala

O que é ECS HDFS?

Interação do file system 131

Page 132: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

O que é ECS HDFS?

132 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 133: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 21

Criar um bucket para o file system do HDFS

l Criar um bucket para HDFS usando o Portal do ECS............................................. 134l Exemplos de permissões de bucket do Hadoop e do ECS.................................... 139

Criar um bucket para o file system do HDFS 133

Page 134: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Criar um bucket para HDFS usando o Portal do ECSUse o Portal do ECS para criar um bucket configurado para uso com o HDFS.

Antes de você começar

l Você deve ser um Namespace Admin ou um System Admin para criar um bucket noportal do ECS.

l Caso seja um Namespace Admin, é possível criar buckets em seu namespace.

l Caso seja um System Admin, é possível criar um bucket que pertença a qualquernamespace.

Você precisará garantir que os serviços e usuários do Hadoop tenham acesso ao filesystem do HDFS (bucket), e que os arquivos e diretórios que eles criaram estejamacessíveis para os usuários e grupos adequados.

Isso pode ser feito das seguintes maneiras:

l Faça com que o proprietário do bucket seja igual ao superusuário do Hadoop,geralmente, "hdfs" ou "[email protected]".

l Habilite o acesso ao bucket por lista de membros do grupo:

n Atribua um grupo padrão ao bucket. As ACLs personalizadas de grupo serãoatribuídas automaticamente.

n Após a criação do bucket, adicione ACLs personalizadas de grupo para todos osoutros grupos que precisem de acesso.

l Habilite o acesso para os indivíduos adicionando ACLs do usuário ao bucket.

l Certifique-se de que os usuários do Hadoop que precisam de acesso de superusuárioao HDFS façam parte do supergrupo do Hadoop.

Se você quiser que os dados de objeto gravados no bucket usando protocolos de objetosejam acessíveis no HDFS, você deverá garantir que um grupo padrão seja atribuído aobucket, e que o arquivo padrão e as permissões de diretório sejam definidos para ogrupo.

Você pode saber mais sobre os usuários e permissões em Acessando o bucket como umfile system na página 127, e as permissões comuns de bucket são exibidas na Exemplosde permissões de bucket do Hadoop e do ECS na página 139.

Procedimento

1. No Portal do ECS, selecione Manage > Buckets > New Bucket.

2. Especifique um nome para o bucket.

Obs.

Você não deve usar sublinhados em nomes de bucket porque eles não sãocompatíveis com a classe URI Java. Por exemplo,viprfs://my_bucket.ns.site/ não funcionará porque esse é um URI inválido e não écompreendido pelo Hadoop.

3. Especifique o namespace ao qual o bucket pertencerá.

4. Selecione um grupo de replicação ou deixe-o em branco para usar o grupo dereplicação padrão para o namespace.

5. Especifique o nome do proprietário do bucket.

Criar um bucket para o file system do HDFS

134 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 135: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Para um bucket do HDFS, geralmente, o proprietário do bucket será "hdfs" ou"[email protected]" para os buckets do Kerberos. O usuário hdfs do Hadoop exigiráprivilégios de superusuário no HDFS e isso pode ser feito fazendo do hdfs oproprietário do bucket. Outros usuários do Hadoop também podem exigir privilégiosde superusuário e esses privilégios podem ser concedidos atribuindo os usuários aum grupo e transformando esse grupo em um grupo de superusuário.

6. Não habilite o CAS.

Obs.

Um bucket destinado para uso como HDFS não pode ser usado para CAS. O controlede CAS é desabilitado quando o file system é habilitado.

7. Habilite quaisquer outros recursos de bucket que sejam necessários.

Você pode habilitar qualquer um dos seguintes recursos em um bucket do HDFS:

l Cota

l Criptografia no servidor

l Pesquisa de metadados

l Access During Outage

l Conformidade (consulte a observação)

l Bucket Retention

Consulte Guia do administrador: criar e configurar buckets para obter informaçõessobre cada uma dessas configurações e como defini-las.

Obs.

Um bucket habilitado para conformidade não pode ser gravado usando o protocoloHDFS. No entanto, os dados gravados usando protocolos de objeto podem ser lidosno HDFS.

8. Selecione a opção Enabled para o file system.

Assim que essa opção estiver habilitada, os controles para configuração de um grupopadrão para o file system/bucket e para atribuição das permissões do grupo dosarquivos e diretórios criados no bucket estarão disponíveis.

9. No painel File System, exibido a seguir, especifique um nome para o grupo padrão debucket.

Criar um bucket para o file system do HDFS

Criar um bucket para HDFS usando o Portal do ECS 135

Page 136: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Esse será o grupo associado ao file system raiz do HDFS e permitirá que os usuáriosdo Hadoop que são membros do grupo acessem o HDFS.

Ele pode ser um grupo, como "hdfs" ou "hadoop", ao qual pertencem os serviços deque você precisa para acessar os dados do HDFS, mas pode ter qualquer nome degrupo que faça sentido para sua configuração do Hadoop. Por exemplo, oadministrador pode querer que todos os arquivos de S3 sejam transferidos porupload ao bucket para serem atribuídos ao grupo 'S3DataUsers'. Todos os arquivosde S3 terão esse grupo atribuído a eles. No nó do Hadoop, o administrador doHadoop terá os usuários que são membros do grupo 'S3DataUsers'. O S3DataUserspode ser um grupo de Linux ou de Active Directory. Quando os usuários do Hadoopquiserem acessar os dados de S3, eles poderão fazer isso porque os arquivos foramtransferidos por upload e atribuídos a esse grupo

Esse grupo deve ser especificado durante a criação do bucket. Caso contrário, o grupoteria que ser atribuído posteriormente no Hadoop pelo proprietário do file system.

10. Defina as permissões padrão para os arquivos e diretórios criados no bucket usandoo protocolo de objeto.

Essas configurações são usadas para aplicar as permissões de grupo do Unix aosobjetos criados usando protocolos de objeto. Essas permissões serão aplicadas aogrupo do HDFS (o grupo padrão de bucket) quando o objeto ou o diretório for listadono Hadoop. Você pode consultar Acesso multiprotocolo (cruzado) na página 128 paraobter mais informações sobre como configurar o grupo padrão e as permissões do filesystem.

a. Defina as permissões do arquivo de grupo clicando nos botões adequados depermissão.

Normalmente, você definirá as permissões Read e Execute.

b. Defina as permissões de diretório do grupo clicando nos botões adequados depermissão.

Normalmente, você definirá as permissões Read e Execute.

11. Clique em Save para criar o bucket.

Configurar ACLs personalizadas de buckets de grupoO Portal do ECS permite que a ACL de grupo de um bucket seja configurada. As ACLs debucket podem ser concedidas para um grupo de usuários (ACL personalizada de grupo),

Criar um bucket para o file system do HDFS

136 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 137: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

para usuários individuais ou para uma combinação dos dois. Por exemplo, você podeconceder acesso completo a bucket para um grupo de usuários, mas também poderestringir (ou até mesmo negar) o acesso a bucket para usuários individuais desse grupo.

Antes de você começar

l Para editar a ACL de grupo de um bucket, você deve ser um Namespace Admin ou umSystem Admin.

l Caso seja um Namespace Admin, é possível editar as configurações de ACL de grupodos buckets que pertencem a seu namespace.

l Caso seja um System Admin, é possível editar as configurações de ACL de grupo deum bucket que pertence a qualquer namespace.

Quando o bucket for acessado usando o HDFS, usando o acesso multiprotocolo do ECS,os membros do grupo Unix poderão acessar o bucket.

Procedimento

1. No portal do ECS, selecione Manage > Buckets.

2. Na tabela Buckets, selecione a ação Edit ACL para o bucket cujas configuraçõesdeseja alterar.

3. Para configurar a ACL para um grupo personalizado, selecione Custom Group UserACLs.

4. Na página Custom Group User ACLs, selecione Add.

5. Informe um nome para o grupo.

Esse nome pode ser um grupo do Unix/Linux ou do Active Directory.

Criar um bucket para o file system do HDFS

Configurar ACLs personalizadas de buckets de grupo 137

Page 138: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

6. Configure as permissões para o grupo.

No mínimo, você precisará atribuir as permissões Read, Write, Execute e Read ACL.

7. Selecione Save.

Configurar as permissões de ACL dos buckets para um usuárioO Portal do ECS permite que a ACL de um bucket seja configurada para um usuário. Oproprietário do bucket é atribuído automaticamente às permissões. Outros usuários doHadoop podem ser atribuídos a ACLs de usuário para permitir o acesso ao bucket/filesystem. Como alternativa, eles podem ter acesso ao bucket por ser um membro do grupoque foi atribuído a ACLs personalizadas de grupo.

Antes de você começar

l Para editar a ACL de um bucket, você deve ser um Namespace Admin ou um SystemAdmin do ECS.

l Caso seja um Namespace Admin, é possível editar as configurações de ACL dosbuckets que pertencem a seu namespace.

l Caso seja um System Admin, é possível editar as configurações de ACL de um bucketque pertence a qualquer namespace.

Procedimento

1. No Portal do ECS, selecione Manage > Buckets.

2. Na tabela Buckets, selecione a ação Edit ACL para o bucket cujas configuraçõesdeseja alterar.

3. Para configurar as permissões de ACL para um usuário, selecione o botão User ACLs.

4. É possível editar as permissões de um usuário que já tenha permissões atribuídas ouadicionar um usuário ao qual deseja atribuir permissões.

l Para configurar (ou remover) as permissões de ACL para um usuário que já tenhapermissões, selecione Edit (ou Remove) na coluna Action da tabela ACL.

l Para adicionar um usuário ao qual deseja atribuir permissões, selecione Add.

O usuário configurado como o proprietário do bucket já terá permissões padrãoatribuídas.

O bucket exibido a seguir é de propriedade dos usuários "hdfs" e, como oproprietário, recebeu controle total. O controle total se traduz em permissões deleitura/gravação/execução em um ambiente Hadoop/Unix. O usuário "sally" recebeupermissões de leitura e execução para poder acessar o bucket.

Criar um bucket para o file system do HDFS

138 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 139: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Mais informações sobre os privilégios de ACL são apresentadas em Guia doadministrador: criar e configurar buckets.

5. Caso tenha adicionado uma ACL, especifique o nome de usuário ao qual aspermissões serão aplicadas.

6. Especifique as permissões que deseja aplicar ao usuário.

7. Selecione Save.

Exemplos de permissões de bucket do Hadoop e do ECSNesta seção, são apresentados exemplos do relacionamento entre os usuários e gruposdo Hadoop e a permissão atribuída para usuários e grupos para que eles acessem obucket por meio de ACLs de usuário do ECS e de ACLs de grupos personalizados.

Na criação do bucket, o proprietário do bucket e o grupo padrão determinam oproprietário e a atribuição de grupo para o bucket quando ele for acessado usando HDFS,e as ACLs são atribuídas a eles automaticamente. Um bucket deve sempre ter umproprietário; no entanto, um grupo padrão não precisa ser atribuído. Outros usuários egrupos (chamados de grupos personalizados), exceto o proprietário do bucket e o grupopadrão, podem ser atribuídos a ACLs no bucket. As ACLs atribuídas dessa forma setransformam em permissões para os usuários do Hadoop.

Tabela 16 Exemplos de permissões de bucket para acesso ao file system no modo simples

Usuários e grupos do Hadoop Permissões debucket

Acesso ao bucket/file system

Acesso ao bucket usando ACL de grupo

Usuários (serviço)

hdfs. mapred, yarn, hive, pig,postgres

Usuários (aplicativos)

sally, fred

Grupos

hdfs (hdfs)

Proprietário dobucket

hdfs

Default Group

ACL de grupospersonalizados

hadoop, users

ACLs de grupos personalizadosconfiguradas no bucket parapermitir que os grupos hadoop eusers tenham permissões nobucket/file system raiz

Esse exemplo pressupõe que hdfsseja o superusuário — o usuárioque iniciou o namenode.

Criar um bucket para o file system do HDFS

Exemplos de permissões de bucket do Hadoop e do ECS 139

Page 140: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 16 Exemplos de permissões de bucket para acesso ao file system no modosimples (continuação)

Usuários e grupos do Hadoop Permissões debucket

Acesso ao bucket/file system

hadoop (hdfs, mapred,yarn, hive, pig)

users (sally, fred)

Supergrupo

hdfs

ACL de usuário

hdfs(proprietário),postgres

Obs.

O usuário postgres é o usuário

do HAWQ.

Bucket criado pelo usuário s3 — acesso cruzado

Usuários (serviço)

hdfs. mapred, yarn, hive, pig,postgres

Usuários (aplicativos)

sally, fred

Grupos

hdfs (hdfs)

hadoop (hdfs, mapred,yarn, hive, pig)

users (sally, fred)

Supergrupo

hdfs

Proprietário dobucket

s3user

Default Group

hadoop

ACL de grupospersonalizados

hadoop (padrão)

ACL de usuário

s3user(proprietário),sally, fred,postgres

Quando você quiser que os objetosgravados por um usuário s3possam ser acessados comoarquivos no HDFS, um grupopadrão deve ser definido (hadoop)para que os serviços e usuários doHadoop recebam permissões nosarquivos devido à lista demembros do grupo.

O grupo padrão tem ACLs degrupos personalizadosautomaticamente no bucket/filesystem. À medida que o grupopadrão for configurado, o filesystem raiz terá 777:

drwxrwxrwx+ - s3user hadoop0 2015-12-09 12:28 /

Os usuários podem receber acessoadicionando ACLs de usuário ouACLs de grupos personalizadospara o grupo ao qual os usuáriospertencem.

Tabela 17 Exemplo de permissões de bucket para acesso ao file system no modo Kerberos

Usuário do Hadoop Permissões debucket

Acesso ao bucket/file system

Usuários (serviço)

[email protected]@REALM.COM,[email protected],[email protected],[email protected],[email protected]

Proprietário dobucket

[email protected]

Default Group

hadoop

ACLs de grupos personalizadosconfiguradas no bucket parapermitir que os grupos hadoop eusers tenham permissões nobucket/file system raiz

As informações do usuário obtidasdo cluster do Hadoop devem estardisponíveis para que o ECS possa

Criar um bucket para o file system do HDFS

140 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 141: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 17 Exemplo de permissões de bucket para acesso ao file system no modo Kerberos

Usuário do Hadoop Permissões debucket

Acesso ao bucket/file system

Usuários (aplicativos)

[email protected],[email protected], [email protected]

Grupos

hdfs ([email protected])

hadoop([email protected],[email protected],[email protected],[email protected],[email protected])

users ([email protected],[email protected])

Supergrupo

hdfs

ACL de grupospersonalizados

hadoop (padrão),users

ACL de usuário

[email protected](owner),[email protected]

oferecer acesso seguro ao bucket.As informações sobre essesmetadados são fornecidas em: Exemplos de permissões de bucketdo Hadoop e do ECS na página 139e um exemplo de arquivo demetadados é apresentado aqui napágina 200.

Criar um bucket para o file system do HDFS

Exemplos de permissões de bucket do Hadoop e do ECS 141

Page 142: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Criar um bucket para o file system do HDFS

142 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 143: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 22

Usar Hortonworks Ambari para configurar oHadoop com o ECS HDFS

l Implementando um cluster Hortonworks com Ambari..........................................144l Faça download do Ambari................................................................................... 144l Fazer download da biblioteca de client do ECS HDFS...........................................144l Configurar um repositório local no qual será implementada a biblioteca de client do

ECS..................................................................................................................... 145l Instalar o servidor do Ambari...............................................................................145l Habilitar o pacote de discos Ambari Hadoop ECS................................................ 145l Instalar manualmente o agente do Ambari.......................................................... 146l Instalar o Hadoop ...............................................................................................147

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS 143

Page 144: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Implementando um cluster Hortonworks com AmbariO Ambari torna mais fácil a implementação de um cluster Hortonworks Hadoop e usa oconceito de um pacote de discos para combinar os serviços que são necessários parauma versão específica do Hadoop. O Hortonworks 2.3 (Hadoop 2.7) oferece um pacotede discos personalizado do Hadoop para ECS que simplifica a integração do Hadoop aoECS. Para outras versões do Hortonworks, você pode usar o Ambari em seu modo normal.

O pacote de discos Hortonworks Hadoop ECS (HDP ECS) facilita a integração do ECSHDFS ao Hadoop implementando a biblioteca de client do ECS para todos os nós doHadoop e simplificando a configuração do cluster para usar o ECS HDFS.

Para implementar e configurar o pacote de discos Hortonworks HDP ECS, siga asseguintes etapas:

1. Faça download do Ambari na página 144

2. Faça download da biblioteca de client do ECS HDFS na página 144

3. Configure um repositório local no qual será implementada a biblioteca de client doECS na página 145

4. Instale o servidor do Ambari na página 145

5. Habilite o pacote de discos Ambari ECS na página 145

6. Instale manualmente o agente do Ambari na página 146

7. Instale o cluster do Hadoop na página 147

Faça download do AmbariFaça download do Ambari 2.2.

O Ambari pode ser usado para instalar e gerenciar uma distribuição do HDP (Hadoop). O Ambari 2.2 oferece a possibilidade de instalar o pacote de discos Hortonworks Hadoop ECS.

É possível fazer download do repositório do Ambari no seguinte link:

http://hortonworks.com/hdp/downloads/

Você deve fazer download do repositório do Ambari para todos os nós de seu cluster, afim de permitir que o servidor do Ambari seja instalado no nó do servidor e que o agentedo Ambari seja instalado em todos os nós.

Fazer download da biblioteca de client do ECS HDFSFazer download do RPM da biblioteca de client do ECS HDFS a partir da zona de suportedo ECS.

http://support.emc.com

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

144 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 145: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Configurar um repositório local no qual será implementada abiblioteca de client do ECS

Configure um repositório local no qual o Ambari pode implementar a biblioteca de clientdo ECS com a pilha do Hadoop.

Antes de você começar

Geralmente, a configuração de um repositório envolve o uso de um gerenciador depacotes para criar um conjunto de metadados sobre os pacotes contidos no diretório deum repositório, além de oferecer um mecanismo para acessar o diretório do repositório,como HTTP ou uma rede.

Várias ferramentas podem ser usadas para criar um repositório. As informações sobre ouso de yum para criar um repositório de pacotes são apresentadas aqui.

Procedimento

1. Crie o repositório local.

2. Adicione o RPM da biblioteca de client do ECS ao repositório local.

Instalar o servidor do AmbariInstale o servidor do Ambari.

Comandos básicos para instalar e configurar o servidor do Ambari, conformemencionado neste procedimento. Informações mais completas podem ser encontradasna documentação do Hortonworks aqui.

Procedimento

1. Instale o servidor do Ambari executando o seguinte comando:

yum install ambari-server -y

2. Configure o servidor do Ambari como segue.

ambari-server setup -s

3. Inicie o servidor do Ambari como segue

ambari-server start

Habilitar o pacote de discos Ambari Hadoop ECSO pacote de discos HDP (Hortonworks Hadoop) ECS é desabilitado por padrão e deve serhabilitado antes de ser selecionado para a implementação. O pacote de discos pode serhabilitado na linha de comando.

Procedimento

1. Na máquina do servidor Ambari, abra um prompt de comando.

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

Configurar um repositório local no qual será implementada a biblioteca de client do ECS 145

Page 146: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

2. Execute o seguinte comando:

ambari-server enable-stack --stack HDP --version 2.3.ECS

Se você deseja habilitar mais de um pacote de discos, poderá incluir a opção --version para cada pacote de discos adicional. Por exemplo:

ambari-server enable-stack --stack HDP --version 2.3.ECS --version <stack_name>

Instalar manualmente o agente do AmbariEste procedimento informa as etapas para instalar o agente do Ambari manualmente emcada nó.

Antes de você começar

l O repositório do Ambari deve estar presente em cada nó de cluster para instalar oagente no nó.

Procedimento

1. Em um dos hosts secundários do Ambari, abra um prompt de comando.

2. Instale o agente do Ambari executando o seguinte comando:

yum install ambari-agent -y

3. Obtenha o nome de host do nó do servidor Ambari.

Você pode fazer isso usando o comando hostname.

4. Edite o arquivo ambari-agent.ini para especificar o nome de host do servidorAmbari.

Por exemplo, usando vi, digite:

vi /etc/ambari-agent/conf/ambari-agent.ini

O nome de host do servidor está nos parâmetros [server], exibidos a seguir, e vocêdeve substituir "localhost" pelo nome de host do servidor Ambari.

[server]hostname=localhosturl_port=8440secure_url_port=8441

5. Inicie o agente do Ambari.

ambari-agent start

6. Repita essas etapas para todos os nós escravos Ambari. Se você quiser usar o nó doservidor Ambari como um nó de dados no cluster do Hadoop, também precisaráinstalar o agente nessa máquina.

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

146 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 147: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Instalar o HadoopInstale o cluster do Hadoop.

Procedimento

1. Siga o Assistente do Ambari para instalar um cluster do Hadoop.

As etapas a seguir identificam os principais recursos de integração do ECS.

Consulte a documentação do Hortonworks se precisar de esclarecimentos sobre osrequisitos de uma etapa.

2. Quando for solicitado a informar o pacote de discos a ser implementado, selecione opacote de discos HDP ECS.

Por exemplo, HDP 2.3.ECS, conforme exibido a seguir.

3. Especifique o repositório no qual o RPM da biblioteca de client do ECS estálocalizado.

Em seu sistema operacional, substitua http://ECS_CLIENT_REPO/ pelo local dorepositório no qual o RPM da biblioteca de client do ECS está localizado.

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

Instalar o Hadoop 147

Page 148: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

4. Informe a lista de hosts do cluster do Hadoop e, em Host Registration Information,selecione Perform Manual Registration.

Obs.

Se você criar uma chave SSH e implementá-la em todos os nós, poderá usar essemecanismo para implementar o agente do Ambari em todos os nós. Como já oimplementamos manualmente, isso não será necessário.

5. Você precisará especificar propriedades para personalizar as operações dos serviçosHadoop Hive e Hbase.

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

148 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 149: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

a. Para Hive, você precisará especificar um banco de dados Metastore.

Você pode solicitar que o Ambari crie um novo banco de dados (New MySQLDatabase). Nesse caso, você só precisará especificar uma senha para o novobanco de dados. Como alternativa, você pode solicitar que o Ambari utilize umbanco de dados existente.

b. Para Hbase, hbase.rootdir deve apontar para um bucket do ECS (file systemHDFS).

Por exemplo:

viprfs://mybucket.mynamespace.Site1/apps/hbase/data

6. Você precisará especificar propriedades para personalizar as operações do serviçoHadoop HDFS/ECS.

Como parte da personalização do pacote de discos Hortonworks Hadoop ECS, aspropriedades core-site específicas do ECS já foram adicionadas. Algumas dessaspropriedades são fixas e nunca precisarão ser modificadas. Algumas são definidascom valores padrão que são adequados para um ambiente de modo simples deHadoop e só precisarão ser alteradas ao configurar o ambiente para usar a segurançado Kerberos.

Alguns parâmetros são específicos a seu cluster e precisarão ser especificados.

Especifique as propriedades de configuração core-site do ECS/HDFS para aspropriedades ausentes.

a. Especifique um valor para a propriedade padrão do file system: fs.defaultFS

Ou seja

viprfs://<bucket>.<namespace>.<installation>

Por exemplo:

viprfs://mybucket.mynamespace.Site1

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

Instalar o Hadoop 149

Page 150: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

b. Digite os endereços de nó do ECS na propriedade fs.vipr.installation.<site>.hosts(por padrão: fs.vipr.installation.Site1.hosts).

Ela pode ser uma lista de endereços IP separados por vírgulas, por exemplo:

203.0.113.10,203.0.113.11,203.0.113.12

Você pode saber mais sobre as propriedades em Editar o arquivo core-site.xml doHadoop na página 156, que descreve as configurações de propriedade de um clustersimples do Hadoop.

Resultado

Depois de instalada, a interface do Ambari para o cluster do Hadoop ECS é personalizadapara que o serviço HDFS seja exibido como o ECS. Além disso, as propriedades core-site.xml específicas do ECS que, normalmente, precisariam ser adicionadas já estarãopresentes e os valores padrão já terão sido configurados para a maioria dos parâmetros.A interface personalizada é exibida a seguir:

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

150 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 151: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 23

Configurar a integração do ECS HDFS a um clustersimples do Hadoop

l Configurar a integração do ECS HDFS a um cluster simples do Hadoop................152l Planejar a integração do ECS HDFS e do Hadoop................................................. 152l Obter o pacote de instalação e suporte do ECS HDFS.......................................... 153l Implementar a biblioteca de client do ECS HDFS................................................. 153l Configurar o Pivotal HAWQ.................................................................................. 155l Editar o arquivo core-site.xml do Hadoop............................................................ 156l Inicializar o banco de dados HAWQ .................................................................... 160l Editar o hbase-site.xml do HBASE....................................................................... 160l Reiniciar e verificar o acesso............................................................................... 161

Configurar a integração do ECS HDFS a um cluster simples do Hadoop 151

Page 152: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Configurar a integração do ECS HDFS a um cluster simples doHadoop

Este procedimento descreve como configurar sua distribuição existente do Hadoop parausar a infraestrutura de armazenamento do ECS com o ECS HDFS.

Se você estiver usando a distribuição Hortonworks Ambari, utilize o procedimentodescrito em Implementando um cluster Hortonworks com Ambari na página 144 parainstalar e configurar o Hadoop.

Para executar este procedimento de integração, você deve ter:

l O conhecimento prático da distribuição do Hadoop e das ferramentas associadas.

l As credenciais do Hadoop que permitem fazer log-in nos nós do Hadoop, modificararquivos do sistema do Hadoop, e iniciar e interromper serviços do Hadoop.

As seguintes etapas devem ser seguidas:

1. Planejar a integração do ECS HDFS e do Hadoop na página 152

2. Obter o pacote de instalação e suporte do ECS HDFS na página 153

3. Implementar a biblioteca de client do ECS HDFS na página 153 (Não é necessário sevocê tiver usado o Ambari Hortonworks para ECS)

4. (Opcional) Configurar o Pivotal HAWQ na página 155

5. Editar o arquivo core-site.xml do Hadoop na página 156

6. (Se estiver usando o HAWQ) Inicializar o banco de dados HAWQ na página 160

7. Editar o hbase-site.xml do HBASE na página 160

8. Reiniciar e verificar o acesso na página 161

Planejar a integração do ECS HDFS e do HadoopUse esta lista para verificar se você tem as informações necessárias para assegurar aintegração com sucesso.

Tabela 18 Pré-requisitos de configuração do ECS HDFS

Elemento O que fazer

Cluster do Hadoop Verifique se o cluster está instalado e funcionando.

Registre as credenciais de admin para usar posteriormente nesteprocedimento.

Cluster do ECS: nós doECS

Registre os endereços IP dos nós do ECS para usar posteriormente nesteprocedimento.

Cluster do ECS: bucket O HDFS precisa que um bucket habilitado para HDFS seja criado em umgrupo de replicação do ECS e que o bucket seja acessado como um filesystem usando o nome do namespace e do bucket.

Registre o nome do bucket.

Cluster do ECS:namespace do tenant

Verifique se um namespace do tenant está configurado. Registre onome.

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

152 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 153: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Obter o pacote de instalação e suporte do ECS HDFSA biblioteca de client do ECS HDFS, o Conector HAWQ e as ferramentas de suporte doHDFS são oferecidos em um arquivo ZIP do client do HDFS, hdfsclient-<ECSversion>-<version>.zip, que você pode baixar das páginas de suporte do ECS emsupport.emc.com.

O arquivo ZIP contém os diretórios /playbooks e /client. Antes de descompactar oarquivo, crie um diretório para armazenar o conteúdo do arquivo (a ferramenta dedescompactação pode fazer isso para você), e extraia o conteúdo para esse diretório.Depois que extrair os arquivos, os diretórios conterão o seguinte:

l /playbooks: contém os guias estratégicos da Ansible para a configuração de umambiente seguro do Hadoop para comunicação com o ECS HDFS.

l /client: Contém os seguintes arquivos:

n Arquivos JAR da biblioteca de client do ECS (ViPPRFS) (viprfs-client-<ECSversion>-hadoop-<Hadoop version>.jar): usado para configurardiferentes distribuições do Hadoop.

n libvipr-<version>.so: Conector HAWQ usado para configurar o PivotalHAWQ para uso com o ECS HDFS.

Obs.

O uso do HAWQ com o ECS em um ambiente do Kerberos está passando portestes de qualificação. Entre em contato com o representante da EMC para obter aversão mais recente da biblioteca e as versões compatíveis.

Implementar a biblioteca de client do ECS HDFSUse este procedimento para colocar o JAR da biblioteca de client do ECS no classpath decada nó do client do cluster do Hadoop.

Antes de você começar

Obtenha a biblioteca de client do ECS HDFS de sua distribuição do Hadoop no site desuporte da EMC para ECS, como descrito em Obter o pacote de instalação e suporte doECS HDFS na página 153.

A biblioteca de client do HDFS usa a convenção de nomenclaturaviprfs-client-<ECS version>-hadoop-<Hadoop version>.jar a seguir e os JARs para usocom cada versão estão listados na tabela a seguir.

Tabela 19 Biblioteca de client do ECS HDFS

Distribuição doHadoop

Versão JAR do ECS HDFS

Pivotal HD Pivotal 2.1 viprfs-client-2.2.0.0-hadoop-2.2.jar (Hadoop 2.3 - Usar client 2.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

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

Obter o pacote de instalação e suporte do ECS HDFS 153

Page 154: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 19 Biblioteca de client do ECS HDFS (continuação)

Distribuição doHadoop

Versão JAR do ECS HDFS

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 - Não client 2.5)

CDH 5.3 viprfs-client-2.2.0.0-hadoop-2.3.jar (Hadoop 2.5 - Não client 2.5)

CDH 5.4 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 - Não client 2.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

Obs.

l Para Hortonworks 2.3 (Hadoop 2.7), você pode usar o Ambari para instalar umaversão do HDP pré-configurada com a biblioteca de client do ECS.

Procedimento

1. Faça log-in em um nó de client do ECS.

2. Execute o comando classpath para obter a lista de diretórios no classpath:

# hadoop classpath3. Copie o JAR da biblioteca de client do ECS em uma das pastas listadas pelo comando

classpath que ocorre depois da pasta /conf.

Por exemplo, geralmente, o resultado do comando classpath é semelhante a:

/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/*:/

Com a pasta /conf listada primeiro. Recomenda-se você adicione o JAR da bibliotecade client à primeira pasta /lib que, geralmente, é localizada conforme a tabela aseguir.

Distribuição do ECS Local do classpath (sugerido)

Pivotal HD /usr/lib/gphd/hadoop/libCloudera /usr/lib/hadoop/libHortonworks /usr/hdp/<version>/hadoop/lib

4. Repita esse procedimento em cada nó do client do ECS.

5. Atualize a definição de configuração do classpath para MapReduce e YARN, e tambémespecifique explicitamente o caminho para o JAR de Tez.

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

154 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 155: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Um exemplo dessas definições de configuração é fornecido abaixo:

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

Configurar o Pivotal HAWQPara usar o serviço Pivotal HAWQ com o ECS HDFS, você deve substituir o lib HDFS doPivotal pelo ECS Conector HAWQ (libvipr-<version>.so).

Antes de você começar

Certifique-se de que os seguintes pré-requisitos sejam atendidos:l Certifique-se de que o usuário HAWQ postgres tenha acesso ao bucket, atribuindo

ACLs de usuário ou de grupo.

O seguinte conector do HAWQ é fornecido e dá suporte à distribuição do Hadoop e àversão do HAWQ exibidas a seguir:

Tabela 20 Conector ECS HAWQ

Distribuição doHadoop

DistribuiçãoVersão

Versão doHAWQ

ECSConector HAWQ

Pivotal HD Pivotal 3.0.1 HAWQ 1.3.1 libvipr-2.2.0.0.so

Sempre que você reconfigurar, implementar ou fazer upgrade utilizando o icm_client,verifique se os symlinks libhdfs3 ainda apontam para libvipr-<version>.so. Oarquivo de configuração do HAWQ, hdfs-client.xml, não é usado pelo ECS.

Procedimento

1. Copie o libvipr-<version>.so obtido do zip do client de instalação e suportedo ECS em um diretório local de cada nó master e de segmento de HAWQ do clusterdo Pivotal.

Por exemplo: /usr/local/vipr/libvipr-<version>.so2. Atualize o symlink libhdfs no diretório de instalação do HAWQ do nó de master e

segmento do Pivotal (<HAWQ_INSTALL_DIR>)

Por exemplo:

<HAWQ_INSTALL_DIR>/lib/libhdfs3.so -> /usr/local/vipr/libvipr-

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

Configurar o Pivotal HAWQ 155

Page 156: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

<version>.sounlink <HAWQ_INSTALL_DIR>/lib/libhdfs3.soln -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.1ln -s /usr/local/vipr/libvipr-<version>.so

<HAWQ_INSTALL_DIR>/lib/libhdfs3.so.13. Atualize o symlink em cada nó no cluster do Pivotal.

Editar o arquivo core-site.xml do HadoopUse este procedimento para atualizar o core-site.xml com as propriedadesnecessárias para integrar o ECS HDFS a um cluster do Hadoop que usa o modo deautenticação simples.

Antes de você começar

l Sempre é preferível adicionar/gerenciar essas propriedades usando umamanagement UI do Hadoop para reduzir a chance de erros e garantir que essasalterações sejam persistentes em todo o cluster. Editar manualmente os arquivos emvários nós do Hadoop é uma tarefa trabalhosa e suscetível a erros. Você deve ter umconjunto de credenciais de usuário que permitem que você faça log-in namanagement UI de sua distribuição.

l Se você modificar o core-site.xml diretamente, é necessário ter um conjunto decredenciais do usuário que permitem que você faça log-in nos nós do Hadoop emodifique o core-site.xml.

Algumas propriedades são específicas do ECS e, normalmente, devem ser adicionadasao core-site.xml. Se você estiver usando o pacote de discos Hortonworks AmbariHadoop ECS, os parâmetros específicos do ECS já estarão presentes.

Se você deseja editar o core-site.xml diretamente, o local do core-site.xmldependerá da distribuição que você está usando, conforme exibido na tabela a seguir.

Tabela 21 locais do core-site.xml

Distribuição doHadoop

local do core-site.xml Nós paraatualizar

Pivotal HD /etc/ghpd/hadoop/conf ComputeMaster eclients

Cloudera /etc/hadoop/conf Todos os nós declients

Hortonworks /etc/hadoop/conf Todos os nós

O core-site.xml reside em cada nó do cluster do Hadoop. Você deve modificar asmesmas propriedades em cada instância. Você pode fazer uma alteração em um nó, eusar o comando de cópia segura (scp) para copiar o arquivo para os outros nós nocluster.

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

156 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Consulte a referência da propriedade core_site.xml para obter mais informações sobre cada propriedade que precisa definir.

Page 157: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Procedimento

1. Se você estiver usando uma interface de gerenciamento, como Ambari ou ClouderaManager. Faça log-in como administrador e acesse a página de configuração do HDFS.

2. Se você pretende fazer as alterações editando o core-site.xml manualmente,siga estas etapas

a. Faça log-in em um dos nós do HDFS onde core-site.xml está localizado.

b. Faça uma cópia de backup de core-site.xml.

cp core-site.xml core-site.backupc. Usando um editor de texto de sua preferência, abra core-site.xml para

edição.

3. Adicione as seguintes propriedades e valores para definir as classes Java queimplementam o file system do 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. Adicione a propriedade fs.vipr.installations. No exemplo a seguir, o valor serádefinido como Site1.

<property> <name>fs.vipr.installations</name> <value>Site1</value></property>

5. Adicione a propriedade fs.vipr.installation.[installation_name]hosts como uma listaseparada por vírgulas de nós de dados do ECS ou de endereços IP do balanceador decarga. No exemplo a seguir, installation_name é definido como 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. Adicione a propriedade fs.vipr.installation.[installation_name], e a configure com umdos seguintes valores:

Opção Descrição

dinâmico Use ao acessar os nós de dados do ECS diretamente sem umbalanceador de carga.

fixo Use ao acessar nós de dados do ECS por meio de um balanceador decarga.

No exemplo a seguir, installation_name é definido como Site1.

<property> <name>fs.vipr.installation.Site1.resolution</name> <value>dynamic</value></property>

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

Editar o arquivo core-site.xml do Hadoop 157

Page 158: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

a. Se você definir fs.vipr.installation.[installation_name].resolution como dinâmico,adicione a propriedade fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms para especificar afrequência de consulta ao ECS para a lista de nós ativos.

No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name><value>900000</value></property>

7. Localize a propriedade fs.defaultFS e modifique o valor para especificar o URI do filesystem do ECS .

Essa configuração é opcional e é possível especificar a URL completa do file systempara se conectar ao ECS ViPRFS.

Use o seguinte formato: viprfs://<bucket_name.namespace.installation_name, no qual

l bucket_name: O nome do bucket que contém os dados que deseja usar quandovocê executa os trabalhos de Hadoop. Se você estiver fazendo a execução emmodo de autenticação simples, o proprietário do bucket deverá concederpermissão para Everybody. No exemplo a seguir, bucket_name é definido comomybucket.

l namespace: O namespace do tenant onde o bucket_name reside. No exemplo aseguir, o namespace é definido como mynamespace.

l installation_name: O valor especificado pela propriedade fs.vipr.installations. Noexemplo a seguir, installation_name é definido como Site1.

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.Site1/</value></property>

8. Localize fs.permissions.umask-mode e defina o valor como 022.

Em algumas configurações, essa propriedade pode ainda não existir. Se ela nãoexistir, adicione-a.

<property> <name>fs.permissions.umask-mode</name> <value>022</value></property>

9. Adicione a propriedade fs.viprfs.auth.anonymous_translation, usada para especificaro proprietário e o grupo de um arquivo ou um diretório criado usando o HDFS.

Obs.

Antes do ECS 2.2, esse parâmetro era usado para atribuir um proprietário aosarquivos e diretórios que foram criados sem um proprietário (arquivos compropriedade anônima), para que o usuário atual tivesse permissão para modificá-los.Os arquivos e os diretórios não são mais criados anonimamente e têm umproprietário atribuído a eles de acordo com a configuração desse parâmetro.

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

158 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 159: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Opção Descrição

LOCAL_USER Use esta configuração com um cluster do Hadoop que use asegurança simples. Atribui o usuário do Unix e o grupo de clusterdo Hadoop a arquivos e diretórios recém-criados.

CURRENT_USER Use esta configuração para um cluster do Hadoop que passou porKerberos. Atribui o principal do Kerberos ([email protected]) comoo proprietário do arquivo ou do diretório, e usa o grupo que foiatribuído como padrão para o bucket.

NONE (padrão) (Preterido) Anteriormente, indicava que nenhum mapeamento deobjetos com propriedade anônima devia ser realizado ao usuárioatual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>LOCAL_USER</value></property>

10. Adicione a propriedade fs.viprfs.auth.identity_translation. Oferece um modo deatribuir usuários a um realm quando o Kerberos não estiver presente.

Opção Descrição

CURRENT_USER_REALM Use esta configuração para um cluster do Hadoop quepassou por Kerberos. Quando ela for especificada, o realmserá detectado automaticamente.

NONE (padrão) Use esta configuração com um cluster do Hadoop que usea segurança simples. Com essa configuração, o ECS HDFSnão realiza a conversão do realm.

FIXED_REALM (Preterido) Oferece a capacidade de embutir o realm dousuário usando a propriedade fs.viprfs.auth.realm.

<property> <name>fs.viprfs.auth.identity_translation</name> <value>NONE</value></property>

11. Se desejar usar o serviço Pivotal HAWQ, adicione a propriedadehawq.vipr.endpoint. Especifique o valor usando o seguinte formato:viprfs://<datanode-ip>:9040/<namespace>/<bucket>.

Por exemplo:

<property><name>hawq.vipr.endpoint</name><value>viprfs://10.0.0.1:9040/h3/hawqBucket</value></property>

12. Salve core-site.xml.

13. Atualize o core-site.xml nos nós necessários no cluster do Hadoop.

14. Use o Hortonworks Ambari ou o Cloudera Manager Safety Valve para atualizar ocore-site.xml com o mesmo conjunto de propriedades e valores.

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

Editar o arquivo core-site.xml do Hadoop 159

Page 160: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Inicializar o banco de dados HAWQAo usar o HAWQ, o Greenplum Database precisa ser inicializado.

Procedimento

1. Crie um arquivo de configuração para o Greenplum Database que contenha osparâmetros a seguir. Acione o arquivo gpinitsystem_config.

DFS_URL=<datanode-ip>:9040/<bucketName>DFS_NAME=hdfs

2. Certifique-se de que você é o usuário postgres.

$ su - postgres

3. Execute o comando gpinitsystem e passe-o no arquivo de configuração.

$ gpinitsystem -c [config-file] -h /tmp/hawq/hostfile

Editar o hbase-site.xml do HBASEQuando você usa o HBASE com o ECS HDFS, deve configurar o hbase.rootdir do hbase-site.xml com o mesmo valor da propriedade fs.defaultFS de core-site.xml.

hbase-site.xml está localizado em algum dos seguintes locais:

Tabela 22 locais de hbase-site.xml

Distribuição doHadoop

local do hbase-site.xml

Pivotal HD /etc/ghpd/hbase/conf/

Cloudera /etc/hbase/conf/

Hortonworks /etc/hbase/conf/

Procedimento

1. Abra hbase-site.xml.

2. Configure a propriedade de hbase.rootdir com o mesmo valor que fs.defaultFSadicionando /hbase como sufixo.

3. Salve suas alterações.

a. No Cloudera, adicione a propriedade de hbase.rootdir para a válvula de segurançada configuração de serviço do HBase para hbase-site.xml.

4. Reinicie os serviços para sua distribuição.

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

160 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 161: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Distribuição doHadoop

Descrição

Pivotal HD Execute este comando no nó mestre de hbase:

# service hbase-master restart

Execute este comando no servidor da região de hbase:

# service hadoop-regionserver restart

Cloudera Use o gerenciador do Cloudera para reiniciar o serviço doHBase.

Hortonworks # bin/start-hbase.sh

Exemplo 1 entrada hbase.rootdir

<property> <name>hbase.rootdir</name> <value>viprfs://testbucket.s3.testsite/hbase</value></property>

Reiniciar e verificar o acessoAssim que você realizar as etapas de configuração, reinicie os serviços do Hadoop everifique se tem acesso ao HDFS.

Quando o sistema estiver configurado para usar o ECS HDFS, o HDFS NameNode poderáfalhar ao ser inicializado. Quando o ECS HDFS estiver configurado como o HDFS, o ECSHDFS realizará todas as funções de NameNode e não exigirá que o NameNode estejaativo.

Procedimento

1. Reinicie os serviços do Hadoop.

Geralmente, eles incluirão HDFS, MapReduce, Yarn e HBase.

Se você estiver reiniciando os serviços manualmente, consulte a tabela a seguir.

Distribuição doHadoop

Comandos

Pivotal HD ComputeMaster:# service hadoop-yarn-resourcemanager restartNós de dados:

# service hadoop-hdfs-datanode restart# service hadoop-yarn-nodemanager restartNameNode:

# service hadoop-yarn-nodemanager restart

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

Reiniciar e verificar o acesso 161

Page 162: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Distribuição doHadoop

Comandos

Se estiver usando o serviço do Pivotal HAWQ, reinicie-o executandoos seguintes comandos:

# service hawq stop# service hawq startQuando você configura o cluster Pivotal Hadoop para usar o ECSHDFS como o file system padrão (especificado por fs.DefaultFS emcore-site.xml), você não pode usar a funcionalidade de início/interrupção de cluster do icm_client, em vez de isso, você deveiniciar todos os serviços de cluster (exceto HDFS) individualmente.Por exemplo:

icm_client start -s yarn

icm_client start -s zookeeper

e assim por diante.

Cloudera Use Gerenciador do Cloudera para reiniciar os serviços de HDFS eMapReduce

Hortonworks # stop-all.sh# start-all.sh

2. Teste a configuração executando o seguinte comando para obter uma lista dediretórios:

# hdfs dfs -ls viprfs://mybucket.mynamespace.Site1/

13/12/13 22:20:37 INFO vipr.ViPRFileSystem: Initialized ViPRFS for viprfs://mybucket.mynamespace.Site1/

Se configurou fs.defaultFS, você pode usar:# hdfs dfs -ls /

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

162 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 163: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 24

Configurar a integração do ECS HDFS a um clusterseguro do Hadoop (que passou por Kerberos)

l Integrar o cluster seguro do Hadoop ao ECSHDFS ............................................... 164l Planejar a migração de um cluster simples para um cluster de Kerberos..............164l Configurar o Pivotal HAWQ em um ambiente do Kerberos....................................165l Configurar os nós do ECS com o principal do serviço do ECS............................... 166l Proteger o bucket do ECS usando metadados......................................................169l Edite o core-site.xml............................................................................................173l Inicializar o banco de dados do HAWQ ............................................................... 177l Reiniciar e verificar o acesso............................................................................... 177

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos) 163

Page 164: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Integrar o cluster seguro do Hadoop ao ECSHDFSEste procedimento descreve como integrar sua distribuição existente do Hadoop, que éprotegida por Kerberos, ao ECSHDFS.

Se você tiver configurado o ECS HDFS para trabalhar com um cluster do Hadoopconfigurado para autenticação simples, e tiver migrado o cluster do Hadoop para usar aautenticação Kerberos, você também poderá usar este procedimento.

Antes de executar as etapas de integração:

l Verifique se um Key Distribution Center do Kerberos está instalado e configuradopara lidar com a autenticação dos principais do serviço do Hadoop. Se estiverusando o Active Directory para autenticar os usuários do ECS, será necessárioconfigurar uma confiança de realm cruzado entre o real do Kerberos e o real deusuários do ECS. A ajuda para configurar o Key Distribution Center do Kerberos e aconfiança é oferecida em Orientação sobre a configuração do Kerberos na página180.

l Certifique-se de que você criou um bucket para o file system do HDFS (consulte Criarum bucket para HDFS usando o Portal do ECS na página 134)

l Certifique-se de que você leu as diretrizes para planejar a integração (consulte Planejar a integração do ECS HDFS e do Hadoop na página 152).

l Certifique-se de que você fez download do pacote de instalação e suporte (consulte Obter o pacote de instalação e suporte do ECS HDFS na página 153).

Para integrar o ECS HDFS a seu cluster seguro do Hadoop, execute as seguintes tarefas:

1. Planejar a migração de um cluster simples para um cluster de Kerberos na página164

2. (Opcional) Inicializar o banco de dados do HAWQ na página 177

3. Configurar os nós do ECS com o principal do serviço do ECS na página 166

4. Proteger o bucket do ECS usando metadados na página 169

5. (Se estiver usando o HAWQ) Inicializar o banco de dados do HAWQ na página 177

6. Reiniciar e verificar o acesso na página 177

Planejar a migração de um cluster simples para um cluster deKerberos

O ECS dá suporte à migração de um cluster do Hadoop que usa a segurança simples paraum cluster do Hadoop protegido por Kerberos.

Se você estiver migrando de um ambiente simples para um ambiente seguro, deverá ler aseção sobre migração: Migração de um cluster simples para um cluster de Kerberos doHadoop na página 130.

Em geral, o recurso de migração do ECS permitirá que os arquivos e diretórios sejamacessados perfeitamente por usuários do Kerberos. No entanto, aplicam-se as seguintesobservações:

l Se você migrar seu cluster do Hadoop para Kerberos e, em seguida, reiniciar ocluster, processos como o MapReduce não poderão acessar os diretórios que ele

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

164 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 165: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

criou anteriormente. Você deve esperar até que a configuração do ECS HDFS usandoeste procedimento para reiniciar o Hadoop.

l Para que os usuários e os processos possam acessar o bucket, eles precisarão sermembros do grupo que tem acesso ao bucket, ou você precisará alterar as ACLs debucket para que os usuários do Kerberos tenham acesso.

Configurar o Pivotal HAWQ em um ambiente do KerberosPara usar o serviço Pivotal HAWQ com o ECS HDFS, você deve substituir o lib HDFS doPivotal pelo ECSConector HAWQ (libvipr-<version>.so).

Antes de você começar

Certifique-se de que os seguintes pré-requisitos sejam atendidos:

l Certifique-se de que o ambiente HAWQ seja configurado para que:

n Um principal do Kerberos e o keytab correspondente tenham sido criados para ousuário do HAWQ postgres.

n Um arquivo hdfs.headless.keytab tenha sido criado para o principal doHDFS.

Você pode consultar HAWQ — Configurar o principal de segurança do Kerberos paraobter mais informações sobre como proteger o HAWQ com o Kerberos em um clusterdo Hadoop.

Obs.

O ECS não dá suporte a PXF (Pivotal Extension Framework). No entanto, criarprincipais e keytabs PXF conforme descrito nas instruções mencionadas não causaráproblemas.

l Certifique-se de que o usuário HAWQ postgres tenha acesso ao bucket do ECS,atribuindo ACLs de usuário ou de grupo.

l Certifique-se de que você tenha preparado os metadados de bucket que serãoimplementados em uma etapa posterior.

{ "name": "internal.kerberos.user.hawq.name", "value": "postgres@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hawq.shortname", "value": "postgres" },

O seguinte conector do HAWQ é fornecido e dá suporte à distribuição do Hadoop e àversão do HAWQ exibidas a seguir:

Tabela 23 Conector ECS HAWQ

Distribuição doHadoop

DistribuiçãoVersão

Versão doHAWQ

ECSConector HAWQ

Pivotal HD Pivotal 3.0.1 HAWQ 1.3.1 libvipr-2.2.0.0.so

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Configurar o Pivotal HAWQ em um ambiente do Kerberos 165

Page 166: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Obs.

O uso do HAWQ com o ECS em um ambiente do Kerberos está passando por testes dequalificação. Entre em contato com o representante da EMC para obter a versão maisrecente da biblioteca e as versões compatíveis.

Sempre que você reconfigurar, implementar ou fazer upgrade utilizando o icm_client,verifique se os symlinks libhdfs3 ainda apontam para libvipr-<version>.so. Oarquivo de configuração do HAWQ, hdfs-client.xml, não é usado pelo ECS.

Procedimento

1. Copie o libvipr-<version>.so obtido do zip do client de instalação e suportedo ECS em um diretório local de cada nó master e de segmento de HAWQ do clusterdo Pivotal.

Por exemplo: /usr/local/vipr/libvipr-<version>.so2. Atualize o symlink libhdfs no diretório de instalação do HAWQ do nó de master e

segmento do Pivotal (<HAWQ_INSTALL_DIR>)

Por exemplo:

<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. Atualize o symlink em cada nó no cluster do Pivotal.

Configurar os nós do ECS com o principal do serviço do ECSO principal de serviço do ECS e o arquivo keytab correspondente devem residir em cadanó de dados do ECS. Use os guias estratégicos da Ansible para automatizar essasetapas.

Antes de você começar

Você deve ter os seguintes itens antes de concluir este procedimento:

l Acesso aos guias estratégicos da Ansible. Obtenha os guias estratégicos da Ansibleno pacote de software do ECS HDFS, conforme descrito em Obter o pacote deinstalação e suporte do ECS HDFS na página 153, e copie-os no nó onde pretendeinstalar o Ansible.

l A lista de endereços IP dos nós do ECS.

l Endereço IP do Key Distribution Center.

l A resolução DNS na qual você executa esse script deve ser igual à resolução DNS dohost do Hadoop; caso contrário, o vipr/_HOST@REALM não funcionará.

O ECS oferece conteúdo reutilizável da Ansible chamado de 'funções', que consistem emscripts Python, listas de tarefas com base em YAML e arquivos de modelo.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

166 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 167: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

l vipr_kerberos_config: configura um nó do ECS para o Kerberos.

l vipr_jce_config: configura um nó de dados do ECS para criptografia de força ilimitadacom a instalação de arquivos de política da JCE.

l vipr_kerberos_principal: adquire um principal do serviço para um nó do ECS.

Procedimento

1. Instale a versão Ansible 1.9. A versão 2.0 não é compatível.

yum install epel-release && yum install ansible

2. Descompacte o arquivo hdfsclient-<ECS version>-<version>.zip

As etapas desse procedimento usam os guias estratégicos contidos no diretórioviprfs-client-<ECS version>-<version>/playbooks/samples etambém estão contidas em viprfs-client-<ECS version>-<version>/playbooks/samples/README.md.

3. Instale as funções fornecidas pela Ansible.

ansible-galaxy install -r requirements.txt -f

4. Copie o conteúdo do diretório viprfs-client-<ECS version>-<version>/playbooks/samples em um diretório funcional.

5. Edite inventory.txt para que ele se refira aos nós de dados do ECS e ao servidordo Key Distribution Center.

As entradas padrão são exibidas a seguir.

[data_nodes]192.168.2.[100:200]

[kdc]192.168.2.10

6. Baixe o arquivamento de políticas JCE "unlimited" em oracle.com.br e faça suaextração ao diretório UnlimitedJCEPolicy.

O Kerberos pode ser configurado para usar um tipo de criptografia sólida, comoAES-256. Nessa situação, o JRE dos nós do ECS precisa ser reconfigurado para usar apolítica 'ilimitada'.

Obs.

Essa etapa só deve ser realizada se você estiver usando o tipo de criptografia forte.

7. Copie o arquivo krb5.conf do Key Distribution Center no diretório funcional.

8. Edite o generate-vipr-keytabs.yml conforme necessário e configure o nomedo domínio.

Por exemplo:

[root@nile3-vm22 samples]# cat generate-vipr-keytabs.yml---#### Generates keytabs for ViPR/ECS data nodes.###

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Configurar os nós do ECS com o principal do serviço do ECS 167

Page 168: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

- hosts: data_nodes serial: 1 roles: - role: vipr_kerberos_principal kdc: "{{ groups.kdc | first }}" principals: - name: vipr/[email protected] keytab: keytabs/[email protected]

Nesse exemplo, o valor padrão (vipr/[email protected]) foi substituído por(vipr/[email protected]) e o domínio é MA.EMC.COM.

9. Execute o comando a seguir.

export ANSIBLE_HOST_KEY_CHECKING=False

10. Execute o guia estratégico da Ansible para gerar keytabs.

ansible-playbook -v -k -i inventory.txt --user admin –b --become-user=root generate-vipr-keytabs.yml

11. Edite o arquivo setup-vipr-kerberos.yml conforme necessário.

O conteúdo do arquivo padrão é exibido a seguir.

# 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/

Nesse exemplo, o valor padrão (vipr/[email protected]) foi substituído por(vipr/[email protected]) e o domínio é MA.EMC.COM.

Obs.

Remova a função "vipr_jce_config" se não estiver usando um tipo de criptografiaforte.

12. Execute o guia estratégico da Ansible para configurar os nós de dados com o principaldo serviço do ECS.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

168 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 169: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Verifique se o diretório ./viprfs-client-<ECS version>-<version>/playbooks/samples/keytab existe e se o arquivo krb5.conf está no diretóriofuncional 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 se o principal do serviço correto do ECS, um por nó de dados, foi criado (noKey Distribution Center):

# kadmin.local -q "list_principals" | grep viprvipr/[email protected]/[email protected]

Verifique se o keytab correto foi gerado e armazenado no local: /data/hdfs/krb5.keytab de todos os nós de dados do ECS. É possível usar o comando"strings" do keytab para extrair o texto legível e verificar se ele contém o principalcorreto. Por exemplo:

dataservice-10-247-199-69:~ # strings /data/hdfs/krb5.keytabMA.EMC.COMviprnile3-vm42.centera.lab.emc.com

Nesse caso, o principal é vipr/nile3-vm42.centera.lab.emc.com.

Proteger o bucket do ECS usando metadadosPara garantir que o bucket do ECS possa funcionar com um cluster seguro do Hadoop, obucket deverá ter acesso às informações sobre o cluster.

Em um cluster seguro do Hadoop, o principal do Kerberos deve ser associado a um nomede usuário do HDFS. Além disso, o usuário deve ser associado a um grupo do Unix. Nocluster do Hadoop, o NameNode coleta essas informações dos nós do Hadoop e dosarquivos de configuração (core-site.xml e hdfs.xml).

Para permitir que os nós ECS determinem essas informações e validem as solicitações declient, os seguintes dados devem ser disponibilizados aos nós do ECS:

l Mapeamento do usuário do Kerberos a usuários e grupos do Unix

l Grupo de superusuários

l Configurações do usuário proxy

Os dados são disponibilizados aos nós do ECS como um conjunto de pares de valoralfabético mantidos como metadados.

Usuários do KerberosAs informações sobre todos os usuários do Kerberos (não usuários do AD) que precisamter acesso de Hadoop a um bucket precisam ser transferidos por upload ao ECS. Osseguintes dados são necessários:

l Nome do principal

l Nome abreviado do principal (nome mapeado)

l Grupos de principais

Se existirem 10 principais do Kerberos em seu nó do Hadoop, você deverá criar 30 paresde valor alfabético no arquivo de entrada JSON. Todos os nomes devem ser exclusivos;

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Proteger o bucket do ECS usando metadados 169

Page 170: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

portanto, você precisará atribuir um nome exclusivamente para cada nome de principal,nome abreviado de principal e grupos de principais. O ECS espera um prefixo e um sufixoconstantes para os nomes de entradas JSON.

O prefixo necessário para todas as entradas de usuários do Kerberos é"internal.kerberos.user", e os três sufixos possíveis são name, shortname e groups. Umexemplo é exibido a seguir.

{ "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"},

O valor entre o prefixo e o sufixo pode ser qualquer um, desde que ele identifique aentrada exclusivamente. Por exemplo, você pode usar:

"name": "internal.kerberos.user.1.name","name": "internal.kerberos.user.1.shortname","name": "internal.kerberos.user.1.groups",

Os principais podem ser associados a diferentes usuários. Por exemplo, o usuárioprincipal "rm" geralmente é associado aos usuários "yarn" usando a configuraçãoauth_to_local para o cluster do Hadoop, como a seguir.

RULE:[2:$1@$0](rm@EXAMPLE_HDFS.EMC.COM)s/.*/yarn/

Assim, para qualquer principal que seja associado a um principal diferente (por exemplo,o principal rm é associado ao principal yarn), você deverá usar o principal 'mapeado' novalor do nome abreviado; portanto, a entrada do principal rm seria:

{"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"},

SupergrupoVocê precisará informar ao ECS que o grupo de usuários Linux dos nós do Hadoop teráprivilégios de superusuário com base em seu grupo. Somente uma entrada do arquivo deentrada JSON será esperada para a designação de supergrupo. Ela deve ser semelhante aesta:

{ "name": "dfs.permissions.supergroup", "value": "hdfs"}

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

170 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 171: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Configurações proxyPara obter suporte a proxy, você precisará identificar todas as configurações proxy quesão permitidas para cada aplicativo Hadoop, onde aplicativo significa um dos aplicativoscompatíveis com Hadoop, por exemplo, hive, hbase etc.

No exemplo a seguir, o suporte a proxy para o aplicativo hive é concedido aos usuáriosque são membros do grupo s3users (grupo do AD ou do Linux), e o aplicativo hive podeser executado em qualquer um dos hosts do cluster do Hadoop. Portanto, a entrada JSONpara isso seria dois pares de valor alfabético, um para a configuração dos hosts e umpara a configuração de grupos.

{ "name": "hadoop.proxyuser.hive.hosts", "value": "*"},{ "name": "hadoop.proxyuser.hive.groups", "value": "s3users"}

O arquivo completoOs três tipos de metadados devem ser combinados em um só arquivo JSON. O formatodo arquivo JSON é apresentado a seguir.

{ "head_type": "hdfs", "metadata": [ { "name": "METADATANAME_1", "value": "METADATAVALUE_1" }, { "name": "METADATANAME_2", "value": "METADATAVALUE_2" },

:

{ "name": "METADATANAME_N", "value": "METADATAVALUE_N" } ]}

Obs.

O último par de valor alfabético não têm um caractere ',' final.

Um exemplo de um arquivo JSON é exibido em: Proteger metadados do bucket na página200.

Buckets seguros e não segurosAssim que os metadados forem carregados em um bucket, ele será chamado de "bucketseguro" e você deve ter principais do Kerberos para acessá-lo. Uma solicitação de um nónão seguro do Hadoop será rejeitada. Se os metadados não forem carregados, o bucketnão será seguro e uma solicitação de um nó seguro do Hadoop será rejeitada.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Proteger o bucket do ECS usando metadados 171

Page 172: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

O erro a seguir será visto se você tentar acessar um bucket seguro em um cluster nãoseguro. Uma mensagem semelhante será vista se você tentar acessar um bucket nãoseguro a partir de um cluster seguro.

[hdfs@sandbox ~]$ hadoop fs -ls -R viprfs://hdfsBucket3.s3.site1/ls: ViPRFS internal error (ERROR_FAILED_TO_PROCESS_REQUEST).

Carregar valores de metadados no ECS usando a API REST de gerenciamentoOs valores de metadados necessários para proteger um bucket do ECS para uso com umcluster seguro do Hadoop podem ser oferecidos executando os comandos da API RESTECS Management.

Antes de você começar

Você deve ter credenciais de administrador de sistema do ECS.

Se o administrador do Hadoop NÃO for o administrador do ECS, o administrador doHadoop precisará trabalhar em conjunto com o administrador de sistema do ECS paracarregar os metadados seguros no bucket.

O administrador do Hadoop pode disponibilizar o arquivo de metadados JSON para oadministrador de sistema ECS que, por sua vez, pode usar este procedimento paracarregar os metadados. Se as duas funções forem assumidas pelo mesmo usuário, esseusuário será responsável por criar o arquivo de metadados JSON e carregá-lo no bucketdo ECS.

Procedimento

1. Crie o arquivo JSON que contém os metadados descritos em: Proteger o bucket doECS usando metadados na página 169.

2. Faça log-in usando suas credenciais de administrador de sistema para obter umtoken de autenticação que pode ser usado ao executar comandos de gerenciamentodo ECS.

Você pode executar esse comando com curl. No exemplo a seguir, será necessáriosubstituir <username>:<password> pelas credenciais de administrador de sistema doECS e especificar o endereço IP ou o nome de host de um nó do 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. Execute o comando da API REST ECS Management para implementar os metadados.

A API é: PUT object/bucket/<bucketname>/metadata. Um exemplo de execução dessecomando com curl é apresentado a seguir.

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>

Você precisará substituir:

l <username> por um nome de usuário de administrador de sistema do ECS.

l <password> pela senha do nome de usuário de administrador de sistema do ECSespecificado.

l <bucketname> pelo nome do bucket você está usando para dados do HDFS.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

172 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 173: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

l <hostname> pelo endereço IP ou o nome de host de um nó do ECS.

l <bucketdetails> pelo nome do arquivo JSON que contém pares de valor alfabético.

l <namespace> pelo nome do namespace no qual o bucket reside.

Assim que forem implementados, os metadados estarão disponíveis para todos osnós do ECS.

Edite o core-site.xmlUse este procedimento para atualizar o core-site.xml com as propriedades que sãonecessárias ao usar o ECS HDFS com um cluster do ECS que usa o modo de autenticaçãoKerberos.

Antes de você começar

l Sempre é preferível adicionar/gerenciar essas propriedades usando umamanagement UI do Hadoop para reduzir a chance de erros e garantir que essasalterações sejam persistentes em todo o cluster. Editar manualmente os arquivos emvários nós do Hadoop é uma tarefa trabalhosa e suscetível a erros. Você deve ter umconjunto de credenciais do usuário que permitem que você faça log-in namanagement UI de sua distribuição.

l Se você modificar o core-site.xml diretamente, é necessário ter um conjunto decredenciais do usuário que permitem que você faça log-in nos nós do Hadoop emodifique o core-site.xml.

Algumas propriedades são específicas do ECS e, normalmente, devem ser adicionadasao core-site.xml. Se você estiver usando o pacote de discos Hortonworks AmbariHadoop ECS, os parâmetros específicos do ECS já estarão presentes.

Se você deseja editar o core-site.xml diretamente, o local do core-site.xmldependerá da distribuição que você está usando, conforme exibido na tabela a seguir.

Tabela 24 Local dos arquivos core-site.xml

Distribuição doECS

local do core-site.xml Nós paraatualizar

Pivotal HD /etc/ghpd/hadoop/conf ComputeMaster eclients

Cloudera /etc/hadoop/conf Nós do client

Hortonworks /etc/hadoop/conf Todos os nós

core-site.xml reside em cada nó do cluster do Hadoop, e você deve modificar asmesmas propriedades em cada instância. Você pode fazer uma alteração em um nó, eusar o comando de cópia segura (scp) para copiar o arquivo para os outros nós nocluster. Como prática recomendada, faça backup do core-site.xml antes de iniciar oprocedimento de configuração.

Consulte a referência da propriedade core_site.xml na página 194 para obter maisinformações sobre cada propriedade que precisa definir.

Procedimento

1. Se você estiver usando uma interface de gerenciamento, como Hortonworks Ambariou Cloudera Manager Safety Valve, faça log-in como administrador e acesse a páginade configuração do HDFS.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Edite o core-site.xml 173

Page 174: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

2. Se você pretende fazer as alterações editando o core-site.xml manualmente,siga as etapas a seguir.

a. Faça log-in em um dos nós do HDFS onde core-site.xml está localizado.

b. Faça uma cópia de backup de core-site.xml.

cp core-site.xml core-site.backupc. Usando um editor de texto de sua preferência, abra core-site.xml para

edição.

3. Adicione as seguintes propriedades e valores para definir as classes Java queimplementam o file system do 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. Adicione a propriedade fs.vipr.installations. No exemplo a seguir, o valor serádefinido como Site1.

<property> <name>fs.vipr.installations</name> <value>Site1</value></property>

5. Adicione a propriedade fs.vipr.installation.[installation_name]hosts como uma listaseparada por vírgulas de nós de dados do ECS ou de endereços IP do balanceador decarga. No exemplo a seguir, installation_name é definido como 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. Adicione a propriedade fs.vipr.installation.[installation_name], e a configure com umdos seguintes valores:

Opção Descrição

dinâmico Use ao acessar os nós de dados do ECS diretamente sem umbalanceador de carga.

fixo Use ao acessar nós de dados do ECS por meio de um balanceador decarga.

No exemplo a seguir, installation_name é definido como Site1.

<property> <name>fs.vipr.installation.Site1.resolution</name> <value>dynamic</value></property>

a. Se você definir fs.vipr.installation.[installation_name].resolution como dinâmico,adicione a propriedade fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms para especificar afrequência de consulta ao ECS para a lista de nós ativos.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

174 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 175: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name><value>900000</value></property>

7. Localize a propriedade fs.defaultFS e modifique o valor para especificar o URI do filesystem do ECS .

Essa configuração é opcional e é possível especificar a URL completa do file systempara se conectar ao ECS ViPRFS.

Use o seguinte formato: viprfs://<bucket_name.namespace.installation_name, no qual

l bucket_name: O nome do bucket que contém os dados que deseja usar quandovocê executa os trabalhos de Hadoop. Se você estiver fazendo a execução emmodo de autenticação simples, o proprietário do bucket deverá concederpermissão para Everybody. No exemplo a seguir, bucket_name é definido comomybucket.

l namespace: O namespace do tenant onde o bucket_name reside. No exemplo aseguir, o namespace é definido como mynamespace.

l installation_name: O valor especificado pela propriedade fs.vipr.installations. Noexemplo a seguir, installation_name é definido como Site1.

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.Site1/</value></property>

8. Localize fs.permissions.umask-mode e defina o valor como 022.

Em algumas configurações, essa propriedade pode ainda não existir. Se ela nãoexistir, adicione-a.

<property> <name>fs.permissions.umask-mode</name> <value>022</value></property>

9. Adicione a propriedade fs.viprfs.auth.anonymous_translation, usada para especificaro proprietário e o grupo de um arquivo ou um diretório criado usando o HDFS.

Obs.

Antes do ECS 2.2, esse parâmetro era usado para atribuir um proprietário aosarquivos e diretórios que foram criados sem um proprietário (arquivos compropriedade anônima), para que o usuário atual tivesse permissão para modificá-los.Os arquivos e os diretórios não são mais criados anonimamente e têm umproprietário atribuído a eles de acordo com a configuração desse parâmetro.

Opção Descrição

LOCAL_USER Use esta configuração com um cluster do Hadoop que use asegurança simples. Atribui o usuário do Unix e o grupo de clusterdo Hadoop a arquivos e diretórios recém-criados.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Edite o core-site.xml 175

Page 176: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Opção Descrição

CURRENT_USER Use esta configuração para um cluster do Hadoop que passou porKerberos. Atribui o principal do Kerberos ([email protected]) comoo proprietário do arquivo ou do diretório, e usa o grupo que foiatribuído como padrão para o bucket.

NONE (padrão) (Preterido) Anteriormente, indicava que nenhum mapeamento deobjetos com propriedade anônima devia ser realizado ao usuárioatual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>LOCAL_USER</value></property>

10. Adicione a propriedade fs.viprfs.auth.identity_translation, e configure-a paraCURRENT_USER_REALM, que associa ao escopo do usuário registrado via kinit.

<property> <name>fs.viprfs.auth.identity_translation</name> <value>CURRENT_USER_REALM</value></property>

11. Adicione a propriedade viprfs.security.principal. Esta propriedade informa o KeyDistribution Center quem é o usuário do ECS.

O nome do principal pode incluir "_HOST", que é substituído automaticamente peloFQDN real do nó de dados no momento da execução.

<property> <name>viprfs.security.principal</name> <value>vipr/[email protected]</value></property>

12. Se você estiver configurando o serviço Pivotal HAWQ, adicione os parâmetros aseguir.

a. Adicione um valor para a propriedade hawq.vipr.endpoint. Especifique ovalor usando o seguinte formato: viprfs://<datanode-ip>:9040/<namespace>/<bucket>

Por exemplo:

<property><name>hawq.vipr.endpoint</name><value>viprfs://10.0.0.1:9040/h3/hawqBucket</value></property>

b. adicione a identidade do principal de Kerberos do HAWQ configurando um valorpara hawq.authentication.kerberos.principal.

Por exemplo:

<property> <name>hawq.authentication.kerberos.principal</name> <value>postgres@REALM</value></property>

c. adicione o caminho para o keytab do HAWQ configurando um valor parahawq.keytab.path.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

176 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 177: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Por exemplo:

<property> <name>hawq.keytab.path</name> <value>/etc/security/keytabs/postgres.keytab</value></property>

13. adicione o local armazenado em cache dos tíquetes do Kerberos.

Por exemplo:

<property><name>hadoop.security.kerberos.ticket.cache.path</name> <value>/tmp/<krbcc_1000</value></property>

o valor pode ser obtido no resultado do comando klist.

14. Use o Hortonworks Ambari ou o Cloudera Manager Safety Valve para atualizar ocore-site.xml com o mesmo conjunto de propriedades e valores.

Inicializar o banco de dados do HAWQAo usar o HAWQ, o Greenplum Database precisa ser inicializado.

Procedimento

1. Crie um arquivo de configuração para o Greenplum Database que contenha osparâmetros a seguir. Acione o arquivo gpinitsystem_config.

DFS_URL=<datanode-ip>:9040/<bucketName>DFS_NAME=hdfs

KERBEROS_KEYFILE=/etc/security/keytabs/postgres.keytabENABLE_SECURE_FILESYSTEM=on

2. Execute kinit como o usuário postgres.

$ kinit [email protected]

3. Execute o comando gpinitsystem e passe-o no arquivo de configuração.

gpinitsystem -c [config-file] -h /tmp/hawq/hostfile

Reiniciar e verificar o acessoAssim que você realizar as etapas de configuração, reinicie os serviços do Hadoop everifique se tem acesso ao HDFS.

Quando o sistema estiver configurado para usar o ECS HDFS, o HDFS NameNode poderáfalhar ao ser inicializado. Quando o ECS HDFS estiver configurado como o HDFS, o ECSHDFS realizará todas as funções de NameNode e não exigirá que o NameNode estejaativo.

Procedimento

1. Reinicie os serviços do Hadoop.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Inicializar o banco de dados do HAWQ 177

Page 178: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Geralmente, eles incluirão HDFS, MapReduce, Yarn e HBase.

Se você estiver reiniciando os serviços manualmente, consulte a tabela a seguir.

Distribuição doHadoop

Comandos

Pivotal HD ComputeMaster:# service hadoop-yarn-resourcemanager restartNós de dados:

# service hadoop-hdfs-datanode restart# service hadoop-yarn-nodemanager restartNameNode:

# service hadoop-yarn-nodemanager restartSe estiver usando o serviço do Pivotal HAWQ, reinicie-o executandoos seguintes comandos:

# service hawq stop# service hawq startQuando você configura o cluster Pivotal Hadoop para usar o ECSHDFS como o file system padrão (especificado por fs.DefaultFS emcore-site.xml), você não pode usar a funcionalidade de início/interrupção de cluster do icm_client, em vez de isso, você deveiniciar todos os serviços de cluster (exceto HDFS) individualmente.Por exemplo:

icm_client start -s yarn

icm_client start -s zookeeper

e assim por diante.

Cloudera Use Gerenciador do Cloudera para reiniciar os serviços de HDFS eMapReduce

Hortonworks # stop-all.sh# start-all.sh

2. Teste a configuração executando o seguinte comando para obter uma lista dediretórios:

# 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/

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

178 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 179: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 25

Orientação sobre a configuração do Kerberos

l Orientação sobre a configuração do Kerberos..................................................... 180l Configurar um ou mais novos nós do ECS com o principal do serviço do ECS.......183

Orientação sobre a configuração do Kerberos 179

Page 180: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Orientação sobre a configuração do KerberosOferece orientação sobre a configuração do Kerberos no cluster do Hadoop.

Configurar o KDC do KerberosConfigure o Key Distribution Center do Kerberos seguindo estas etapas.

Procedimento

1. Instale o krb5-workstation.

Use o comando:

yum install -y krb5-libs krb5-server krb5-workstation

2. Modifique /etc/krb5.conf e altere o nome e as extensões do realm.

3. Modifique /var/kerberos/krb5kdc/kdc.conf e altere o nome do real paracorresponder ao do seu.

4. Se seu KDC for um VM, recrie /dev/random (caso contrário, sua próxima etapa decriação do banco de dados do KDC demorará muito).

a. Remova usando:

# rm -rf /dev/random

b. Recrie usando:

# mknod /dev/random c 1 9

5. Crie o banco de dados do KDC.

# kdb5_util create -s

Obs.

Se você cometeu um erro com os principais iniciais, por exemplo, executou"kdb5_util create -s" incorretamente, poderá ser necessário excluir esses principais explicitamente no diretório /var/kerberos/krb5kdc/.

6. Modifique kadm5.acl para especificar os usuários com permissão administrativa.

*/[email protected] *

7. Modifique /var/kerberos/krb5kdc/kdc.conf e retire todos os tipos decriptografia exceto des-cbc-crc:normal. Além disso, modifique o nome dorealm.

8. Desligue iptables e selinux em todos os nós (nós do servidor KDC e do Hadoop).

9. Inicie os serviços do KDC e crie um principal administrativo local.

kadmin.local

Orientação sobre a configuração do Kerberos

180 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 181: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

# service krb5kdc start

# service kadmin start

# /usr/kerberos/sbin/kadmin.local-q "addprinc root/admin"

# kinit root/admin

10. Copie o arquivo krb5.conf em todos os nós do Hadoop.

Sempre que fizer uma modificação em qualquer um dos arquivos de configuração,reinicie os serviços a seguir e copie o arquivo krb5.conf no host relevante doHadoop e nos nós relevantes do ECS.

11. Reinicie os serviços.

service krb5kdc restart

service kadmin restart

12. Acesse o seguinte link para configurar um KDC do Kerberos com base em etapas: http://www.centos.org/docs/4/html/rhel-rg-en-4/s1-kerberos-server.html.

Configurar a autenticação de usuários do AD para KerberosQuando você tem um ambiente do Hadoop configurado com a segurança do Kerberos, épossível configurá-lo para se autenticar no domínio do AD do ECS.

Verifique se há um usuário do AD para seu ADREALM. O usuário "detscr" do ADREALMCAMBRIDGE.ACME.COM é usado no exemplo a seguir. Crie uma confiança unidirecionalentre o KDCREALM e o ADREALM, como exibido no exemplo. Não tente validar esse realmusando "netdom trust".

No Active DirectoryÉ necessário configurar uma confiança de realm cruzado unidirecional do realm do KDC(Key Distribution Center) ao realm do AD. Para isso, execute os seguintes comandos emum prompt de comando.

ksetup /addkdc KDC-REALM <KDC hostname>netdom trust KDC-REALM /Domain:AD-REALM /add /realm /passwordt:<TrustPassword>ksetup /SetEncTypeAttr KDC-REALM <enc_type>

Por exemplo:

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

Nesse exemplo, foi utilizada a criptografia des-cbc-crc. No entanto, essa é umacriptografia fraca que só foi escolhida para fins de demonstração. Independentementeda criptografia escolhida, o AD, o KDC e os clients devem ser compatíveis com ela.

Em seu KDC (como root)Para configurar uma confiança unidirecional, será necessário criar um principal doserviço "krbtgt". Para fazer isso, use o nome krbtgt/KDC-REALM@AD-REALM. Dê a ele asenha ChangeMe ou qualquer outra senha especificada no argumento /passwordtanterior.

Orientação sobre a configuração do Kerberos

Configurar a autenticação de usuários do AD para Kerberos 181

Page 182: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

1. No KDC (como root)

# kadminkadmin: addprinc -e "des-cbc-crc:normal" krbtgt/[email protected]

Obs.

Durante a implementação, é melhor limitar os tipos de criptografia ao tipo escolhido.Assim que essa opção estiver funcionando, será possível incluir tipos adicionais decriptografia.

2. Adicione as seguintes regras à propriedade hadoop.security.auth_to_local de seucore-site.xml:

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. Verifique se o AD ou o LDAP está configurado corretamente com o servidor Kerberos(KDC). O usuário deve poder executar o comando "kinit" para um usuário do AD erelacionar o diretório local do HDFS.

Obs.

Se você estiver configurando seu cluster do Hadoop e o ECS para autenticação pormeio de um AD, crie contas locais de usuários Linux em todos os nós do Hadoop parao usuário do AD com o qual você executará o comando kinit. Além disso, verifique setodos os hosts do Hadoop executaram o comando kinit usando esse usuário do AD.Por exemplo, se você executou o comando kinit como userX@ADREALM, crie o userXcomo um usuário local em todos os hosts do Hadoop e execute o kinit usando: 'kinituserX@ADREALM' em todos os hosts desse usuário.

No exemplo a seguir, nós nos autenticaremos como "[email protected]"; portanto, criaremos um usuário chamado "detscr" eexecutaremos o kinit como esse usuário no host do Hadoop, como exibido a seguir:

[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

Orientação sobre a configuração do Kerberos

182 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 183: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Configurar um ou mais novos nós do ECS com o principal doserviço do ECS

Quando você estiver adicionando um ou mais novos nós a uma configuração do ECS, oprincipal do serviço do ECS e o keytab correspondente devem ser implementados para osnovos nós.

Antes de você começar

Este procedimento pressupõe que você tenha realizado anteriormente estas na página166 etapas, e que os guias estratégicos de Ansible já foram instalados e estãoacessíveis.

Você deve ter os seguintes itens antes de concluir este procedimento:

l A lista de endereços IP dos nós do ECS.

l Endereço IP do Key Distribution Center.

l A resolução DNS na qual você executa esse script deve ser igual à resolução DNS dohost do Hadoop; caso contrário, o vipr/_HOST@REALM não funcionará.

Procedimento

1. Copie o conteúdo do diretório viprfs-client-<ECS version>-<version>/playbooks/samples em um diretório funcional.

2. Edite inventory.txt para que ele se refira aos nós de dados do ECS e ao servidordo Key Distribution Center.

As entradas padrão são exibidas a seguir.

[data_nodes]192.168.2.[100:200]

[kdc]192.168.2.10

3. Execute o guia estratégico da Ansible para gerar keytabs.

ansible-playbook -v -k -i inventory.txt generate-vipr-keytabs.yml

4. Execute o guia estratégico da Ansible para configurar os nós de dados com o principaldo serviço do ECS.

Verifique se o diretório ./viprfs-client-<ECS version>-<version>/playbooks/samples/keytab existe e se o arquivo krb5.conf está no diretóriofuncional viprfs-client-<ECS version>-<version>/playbooks/samples.

ansible-playbook -v -k -i inventory.txt setup-vipr-kerberos.yml

Orientação sobre a configuração do Kerberos

Configurar um ou mais novos nós do ECS com o principal do serviço do ECS 183

Page 184: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Verifique se o principal do serviço correto do ECS, um por nó de dados, foi criado (noKey Distribution Center):

# kadmin.local -q "list_principals" | grep viprvipr/[email protected]/[email protected]

Verifique se o keytab correto foi gerado e armazenado no local: /data/hdfs/krb5.keytab de todos os nós de dados do ECS. É possível usar o comando"strings" do keytab para extrair o texto legível e verificar se ele contém o principalcorreto. Por exemplo:

dataservice-10-247-199-69:~ # strings /data/hdfs/krb5.keytabMA.EMC.COMviprnile3-vm42.centera.lab.emc.com

Nesse caso, o principal é vipr/nile3-vm42.centera.lab.emc.com.

Orientação sobre a configuração do Kerberos

184 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 185: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 26

Solução de problemas

l Solução de problemas........................................................................................ 186l Verificar se o AD/LDAP está corretamente configurado com o cluster seguro do

Hadoop...............................................................................................................186l Reiniciar serviços após a configuração do hbase.................................................187l Falhas do teste do Pig: unable to obtain Kerberos principal.................................187l Permissão negada para o usuário do AD............................................................. 187l Erros de permissões............................................................................................187l Falha ao processar solicitação............................................................................ 190l Ativar o registro e a depuração do Kerberos no lado do client..............................191l Depurar o Kerberos no KDC................................................................................. 191l Eliminar a precisão do relógio............................................................................. 191

Solução de problemas 185

Page 186: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Solução de problemasEsta área oferece soluções temporárias para os problemas que podem ser encontradosao configurar o ECS HDFS.

Verificar se o AD/LDAP está corretamente configurado com ocluster seguro do Hadoop

É necessário verificar se o AD ou o LDAP estão configurados corretamente com o clusterKDC (Key Distribution Center) do Kerberos e do Hadoop.

Quando sua configuração estiver correta, será possível executar o comando "kinit" paraum usuário do AD/LDAP. Além disso, se o cluster do Hadoop for configurado para o HDFSlocal, será necessário verificar se é possível listar o diretório local HDFS antes de o ECSser adicionado ao cluster.

Solução temporáriaSe não for possível se autenticar com sucesso como um usuário do AD/LDAP no KDC docluster do Hadoop, será necessário abordar esse problema antes de avançar àconfiguração de ECS do Hadoop.

Um exemplo de log-in feito com sucesso é exibido a seguir:

[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

Se o log-in anterior não for feito com sucesso, é possível investigar usando a seguintelista de verificação:

l Verifique a correção e sintaxe do arquivo /etc/krb5.conf do servidor KDC. Osrealms podem distinguir maiúsculas de minúsculas nos arquivos de configuração equando usados com o comando kinit.

l Verifique se o arquivo /etc/krb5.conf do servidor KDC está copiado em todos osnós do Hadoop.

l Verifique se a confiança unidirecional entre o AD/LDAP e o servidor KDC foi feita comsucesso. Consulte a documentação adequada para saber como fazer isso.

l Verifique se o tipo de criptografia do servidor do AD/LDAP corresponde ao doservidor KDC.

l Verifique se /var/kerberos/krb5kdc/kadm5.acl e /var/kerberos/krb5kdc/kdc.conf estão corretos.

l Tente fazer log-in como um principal do serviço no servidor KDC para indicar se opróprio servidor KDC está funcionando corretamente.

Solução de problemas

186 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 187: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

l Tente fazer log-in como o mesmo usuário do AD/LDAP diretamente no servidor KDC.Se isso não funcionar, provavelmente o problema estará diretamente no servidorKDC.

Reiniciar serviços após a configuração do hbaseApós editar a propriedade hbase.rootdir no hbase-site.xml, o serviço hbase não éreiniciado corretamente.

Solução temporáriaAs etapas a seguir devem ser realizadas quando esse problema acontecer na Clouderaou na Hortonworks para colocar o hbase-master em execução.

1. Conecte-se à CLI do zookeeper.

hbase zkcli2. Remova o diretório hbase.

rmr /hbase3. Reinicie o serviço hbase.

Na Cloudera, reinicie todos os serviços.

Falhas do teste do Pig: unable to obtain Kerberos principalO teste do Pig falha com o seguinte erro: "Info:Error: java.io.IOException: Unable toobtain the Kerberos principal" mesmo depois de executar o comando kinit como umusuário do AD, ou com o erro "Unable to open iterator for alias firstten".

Esse problema ocorre porque o Pig (<0,13) não gera um token de delegação para oViPRFS como um armazenamento secundário.

Solução temporáriaAcrescente viprfs://bucket.ns.installation/ à configuraçãomapreduce.job.hdfs-servers. Por exemplo:

set mapreduce.job.hdfs-servers viprfs://KcdhbuckTM2.s3.site1

Permissão negada para o usuário do ADAo executar um aplicativo como um usuário do AD, um erro "Permission denied" éemitido.

Solução temporáriaConfigure as permissões do diretório /user como:

hdfs dfs -chmod 1777 /user

Erros de permissõesErros de permissões suficientes podem ocorrer por vários motivos. Você pode recebê-losao executar um comando hadoop fs ou vê-los no registro do aplicativo, como o registrode mapreduce ou hive.

Solução de problemas

Reiniciar serviços após a configuração do hbase 187

Page 188: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Erros INSUFFICIENT_PERMISSIONS

No exemplo a seguir, o principal "jhs" tentou criar um diretório (/tmp) e recebeu um erroINSUFFICIENT_PERMISSIONS. Nesse caso, as permissões do diretório raiz não permitiramque esse usuário criasse um diretório. A causa desse erro deve ser óbvia para a maioriados usuários.

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#

Quando a causa de um erro de permissões suficientes não for óbvia no client, pode sernecessário analisar os registros do servidor. Comece com dataheadsvc-error.logpara localizar o erro. Abra uma janela de terminal para cada nó do ECS e edite o arquivodataheadsvc-error.log. Localize o erro que corresponde ao horário em que o errofoi visto no client.

Falha ao obter credenciais

Quando você vir um erro como este no 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

Essa mensagem não é um erro. A mensagem significa que o servidor tentou procurar onome do principal para ver se há algum grupo do Active Directory armazenado em cachepara o usuário principal que fez a solicitação. Para um usuário do Kerberos, esseprocesso exibirá esse erro.

O erro informará o nome de usuário que fez a solicitação. Anote-o.

Erro de acesso ao bucket

Se um usuário estiver solicitando o acesso a um bucket, mas não tiver permissões deACL, você pode ver essa pilha de erros em 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: you don't have GET_KEYPOOL_ACL permission to this keypoolat com.emc.storageos.objcontrol.object.exception.ObjectAccessException.cr

Solução de problemas

188 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 189: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

eateExceptionForAPI(ObjectAccessException.java:286)at com.emc.storageos.data.object.ipc.protocol.impl.ObjectAccessExceptionParser.parseFrom(ObjectAccessExceptionParser.java:61)

Nesse caso, você deve adicionar uma ACL explícita de usuário para o bucket ou adicionaruma ACL personalizada de grupo para um dos grupos dos quais o usuário é membro.

Erro de acesso a object

Outro tipo de erro de permissão é um erro de acesso a object. O acesso aos objects(arquivos e diretórios) não devem ser confundidos com o acesso a um bucket. Umusuário pode ter controle total (leitura/gravação/exclusão) de um bucket, mas podereceber um erro INSUFFICIENT_PERMISSIONS porque não tem acesso a um ou maisobjects do caminho que está tentando acessar. A pilha a seguir é um exemplo de um errode acesso a object:

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)

Os dois pontos importantes a serem observados aqui são a ação solicitada (stat) e ocaminho do object (mr-history/done). Observe que o caractere de barra à esquerda não éexibido; portanto, o caminho real é /mr-history/done. Agora, você tem três informaçõesque são importantes para depuração:

l principal do usuário (jhs@HOP171_HDFS.EMC.COM)

l ação (stat é hadoop fs -ls)

l caminho (/mr-history/done)

Há duas abordagens para depuração adicional:

Solução de problemas

Erro de acesso a object 189

Page 190: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

l Depuração de registros blobsvc na página 190

l Depuração de clients do Hadoop na página 190

Depuração de registros blobsvcUma solicitação de permissão com falha terá um erro de blobsvc como este:

2015-11-08 22:36:21,994[TaskScheduler-BlobService-COMMUNICATOR-ParallelExecutor-5892]ERROR ObjectAclChecker.java (line 101) not permit, credjhs@HOP171_HDFS.EMC.COM[hadoop]false1 withaction GET_OBJECT_ACL on object with acl/owner/groupuser={hdfs@hop171_hdfs.emc.com=[FULL_CONTROL]},groups={hdfs=[READ_ACL, EXECUTE, READ]}, other=[],owner=hdfs@hop171_hdfs.emc.com, group=hdfs

Apenas procure o texto 'not permit'. Isso nos informa o usuário que fez a solicitação(jhs), o proprietário do object (hdfs), o grupo de object (hdfs) e as permissões doproprietário, do grupo e outras. O que esse processo não nos informa é o object real quefalhou na verificação de permissão. No nó do Hadoop, torne-se o principal hdfs, comececom o caminho e trabalhe na árvore, o que levará a outro método de depuração,analisando o file system do Hadoop a partir do client.

Depuração de clients do HadoopQuando um erro de permissão é recebido, você deve saber o principal do usuário que feza solicitação, qual ação se refere à solicitação, e quais itens estão sendo solicitados. Emnosso exemplo, o usuário jhs recebeu um erro ao listar o diretório /mr-history/done.Você pode fazer algumas análises para determinar a causa raiz. Se você tiver acesso àconta de superusuário, execute essas etapas usando essa conta.

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

Isso mostra que o principal jhs deveria ter tido acesso para listar esse diretório.

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

Da mesma forma, esse diretório não tem problemas de acesso

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /drwxr-x--- - hdfs hdfs 0 2015-11-08 16:58 /

O problema é que o diretório raiz pertence ao hdfs, o nome do grupo é hdfs, mas asoutras configurações são '-' (0). O usuário que fez a solicitação é jhs@REALM, e esseusuário é membro do hadoop, mas não do hdfs; portanto, esse usuário não temnenhuma ACL de object para listar o diretório /mr-history/done. Executar um comandochmod no diretório raiz permitirá que esse usuário realize suas tarefas.

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 /

Falha ao processar solicitaçãoAo listar um bucket, um erro: Failed to Process Request é gerado.

Solução de problemas

190 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 191: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Ao executar a lista de buckets, por exemplo:

# hadoop fs -ls viprfs://hdfsBucket2.s3.site1/

O seguinte erro interno do ViPRFS ocorre:

ERROR_FAILED_TO_PROCESS_REQUEST

Solução temporáriaAs possíveis razões para esse erro são:

1. Seu arquivo JAR viprfs-client do nó do Hadoop não está sincronizado com o softwareECS

2. Você está tentando acessar um bucket protegido (Kerberos) a partir de um nó doHadoop não protegido (não submetido a Kerberos)

3. Você está tentando acessar um bucket não protegido (não submetido a Kerberos) apartir de um nó protegido (Kerberos) do Hadoop.

Ativar o registro e a depuração do Kerberos no lado do clientPara solucionar os problemas de autenticação, é possível ativar o registro e a depuraçãodetalhados no nó de cluster do Hadoop que estiver sendo usado.

Ativar o registro detalhado no lado do clientO registro detalhado é ativado usando uma variável de ambiente que se aplica apenas asua sessão atual de SSH (Secure Shell Protocol).

export HADOOP_OPTS="-Dsun.security.krb5.debug=true"

Ativar a depuração do Hadoop no lado do clientPara solucionar os problemas da atividade do Hadoop entre o nó do Hadoop e o ECS, épossível ativar o registro detalhado do Hadoop da seguinte maneira:

export HADOOP_ROOT_LOGGER="Debug,console"

Depurar o Kerberos no KDCVerifique atentamente o arquivo /var/log/krb5kdc.log do KDC ao fazer umaoperação do HDFS para facilitar a depuração.

tail -f /var/log/krb5kdc.log

Eliminar a precisão do relógioÉ importante garantir que o horário esteja sincronizado entre o client e o servidor, já queo Kerberos depende da precisão do horário.

Se seu AD tiver uma precisão do relógio com seus nós de dados/KDC, será necessárioconfigurar seu servidor NTP (Network Time Protocol). Isso pode ser feito como segue:

1. Use a área de trabalho remota para conectar-se a seu servidor do AD.

2. Execute os seguintes comandos:

Solução de problemas

Ativar o registro e a depuração do Kerberos no lado do client 191

Page 192: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

a. w32tm /config /syncfromflags:manual /manualpeerlist:<ntp-server1>,<ntp-server2>

b. net stop w32time

c. net start w32time

Solução de problemas

192 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 193: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 27

Propriedades do core-site.xml do Hadoop paraECS HDFS

l Propriedades do core-site.xml do Hadoop para HDFS ECS................................... 194

Propriedades do core-site.xml do Hadoop para ECS HDFS 193

Page 194: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Propriedades do core-site.xml do Hadoop para HDFS ECSAo configurar o arquivo Hadoopcore-site.xml, use esta tabela como referência paraas propriedades e seus valores relacionados.

Tabela 25 Propriedades do core-site.xml do Hadoop

Propriedade Descrição

Propriedades da implementação do file system

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>

Propriedades que definem a seção de autoridade da URI do file system do ECS HDFS

fs.vipr.installations Uma lista de nomes separados por vírgula. Os nomes são definidos pela propriedadefs.vipr.installation.[installation_name].hosts para identificar exclusivamente os conjuntos de nós dedados do ECS. Os nomes são usados como um componente da seção de autoridade da URI do filesystem do ECS HFDS. Por exemplo:

<property> <name>fs.vipr.installations</name> <value><site1>,<abc>,<testsite></value> </property>

fs.vipr.installation.[installation_name].hosts

Os endereços IP dos nós de dados do cluster do ECS ou os balanceadores de carga para cada nomelistado na propriedade fs.vipr.installations. Especifique o valor na forma de uma lista de endereços IPseparados por vírgulas. Por exemplo:

<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>

Propriedades do core-site.xml do Hadoop para ECS HDFS

194 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 195: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 25 Propriedades do core-site.xml do Hadoop (continuação)

Propriedade Descrição

fs.vipr.installation.[installation_name].resolution

Especifique como o software do ECS HDFS sabe como acessar os nós de dados do ECS. Os valores são:

l dinâmico: Use esse valor ao acessar nós de dados do ECS diretamente sem um balanceador decarga.

l fixo: use esse valor ao acessar os nós de dados do ECS por meio de um balanceador de carga.

<property> <name>fs.vipr.installation.testsite.resolution</name> <value>dynamic</value> </property>

fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms

Quando a propriedade fs.vipr.installation.[installation_name].resolution é definida como dinâmica, elaespecifica com que frequência consultar ECS para a lista de nós ativos. Os valores são emmilissegundos. O padrão é 10 minutos.

<property> <name>fs.vipr.installation.<testsite>.resolution.dynamic.time_to_live_ms</name> <value>600000</value> </property>

URI do file system do ECS

fs.defaultFS Uma propriedade padrão do Hadoop que especifica o URI ao file system padrão. Configurar essapropriedade para o file system do ECS HDFS é opcional. Se você não a configurar para o file system doECS HDFS, você deve especificar o URI completo em cada operação do file system. O URI do file systemdo ECS HDFS tem este formato:

viprfs://[bucket_name].[namespace].[installation_name]

l bucket_name: O nome do bucket habilitado para o HDFS que contém os dados que deseja usarquando executa trabalhos do Hadoop.

l namespace: o namespace do tenant associado ao bucket habilitado para HDFS.

l installation_name: o nome associado ao conjunto de nós de dados do ECS que o Hadoop pode usarpara acessar os dados do ECS. O valor dessa propriedade deve corresponder a um dos valoresespecificados na propriedade fs.vipr.installations.

Por exemplo:

<property> <name>fs.defaultFS</name> <value>viprfs://testbucket.s3.testsite</value> </property>

HBase exige que um file system padrão seja definido.

Propriedade UMASK

Propriedades do core-site.xml do Hadoop para ECS HDFS

Propriedades do core-site.xml do Hadoop para HDFS ECS 195

Page 196: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 25 Propriedades do core-site.xml do Hadoop (continuação)

Propriedade Descrição

fs.permissions.umask-mode

Esta propriedade padrão do Hadoop especifica como o ECS HDFS deve computar permissões emobjetos. As permissões são computadas aplicando um umask nas permissões de entrada. O valorrecomendado para configurações simples e do Kerberos é: 022. Por exemplo:

<property><name>fs.permissions.umask-mode</name><value>022</value></property>

Propriedades da tradução de identidade

fs.viprfs.auth.identity_translation

Esta propriedade especifica como o client do ECS HDFS determina a qual realm do Kerberos umdeterminado usuário pertence se nenhum for especificado. Os nós de dados do ECS armazenamproprietários de arquivos como username@REALM, enquanto o Hadoop armazena os proprietários dearquivos como apenas o nome de usuário.Os valores possíveis são:

l NONE: Padrão. Os usuários não estão associados a um realm. Use esta configuração com umcluster do Hadoop que use a segurança simples. Com essa configuração, o ECS HDFS não realiza aconversão do realm.

l CURRENT_USER_REALM: Válido quando Kerberos está presente. O realm do usuário é detectadoautomaticamente, e é o realm do usuário registrado atualmente. No exemplo a seguir, o realm éEMC.COM porque sally está no realm EMC.COM. A propriedade do arquivo é alterada [email protected].

# kinit [email protected]# hdfs dfs -chown john /path/to/file

Os realms fornecidos na linha de comando têm precedência sobre as configurações de propriedades.

<property> <name>fs.viprfs.auth.identity_translation </name> <value>CURRENT_USER_REALM</value> </property>

Obs.

A opção FIXED_REALM é obsoleta.

fs.viprfs.auth.realm O realm atribuído aos usuários quando a propriedade fs.viprfs.auth.identity_translation é definidacomo FIXED_REALM.Essa opção é obsoleta.

fs.viprfs.auth.anonymous_translation

Esta propriedade é usada para determinar como o usuário e o grupo são atribuídos a arquivos recém-criados

Obs.

Esta propriedade foi usada anteriormente para determinar o que aconteceu com os arquivos que nãotinham proprietário. Esses arquivos eram considerados como pertencentes a "anonymous". Os arquivose diretórios são têm mais propriedade anônima e .

Os valores são:

Propriedades do core-site.xml do Hadoop para ECS HDFS

196 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 197: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Tabela 25 Propriedades do core-site.xml do Hadoop (continuação)

Propriedade Descrição

l LOCAL_USER: use esta configuração com um cluster do Hadoop que use a segurança simples.Atribui o usuário do Unix e o grupo de cluster do Hadoop a arquivos e diretórios recém-criados.

l CURRENT_USER: use esta configuração para um cluster do Hadoop que passou por Kerberos.Atribui o principal do Kerberos ([email protected]) como o proprietário do arquivo ou do diretório,e usa o grupo que foi atribuído como padrão para o bucket.

l NONE: (obsoleto) anteriormente, indicava que nenhum mapeamento de objetos com propriedadeanônima devia ser realizado ao usuário atual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>CURRENT_USER</value> </property>

Propriedades do realm Kerberos e do principal do serviço

viprfs.security.principal Esta propriedade especifica o principal de serviço do ECS. Esta propriedade informa o Key DistributionCenter sobre o serviço do ECS. Esse valor é específico para sua configuração.O nome do principal pode incluir "_HOST", que é substituído automaticamente pelo FQDN real do nó dedados no momento da execução.

Por exemplo:

<property> <name>viprfs.security.principal</name> <value>vipr/[email protected]</value></property>

Amostra de core-site.xml para o modo de autenticação simplesEste core-site.xml é um exemplo das propriedades do ECS HDFS para o modo deautenticação simples.

Propriedades do core-site.xml do Hadoop para ECS HDFS

Amostra de core-site.xml para o modo de autenticação simples 197

Page 198: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Exemplo 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>

<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>

Propriedades do core-site.xml do Hadoop para ECS HDFS

198 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 199: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

CAPÍTULO 28

Exemplo de metadados seguros de bucket

l Proteger metadados do bucket............................................................................200

Exemplo de metadados seguros de bucket 199

Page 200: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Proteger metadados do bucketA lista a seguir

{ "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",

Exemplo de metadados seguros de bucket

200 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 201: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

"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",

Exemplo de metadados seguros de bucket

Proteger metadados do bucket 201

Page 202: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

"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",

Exemplo de metadados seguros de bucket

202 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados

Page 203: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

"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" } ]}

Exemplo de metadados seguros de bucket

Proteger metadados do bucket 203

Page 204: Guia de acesso a dados - mexico.emc.com · Elastic Cloud Storage (ECS) Versão 2.2.1 Guia de acesso a dados 302-002-791 03

Exemplo de metadados seguros de bucket

204 Elastic Cloud Storage (ECS) 2.2.1 Guia de acesso a dados