O JindoSDK é um cliente OSS para os ecossistemas Hadoop e Spark que fornece uma implementação altamente otimizada do Hadoop FileSystem. Em comparação com os clientes OSS do Hadoop, o JindoSDK oferece melhor desempenho quando você usa o Spark para consultar dados no OSS-HDFS.
Pré-requisitos
-
Para usar o Elastic Compute Service (ECS) como ambiente de implantação, você precisa criar uma instância.
-
Um ambiente Hadoop foi criado. Para obter mais informações, consulte Acessar o serviço OSS-HDFS com o JindoSDK no Hadoop.
-
O Apache Spark está implantado. Para obter mais informações, acesse Apache Spark.
-
O OSS-HDFS está ativado para um bucket e as permissões de acesso ao OSS-HDFS foram concedidas. Para obter mais informações, consulte Ativar o serviço OSS-HDFS.
Procedimento
-
Conecte-se à instância ECS. Para obter mais informações, 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 GitHub.
-
Descompacte o pacote JAR do JindoSDK.
O 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 do pacote pelo nome do pacote 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.
-
Copie os arquivos JAR do JindoSDK baixados para o classpath.
cp jindosdk-x.x.x-linux/lib/*.jar $SPARK_HOME/jars/
-
-
Configure a classe de implementação do OSS-HDFS e especifique o par de AccessKey que você deseja usar para acessar o bucket.
-
Configure as definições no arquivo core-site.xml
-
Configure a classe de implementação do OSS-HDFS no arquivo core-site.xml do Spark.
<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> -
Configure o AccessKey ID e o AccessKey Secret usados para acessar o bucket com OSS-HDFS ativado no arquivo de configuração core-site.xml do Spark.
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>LTAI********</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>KZo1********</value> </property> </configuration>
-
-
Configure as definições ao enviar jobs do Spark
O exemplo a seguir mostra como configurar a classe de implementação do OSS-HDFS e especificar o par de AccessKey usado para acessar um bucket ao enviar jobs do Spark:
spark-submit --conf spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.jindodata.oss.OSS --conf spark.hadoop.fs.oss.impl=com.aliyun.jindodata.oss.JindoOssFileSystem --conf spark.hadoop.fs.oss.accessKeyId=LTAI******** --conf spark.hadoop.fs.oss.accessKeySecret=KZo149BD9GLPNiDIEmdQ7d****
-
-
Configure o endpoint do OSS-HDFS.
É necessário especificar o endpoint do OSS-HDFS para usar o OSS-HDFS no acesso a buckets do Object Storage Service (OSS). Recomenda-se 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 configurar o caminho de acesso, o JindoSDK chama a operação correspondente do OSS-HDFS com base no endpoint especificado no caminho de acesso.Também é possível configurar o endpoint do OSS-HDFS por outros métodos. Os endpoints configurados por diferentes métodos têm prioridades diferentes. Para obter mais informações, consulte Início rápido: Conectar um cluster não EMR ao serviço OSS-HDFS.
-
Use o Spark para acessar o OSS-HDFS.
-
Crie uma tabela.
create table test_oss (c1 string) location "oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/"; -
Insira dados na tabela.
insert into table test_oss values ("testdata"); -
Consulte dados na tabela.
select * from test_oss;
-