O JindoSDK é um cliente OSS desenvolvido para os ecossistemas Hadoop e Spark. Ele implementa um sistema de arquivos Hadoop altamente otimizado e baseado no OSS. Em comparação ao cliente OSS da comunidade Hadoop, o JindoSDK oferece melhor desempenho nas consultas do Impala a dados armazenados no OSS-HDFS (JindoFS).
Pré-requisitos
Contas Alibaba Cloud possuem as permissões necessárias por padrão. Se você utilizar um usuário do Resource Access Management (RAM) para acessar o serviço OSS-HDFS, conceda as permissões adequadas a esse usuário. Para mais informações, consulte Conceder permissões a um usuário RAM para conectar um cluster não EMR ao serviço OSS-HDFS.
Se a implantação ocorrer no Alibaba Cloud ECS, adquira uma instância ECS.
Crie um ambiente Hadoop. Para mais detalhes, consulte Criar um ambiente de execução Hadoop.
Ative o serviço OSS-HDFS em um bucket e autorize o acesso. Consulte Ativar o serviço OSS-HDFS para obter orientações completas.
Procedimento
Conecte-se à instância ECS. Para instruções detalhadas, consulte Conectar-se a uma instância ECS.
-
Configure o JindoSDK.
Baixe a versão mais recente do pacote JAR do JindoSDK. Para baixar o JindoSDK, acesse o GitHub..
-
Descompacte o pacote JAR do JindoSDK.
O exemplo a seguir demonstra como descompactar um pacote chamado
jindosdk-x.x.x-linux.tar.gz. Substitua o nome do pacote pela versão real baixada.tar zxvf jindosdk-x.x.x-linux.tar.gzNotax.x.x representa o número da versão do pacote JAR do JindoSDK.
-
Copie o pacote JAR do JindoSDK baixado para o caminho definido pelo classpath.
cp jindosdk-x.x.x-linux/lib/*.jar $HIVE_HOME/lib/
-
Configure a classe de implementação do OSS-HDFS e especifique o par de AccessKey usado para acessar o bucket.
-
Configure a classe de implementação do OSS-HDFS no arquivo core-site.xml do Impala.
<configuration> <property> <name>fs.AbstractFileSystem.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOSS</value> </property> <property> <name>fs.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value> </property> </configuration> -
No arquivo core-site.xml do Impala, especifique o AccessKey ID e o AccessKey Secret da conta usada para acessar o bucket com OSS-HDFS ativado.
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>LTAI********</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>KZo1********</value> </property> </configuration>
-
-
Configure o endpoint do OSS-HDFS.
Especifique o endpoint do OSS-HDFS para acessar buckets no Object Storage Service (OSS) por meio desse serviço. Recomendamos configurar o caminho de acesso ao OSS-HDFS no formato
oss://{yourBucketName}.{yourBucketEndpoint}/{path}(exemplo:oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt). Após essa configuração, o JindoSDK invocará a operação correspondente do OSS-HDFS com base no endpoint especificado no caminho de acesso.Também é possível definir o endpoint do OSS-HDFS por outros métodos. Endpoints configurados de formas distintas possuem prioridades diferentes. Para mais informações, consulte Início rápido: Conectar um cluster não EMR ao serviço OSS-HDFS.
-
Use o Impala para consultar dados armazenados no OSS-HDFS.
-
Crie uma tabela.
CREATE EXTERNAL TABLE customer_demographics ( `cd_demo_sk` INT, `cd_gender` STRING, `cd_marital_status` STRING, `cd_education_status` STRING, `cd_purchase_estimate` INT, `cd_credit_rating` STRING, `cd_dep_count` INT, `cd_dep_employed_count` INT, `cd_dep_college_count` INT) STORED AS PARQUET LOCATION 'oss://bucket.endpoint/dir'; -
Consulte os dados da tabela.
select * from customer_demographics;
-