本文为您介绍在非EMR集群中部署JindoSDK的具体步骤。
前提条件
已连接ECS实例。具体操作,请参见 连接ECS实例。部署JindoSDK
- 执行以下命令,下载4.6.2版本的JindoSDK JAR包。
wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/4.6.2/jindosdk-4.6.2.tar.gz
- 执行以下命令,解压JindoSDK JAR包。
tar zxvf jindosdk-4.6.2.tar.gz
- 配置环境变量。例如,执行以下命令将安装包内容解压在/usr/lib/jindosdk-4.6.2目录。
export JINDOSDK_HOME=/usr/lib/jindosdk-4.6.2 export JINDOSDK_CONF_DIR=${JINDOSDK_HOME}/conf export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${JINDOSDK_HOME}/lib/native export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${JINDOSDK_HOME}/lib/*
重要 请将安装目录和环境变量部署到所有所需节点上。
Hadoop配置文件
执行以下命令,配置OSS/OSS-HDFS实现类及AccessKey。
- 进入Hadoop的
core-site.xml
配置文件。vim /usr/local/hadoop/etc/hadoop/core-site.xml
- 将OSS/OSS-HDFS实现类配置到Hadoop的
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>
- 将OSS/OSS-HDFS的Bucket对应的AccessKey Id、AccessKey Secret预先配置在Hadoop的
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>
- 配置OSS/OSS-HDFS服务的Endpoint。
访问OSS/OSS-HDFS Bucket时需要配置Endpoint。建议您设置访问路径格式为
oss://<Bucket>.<Endpoint>/<Object>
,例如:oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt
。配置完成后,JindoSDK会根据访问路径中的Endpoint访问对应的OSS、OSS-HDFS服务接口。此外,您也可以通过以下方式配置默认Endpoint,简化访问路径格式为oss://<Bucket>/<Object>
。例如:oss://examplebucket/exampleobject.txt
。<configuration> <property> <name>fs.oss.endpoint</name> <value>xxx</value> </property> </configuration>
非Hadoop配置文件
在使用JindoFuse、Jindo CLI等非Hadoop生态组件时,会访问环境变量JINDOSDK_CONF_DIR
所在的目录读取配置文件。
配置文件
使用INI风格配置文件,配置文件的文件名为jindosdk.cfg
,示例代码如下:
[common]
logger.dir = /tmp/jindosdk-log
[jindosdk]
# 已创建OSS Bucket对应的Endpoint。以华东1(杭州)为例,填写为oss-cn-hangzhou.aliyuncs.com。
# 已创建OSS-HDFS Bucket对应的Endpoint。以华东1(杭州)为例,填写为cn-hangzhou.oss-dls.aliyuncs.com。
fs.oss.endpoint = <your_endpoint>
# 用于访问OSS的AccessKey ID和AccessKey Secret。阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
fs.oss.accessKeyId = <your_key_id>
fs.oss.accessKeySecret = <your_key_secret>
免密访问
使用免密访问之前,请先确认您使用的为阿里云ECS实例,并且该实例已绑定过RAM角色。更多信息,请参见授予实例RAM角色。
示例如下:
[common]
logger.dir = /tmp/jindosdk-log
[jindosdk]
# 已创建OSS Bucket对应的Endpoint。以华东1(杭州)为例,填写为oss-cn-hangzhou.aliyuncs.com。
# 已创建OSS-HDFS Bucket对应的Endpoint。以华东1(杭州)为例,填写为cn-hangzhou.oss-dls.aliyuncs.com。
fs.oss.endpoint = <your_endpoint>
fs.oss.provider.endpoint = ECS_ROLE
fs.oss.provider.format = JSON