O Trino é um mecanismo de consulta SQL distribuído e open source para execução de consultas analíticas interativas. Este tópico descreve como usar o JindoSDK com o Trino para consultar dados armazenados no OSS-HDFS.
Pré-requisitos
Por exemplo, se você usar o Elastic Compute Service (ECS) como ambiente de implantação, será necessário create an instance.
Ambiente Hadoop criado. Para obter mais informações sobre a instalação do Hadoop, consulte Hadoop使用JindoSDK访问OSS-HDFS服务.
Trino implantado. Para mais detalhes, acesse Deploying Trino.
OSS-HDFS ativado para um bucket e permissões de acesso concedidas. Para mais informações, consulte Enable OSS-HDFS service.
Procedimento
Conecte-se à instância ECS. Para mais informações, consulte Connect to an ECS instance.
-
Configure o JindoSDK.
Baixe a versão mais recente do pacote JAR do JindoSDK. Para baixar o JindoSDK, acesse GitHub.
-
Descompacte o pacote JAR do JindoSDK.
O código de exemplo a seguir demonstra como descompactar um pacote chamado
jindosdk-x.x.x-linux.tar.gz. Se você usar outra versão do JindoSDK, substitua o nome pelo arquivo JAR correspondente.tar zxvf jindosdk-x.x.x-linux.tar.gzNotax.x.x representa o número da versão do pacote JAR do JindoSDK.
-
Instale o pacote JAR do JindoSDK baixado no caminho especificado pelo classpath.
cp jindosdk-x.x.x-linux/lib/*.jar $Trino_HOME/plugin/hive-hadoop2/
-
Configure a classe de implementação do OSS-HDFS e especifique o par AccessKey para acessar o bucket.
-
Configure a classe de implementação do OSS-HDFS no arquivo de configuração do Hadoop core-site.xml em todos os nós do Trino.
<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 de todos os nós do Trino, especifique o AccessKey ID e o AccessKey secret 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). 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 definir o caminho de acesso, o JindoSDK chama a operação correspondente do OSS-HDFS com base no endpoint especificado.Também é possível configurar o endpoint do OSS-HDFS por outros métodos. Endpoints definidos por métodos diferentes possuem prioridades distintas. Para mais informações, consulte Quick start: Connect a non-EMR cluster to the OSS-HDFS service.
ImportanteApós concluir as configurações anteriores, reinicie o Trino para que as alterações entrem em vigor.
-
Consulte dados armazenados no OSS-HDFS
O exemplo a seguir usa o HiveCatalog. Use o Trino para criar um schema para o OSS e execute instruções SQL para consultar os dados armazenados no OSS-HDFS. Como o Trino depende do Hive Metastore, instale e implante o JindoSDK também no serviço Hive. Para mais detalhes, consulte Use JindoSDK with Hive to process data stored in OSS-HDFS.
-
Faça login no console do Trino.
trino --server <Trino_server_address>:<Trino_server_port> --catalog hive -
Crie um schema para o OSS.
create schema testDB with (location='oss://{yourBucketName}.{yourBucketEndpoint}/{schema_dir}'); -
Use o schema.
use testDB; -
Crie uma tabela.
create table tbl (key int, val int); -
Insira dados na tabela.
insert into tbl values (1,666); -
Consulte os dados da tabela.
select * from tbl;
-