在非EMR集群中部署JindoSDK

本文为您介绍在非EMR集群环境中部署JindoSDK的具体步骤和配置要求,包括下载JindoSDK、环境变量配置,以及如何修改相应的配置文件。

部署JindoSDK

在非EMR环境下部署JindoSDK,您可以灵活选择阿里云ECS实例或其他云服务及自建服务器。本文将以阿里云ECS实例为例,连接实例操作请参见连接ECS实例

  1. 执行以下命令,下载指定版本的JindoSDK TAR包。

    JindoSDK的版本说明,请参见JindoSDK版本记录本文以6.3.4版本,Linux x86平台为例。其他平台请参见多平台部署JindoSDK

    wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/6.3.4/jindosdk-6.3.4-linux.tar.gz
  2. 执行以下命令,解压JindoSDK JAR包。

    tar zxvf jindosdk-6.3.4-linux.tar.gz
  3. 配置环境变量。

    重要

    请将安装目录和环境变量部署到所有所需节点上。

    例如,执行以下命令,将安装包内容解压在/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

修改配置

Hadoop配置文件

执行以下命令,配置OSS/OSS-HDFS实现类及AccessKey。

  1. 编辑Hadoop的core-site.xml配置文件。

    vim <HADOOP_HOME>/etc/hadoop/core-site.xml
  2. 将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>
  3. 将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>
  4. 配置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_AccessKey_id>
fs.oss.accessKeySecret = <your_AccessKey_secret> 

免密访问

使用免密访问之前,请先确认您使用的为阿里云ECS实例,并且该实例已绑定过RAM角色。更多信息,请参见通过ECS实例RAM角色授权ECS访问其他云服务

示例代码如下所示。

[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