O OSS-HDFS oferece suporte ao RootPolicy. Esse recurso permite definir um prefixo personalizado para o OSS-HDFS, possibilitando a execução de jobs sem alterar o prefixo de acesso original hdfs://.
Pré-requisitos
Ambiente Hadoop, cluster Hadoop ou cliente Hadoop criado. Para mais informações sobre a instalação do Hadoop, consulte Etapa 2: Criar um ambiente de execução do Hadoop.
OSS-HDFS ativado para buckets específicos. Para mais detalhes, consulte Ativar o OSS-HDFS e conceder permissões de acesso.
JindoSDK 4.5.0 ou posterior instalado e configurado. Para mais informações, consulte Conectar clusters não EMR ao OSS-HDFS.
Procedimento
-
Configure as variáveis de ambiente.
-
Configure o RootPolicy.
Execute o comando SetRootPolicy a seguir para especificar um endereço registrado com um prefixo personalizado para um bucket:
jindo admin -setRootPolicy oss://<bucket_name>.<dls_endpoint>/ hdfs://<your_ns_name>/A tabela a seguir descreve os parâmetros do comando SetRootPolicy.
Parâmetro
Descrição
bucket_name
Nome do bucket com o OSS-HDFS ativado.
dls_endpoint
Endpoint da região onde reside o bucket com o OSS-HDFS ativado. Exemplo:
cn-hangzhou.oss-dls.aliyuncs.com.Para evitar a inclusão repetida do parâmetro <dls_endpoint> no comando SetRootPolicy sempre que executar o RootPolicy, use um dos métodos a seguir para adicionar itens de configuração ao arquivo
core-site.xmldo Hadoop:-
Método 1:
<configuration> <property> <name>fs.oss.endpoint</name> <value><dls_endpoint></value> </property> </configuration> -
Método 2:
<configuration> <property> <name>fs.oss.bucket.<bucket_name>.endpoint</name> <value><dls_endpoint></value> </property> </configuration>
your_ns_name
Nsname personalizado usado para acessar o OSS-HDFS. Aceita qualquer string não vazia, como
test. A versão atual suporta apenas o diretório raiz. -
-
Defina o endereço de descoberta da Access Policy e a classe de implementação do Scheme.
Configure os seguintes parâmetros no arquivo core-site.xml do Hadoop:
<configuration> <property> <name>fs.accessPolicies.discovery</name> <value>oss://<bucket_name>.<dls_endpoint>/</value> </property> <property> <name>fs.AbstractFileSystem.hdfs.impl</name> <value>com.aliyun.jindodata.hdfs.HDFS</value> </property> <property> <name>fs.hdfs.impl</name> <value>com.aliyun.jindodata.hdfs.JindoHdfsFileSystem</value> </property> </configuration>Para configurar endereços de descoberta da Access Policy e classes de implementação do Scheme para vários buckets, separe-os por vírgulas (
,). -
Verifique se o RootPolicy foi configurado corretamente executando o comando a seguir:
hadoop fs -ls hdfs://<your_ns_name>/Se o retorno for semelhante ao exemplo abaixo, o RootPolicy foi configurado com êxito:
drwxr-x--x - hdfs hadoop 0 2023-01-05 12:27 hdfs://<your_ns_name>/apps drwxrwxrwx - spark hadoop 0 2023-01-05 12:27 hdfs://<your_ns_name>/spark-history drwxrwxrwx - hdfs hadoop 0 2023-01-05 12:27 hdfs://<your_ns_name>/tmp drwxrwxrwx - hdfs hadoop 0 2023-01-05 12:27 hdfs://<your_ns_name>/user -
Use o prefixo personalizado para acessar o OSS-HDFS.
Após reiniciar serviços como Hive e Spark, acesse o OSS-HDFS por meio do prefixo personalizado.
-
(Opcional) Use o RootPolicy para outras finalidades.
-
Listar todos os endereços registrados com prefixo personalizado para um bucket
Execute o comando listAccessPolicies a seguir para listar todos os endereços registrados que contêm um prefixo personalizado definido para um bucket:
jindo admin -listAccessPolicies oss://<bucket_name>.<dls_endpoint>/ -
Excluir todos os endereços registrados com prefixo personalizado para um bucket:
Execute o comando unsetRootPolicy a seguir para excluir todos os endereços registrados associados a um prefixo personalizado de um bucket:
jindo admin -unsetRootPolicy oss://<bucket_name>.<dls_endpoint>/ hdfs://<your_ns_name>/
-
Referências
Para mais informações sobre os comandos do RootPolicy, consulte o Guia do usuário da CLI do Jindo.