本文為您介紹在非EMR集群環境中部署JindoSDK的具體步驟和配置要求,包括下載JindoSDK、環境變量配置,以及如何修改相應的配置文件。
部署JindoSDK
在非EMR環境下部署JindoSDK,您可以靈活選擇阿里云ECS實例或其他云服務及自建服務器。本文將以阿里云ECS實例為例,連接實例操作請參見連接ECS實例。
執行以下命令,下載指定版本的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
執行以下命令,解壓JindoSDK JAR包。
tar zxvf jindosdk-6.3.4-linux.tar.gz
配置環境變量。
重要請將安裝目錄和環境變量部署到所有所需節點上。
例如,執行以下命令,將安裝包內容解壓在
/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。
編輯Hadoop的
core-site.xml
配置文件。vim <HADOOP_HOME>/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_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