O serviço Object Storage Service (OSS)-Hadoop Distributed File System (HDFS), também conhecido como JindoFS, é totalmente compatível com interfaces 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 serviço OSS-HDFS. Este tópico descreve como implantar o JindoSDK em uma instância Elastic Compute Service (ECS) e executar operações comuns para começar a usar o serviço OSS-HDFS.
Se você utiliza um cluster Alibaba Cloud E-MapReduce (EMR), é possível conectá-lo diretamente ao serviço OSS-HDFS. Para mais informações, consulte Início rápido para conectar um cluster EMR ao serviço OSS-HDFS.
Pré-requisitos
Uma conta Alibaba Cloud possui as permissões necessárias por padrão. Caso utilize 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 detalhes, consulte Conceder permissões a um usuário RAM para conectar um cluster não EMR ao serviço OSS-HDFS.
Por exemplo, se a implantação for no Alibaba Cloud ECS, adquira uma instância ECS.
Ambiente Hadoop criado. Consulte Crie um ambiente de execução Hadoop para orientações.
Serviço OSS-HDFS ativado em um bucket, com acesso autorizado. Siga as instruções em Ative o serviço OSS-HDFS.
Tutorial em vídeo
O vídeo abaixo demonstra como conectar rapidamente um cluster não EMR ao serviço OSS-HDFS e realizar operações comuns.
Procedimento
Conecte-se à instância ECS. Para mais informações, consulte Conectar-se a uma instância ECS.
Baixe e descompacte o pacote JAR do JindoSDK. Para baixe o pacote, acesse GitHub.
-
Execute o comando a seguir para descompactar o pacote JAR do JindoSDK.
O exemplo abaixo mostra como descompactar
jindosdk-x.x.x-linux.tar.gz. Se estiver utilizando outra versão 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 considera 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 serviço 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 Alibaba Cloud ou de um usuário RAM com as permissões necessárias.
Para mais informações sobre as permissões exigidas para um usuário RAM neste cenário, consulte Conceder permissões a um usuário RAM para conectar um cluster não EMR ao serviço OSS-HDFS.
<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 serviço OSS-HDFS.
É obrigatório configurar um Endpoint para acessar um bucket do OSS por meio do serviço 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 utilizará o Endpoint especificado no caminho para acessar a API correspondente do serviço OSS-HDFS. -
Utilize comandos do HDFS Shell para executar operações comuns no OSS-HDFS.
-
Carregar um arquivo
Para carregar 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/ -
Baixar um arquivo
Para baixe o arquivo exampleobject.txt do examplebucket para o diretório local /tmp, execute o comando abaixo:
hdfs dfs -get oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt /tmp/
Para mais detalhes sobre as operações disponíveis, consulte Acessar o OSS-HDFS usando comandos shell do Hadoop.
-