Este tópico descreve como implantar o JindoSDK em um cluster não EMR. O conteúdo abrange as etapas para baixe o JindoSDK, configure variáveis de ambiente e modifique arquivos de configuração.
Implantar o JindoSDK
É possível implantar o JindoSDK em um ambiente não EMR, como em uma instância ECS da Alibaba Cloud, em outros services da Alibaba Cloud ou em seus servidores on-premises. Este tópico utiliza uma instância ECS da Alibaba Cloud como exemplo. Para obter mais informações sobre como se conectar a uma instância ECS, consulte Connect to an ECS instance.
-
Execute o comando a seguir para baixe o pacote TAR de uma versão específica do JindoSDK.
Este tópico usa a versão 6.3.4 para a plataforma Linux x86 como exemplo.
wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/6.3.4/jindosdk-6.3.4-linux.tar.gz -
Execute o comando a seguir para descompactar o pacote JAR do JindoSDK.
tar zxvf jindosdk-6.3.4-linux.tar.gz -
Configure as variáveis de ambiente.
ImportanteVocê deve implantar a pasta de instalação e configure as variáveis de ambiente em todos os nós necessários.
Por exemplo, execute o comando a seguir para extrair o pacote de instalação no diretório
/usr/lib/jindosdk-6.3.4.export JINDOSDK_HOME=/usr/lib/jindosdk-6.3.4-linux export JINDOSDK_CONF_DIR=${JINDOSDK_HOME}/conf export PATH=${PATH}:${JINDOSDK_HOME}/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${JINDOSDK_HOME}/lib/native
Modifique configurações
Arquivo de configuração do Hadoop
Configure a classe de implementação e o AccessKey para OSS ou OSS-HDFS.
-
Edite o arquivo de configuração
core-site.xmldo Hadoop.vim <HADOOP_HOME>/etc/hadoop/core-site.xml -
Adicione a classe de implementação para OSS ou OSS-HDFS ao arquivo
core-site.xml.<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> -
Adicione o AccessKey ID e o AccessKey secret do bucket OSS ou OSS-HDFS ao arquivo
core-site.xml.<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 para o service OSS ou OSS-HDFS.
É necessário configure um Endpoint para acessar um bucket OSS ou OSS-HDFS. Utilize o seguinte formato 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 utiliza o Endpoint no caminho de acesso para chamar a API correspondente do service OSS ou OSS-HDFS. Também é possível configure um Endpoint padrão para simplificar o caminho de acesso para o formatooss://<Bucket>/<Object>. Por exemplo:oss://examplebucket/exampleobject.txt.<configuration> <property> <name>fs.oss.endpoint</name> <value>xxx</value> </property> </configuration>Para obter mais informações sobre os métodos de configuração, consulte os seguintes tópicos:
Arquivo de configuração não Hadoop
Ao utilizar componentes fora do ecossistema Hadoop, como JindoFuse e a interface de linha de comando (CLI) do Jindo, o JindoSDK lê o arquivo de configuração da pasta especificada pela variável de ambiente JINDOSDK_CONF_DIR.
Arquivo de configuração
Utilize um arquivo de configuração no estilo INI chamado jindosdk.cfg. O código a seguir fornece um exemplo.
[common]
logger.dir = /tmp/jindosdk-log
[jindosdk]
# The Endpoint of the created OSS bucket. For example, for the China (Hangzhou) region, enter oss-cn-hangzhou.aliyuncs.com.
# The Endpoint of the created OSS-HDFS bucket. For example, for the China (Hangzhou) region, enter cn-hangzhou.oss-dls.aliyuncs.com.
fs.oss.endpoint = <your_Endpoint>
# The AccessKey ID and AccessKey secret used to access OSS. The AccessKey of an Alibaba Cloud account has permissions to access all APIs. This poses a high security threat. Create and use a Resource Access Management (RAM) user for API calls or routine O&M. To create a RAM user, log on to the RAM console.
fs.oss.accessKeyId = <your_AccessKey_id>
fs.oss.accessKeySecret = <your_AccessKey_secret>
Acesso sem senha
Para utilizar o acesso sem senha, é necessário usar uma instância ECS da Alibaba Cloud que tenha uma função RAM de instância anexada. Para obter mais informações, consulte Instance RAM roles.
O código a seguir fornece um exemplo.
[common]
logger.dir = /tmp/jindosdk-log
[jindosdk]
# The Endpoint of the created OSS bucket. For example, for the China (Hangzhou) region, enter oss-cn-hangzhou.aliyuncs.com.
# The Endpoint of the created OSS-HDFS bucket. For example, for the China (Hangzhou) region, enter cn-hangzhou.oss-dls.aliyuncs.com.
fs.oss.endpoint = <your_Endpoint>
fs.oss.provider.endpoint = ECS_ROLE
fs.oss.provider.format = JSON