O OSS-HDFS oferece suporte ao RootPolicy. Use o RootPolicy para configurar um prefixo personalizado para o OSS-HDFS. Isso permite executar jobs no OSS-HDFS sem modificar o prefixo de acesso original hdfs://.
Pré-requisitos
Crie um ambiente Hadoop, um cluster Hadoop ou um cliente Hadoop e instale o Hadoop. Para obter mais informações, consulte Etapa 2: Criar um ambiente de execução do Hadoop.
Ative o OSS-HDFS para buckets específicos. Para obter mais informações, consulte Ativar o OSS-HDFS e conceder permissões de acesso.
Instale e configure o JindoSDK 4.5.0 ou posterior. Para obter 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 e especifique um endereço registrado que contenha 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
O nome do bucket para o qual o OSS-HDFS está ativado.
dls_endpoint
O endpoint da região onde está localizado o bucket com o OSS-HDFS ativado. Exemplo:
cn-hangzhou.oss-dls.aliyuncs.com.Para evitar a adição repetitiva do parâmetro <dls_endpoint> ao comando SetRootPolicy sempre que você execute 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
O nsname personalizado usado para acessar o OSS-HDFS. Aceita strings não vazias, como
test. A versão atual oferece suporte apenas ao diretório raiz. -
-
Configure 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.xmldo 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 buckets com vírgulas (
,). -
Para verificar se o RootPolicy está configurado corretamente, execute o comando a seguir:
hadoop fs -ls hdfs://<your_ns_name>/Se o sistema retornar os resultados a seguir, o RootPolicy estará configurado corretamente:
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 um prefixo personalizado para acessar o OSS-HDFS.
Após reiniciar serviços como Hive e Spark, acesse o OSS-HDFS com um prefixo personalizado.
-
Opcional. Use o RootPolicy para outras finalidades.
-
Liste todos os endereços registrados que contêm um prefixo personalizado definido para um bucket.
Para listar todos os endereços registrados que contêm um prefixo personalizado definido para um bucket, execute o comando listAccessPolicies a seguir:
jindo admin -listAccessPolicies oss://<bucket_name>.<dls_endpoint>/ -
Exclua todos os endereços registrados que contêm um prefixo personalizado definido para um bucket:
Execute o comando unsetRootPolicy a seguir:
jindo admin -unsetRootPolicy oss://<bucket_name>.<dls_endpoint>/ hdfs://<your_ns_name>/
-
Referências
Para obter mais informações sobre os comandos do RootPolicy, consulte o Guia do usuário da CLI do Jindo.