O service Hadoop Distributed File System (HDFS) do Object Storage Service (OSS), também conhecido como JindoFS, é totalmente compatível com as interfaces do HDFS e suporta operações no nível de diretório. O kit de desenvolvimento de software (SDK) Jindo permite que aplicativos de computação e análise do Apache Hadoop, como MapReduce, Hive, Spark e Flink, acessem o service OSS-HDFS. Este tópico descreve como implantar o JindoSDK em uma instância do Elastic Compute Service (ECS) e executar operações comuns para começar a usar o service OSS-HDFS.
Se você usar um cluster do E-MapReduce (EMR) do Alibaba Cloud, poderá conectá-lo ao service OSS-HDFS. Para mais informações, consulte EMR集群接入OSS-HDFS服务快速入门.
Pré-requisitos
Uma conta do Alibaba Cloud possui as permissões necessárias por padrão. Se você usar um usuário do Resource Access Management (RAM) para acessar o service OSS-HDFS, conceda as permissões necessárias a esse usuário. Para obter mais informações, consulte Grant a RAM user permissions to connect a non-EMR cluster to the OSS-HDFS service.
Por exemplo, se você usar o ECS do Alibaba Cloud para a implantação, precisará purchase an ECS instance.
Crie um ambiente Hadoop. Para mais detalhes, consulte Create a Hadoop runtime environment.
Ative o service OSS-HDFS para um bucket e autorize o acesso ao service. Para saber mais, consulte Enable the OSS-HDFS service.
Tutorial em vídeo
O vídeo a seguir mostra como conectar rapidamente um cluster não EMR ao service OSS-HDFS e executar operações comuns.
Procedimento
Conecte-se à instância do ECS. Para mais informações, consulte Connect to an ECS instance.
Baixe e descompacte o pacote JAR do JindoSDK. Para baixar o pacote, acesse GitHub.
-
Execute o comando a seguir para descompactar o pacote JAR do JindoSDK.
O exemplo a seguir assume que o pacote foi descompactado no diretório
jindosdk-x.x.x-linux.tar.gz. Se você usar uma versão diferente do JindoSDK, substitua o nome do pacote pelo nome real do arquivo.tar zxvf jindosdk-x.x.x-linux.tar.gzNotax.x.x representa o número da versão do pacote JAR do JindoSDK.
-
Configure as variáveis de ambiente.
-
Configure
JINDOSDK_HOME.O exemplo a seguir assume que o pacote foi descompactado no diretório /usr/lib/jindosdk-x.x.x-linux:
export JINDOSDK_HOME=/usr/lib/jindosdk-x.x.x-linux -
Configure
HADOOP_CLASSPATH.export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${JINDOSDK_HOME}/lib/*ImportanteImplante o diretório de instalação e as variáveis de ambiente em todos os nós necessários.
-
-
Configure a classe de implementação do service OSS-HDFS e o par de AccessKey.
-
Execute o comando a seguir para abrir o arquivo de configuração core-site.xml do Hadoop.
vim /usr/local/hadoop/etc/hadoop/core-site.xml -
No arquivo core-site.xml, configure a classe de implementação DLS do JindoSDK.
<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, configure o par de AccessKey da sua conta do Alibaba Cloud ou de um usuário do RAM que tenha as permissões necessárias.
Para obter mais informações sobre as permissões necessárias para um usuário do RAM neste cenário, consulte Grant a RAM user permissions to connect a non-EMR cluster to the OSS-HDFS service.
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>xxx</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>xxx</value> </property> </configuration>
-
-
Configure o endpoint do service OSS-HDFS.
Configure um endpoint para acessar um bucket do OSS usando o service OSS-HDFS. O formato recomendado para o caminho de acesso é
oss://<Bucket>.<Endpoint>/<Object>. Por exemplo,oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt. Após concluir a configuração, o JindoSDK usa o endpoint no caminho de acesso para acessar a API do service OSS-HDFS correspondente. -
Use comandos do HDFS Shell para executar operações comuns do OSS-HDFS.
-
Envie um arquivo
Para enviar o arquivo examplefile.txt do diretório raiz local para o examplebucket, execute o seguinte comando:
hdfs dfs -put examplefile.txt oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/ -
Baixe um arquivo
Para baixar o arquivo exampleobject.txt do examplebucket para o diretório local /tmp, execute o seguinte comando:
hdfs dfs -get oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt /tmp/
Para mais detalhes sobre as operações, consulte Access OSS-HDFS using Hadoop shell commands.
-