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, precisará crie uma instância.
Um ambiente Hadoop está criado. Para mais informações sobre como instale o Hadoop, consulte Hadoop使用JindoSDK访问OSS-HDFS服务.
O Trino está implantado. Para mais detalhes, acesse Deploying Trino.
O OSS-HDFS está ativado para um bucket e as permissões de acesso ao OSS-HDFS estão concedidas. Para mais informações, consulte 开通OSS-HDFS服务.
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 baixe o JindoSDK, visite o GitHub.
-
Descompacte o pacote JAR do JindoSDK.
O código de exemplo a seguir mostra 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 indica 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 o 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.
Você deve especifique o endpoint do OSS-HDFS para acessar buckets no Object Storage Service (OSS) por meio desse serviço. Recomendamos configure 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 configure o caminho de acesso, o JindoSDK chama a operação correspondente do OSS-HDFS com base no endpoint especificado no caminho.Você também pode configure o endpoint do OSS-HDFS por outros métodos. Endpoints configurados por diferentes métodos têm 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 crie um schema para o OSS e execute instruções SQL para consultar os dados armazenados no OSS-HDFS. Como o Trino usa o Hive Metastore como dependência, instale e implante o JindoSDK no serviço Hive. Para mais informações, 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;
-