全部產品
Search
文件中心

E-MapReduce:在非EMR叢集中部署JindoSDK

更新時間:Jul 16, 2024

本文為您介紹在非EMR叢集環境中部署JindoSDK的具體步驟和配置要求,包括下載JindoSDK、環境變數配置,以及如何修改相應的設定檔。

部署JindoSDK

在非EMR環境下部署JindoSDK,您可以靈活選擇阿里雲ECS執行個體或其他雲端服務及自建伺服器。本文將以阿里雲ECS執行個體為例,串連執行個體操作請參見串連ECS執行個體

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

    本文以6.3.4版本,Linux x86平台為例。

    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