このトピックでは、非 E-MapReduce (EMR) クラスターに JindoSDK をデプロイする方法について説明します。JindoSDK のダウンロード、環境変数の設定、設定ファイルの変更手順について説明します。
JindoSDK のデプロイ
JindoSDK は、Alibaba Cloud Elastic Compute Service (ECS) インスタンス、他の Alibaba Cloud サービス、またはオンプレミスサーバーなどの非 EMR 環境にデプロイできます。このトピックでは、ECS インスタンスを例とします。ECS インスタンスへの接続方法の詳細については、「ECS インスタンスへの接続」をご参照ください。
次のコマンドを実行して、特定の JindoSDK バージョンの TAR パッケージをダウンロードします。
このトピックでは、Linux x86 プラットフォーム向けのバージョン 6.3.4 を例とします。
wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/6.3.4/jindosdk-6.3.4-linux.tar.gz次のコマンドを実行して、JindoSDK パッケージを解凍します。
tar zxvf jindosdk-6.3.4-linux.tar.gz環境変数を設定します。
重要インストールフォルダーを配置し、必要なすべてのノードで環境変数を設定する必要があります。
たとえば、インストールパッケージを
/usr/lib/jindosdk-6.3.4-linuxディレクトリに展開した場合は、次のコマンドを実行します。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.xmlOSS または OSS-HDFS の実装クラスを
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 バケットの AccessKey ID と AccessKey シークレットを
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 サービスのエンドポイントを設定します。
OSS または OSS-HDFS バケットにアクセスするには、エンドポイントを設定する必要があります。アクセスパスには、
oss://<Bucket>.<Endpoint>/<Object>の形式を使用します。例:oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt。設定が完了すると、JindoSDK はアクセスパスのエンドポイントを使用して、対応する OSS または OSS-HDFS サービスの API を呼び出します。また、デフォルトのエンドポイントを設定して、アクセスパスを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 は JINDOSDK_CONF_DIR 環境変数で指定されたフォルダーから設定ファイルを読み取ります。
設定ファイル
jindosdk.cfg という名前の INI 形式の設定ファイルを使用します。次にコード例を示します。
[common]
logger.dir = /tmp/jindosdk-log
[jindosdk]
# 作成した OSS バケットのエンドポイント。たとえば、中国 (杭州) リージョンの場合は、oss-cn-hangzhou.aliyuncs.com と入力します。
# 作成した OSS-HDFS バケットのエンドポイント。たとえば、中国 (杭州) リージョンの場合は、cn-hangzhou.oss-dls.aliyuncs.com と入力します。
fs.oss.endpoint = <your_Endpoint>
# OSS へのアクセスに使用する AccessKey ID と AccessKey シークレット。Alibaba Cloud アカウントの AccessKey は、すべての API にアクセスする権限を持っています。これは高いセキュリティリスクを伴います。API 呼び出しや日常の O&M (運用保守) には、Resource Access Management (RAM) ユーザーを作成して使用してください。RAM ユーザーを作成するには、RAM コンソールにログインしてください。
fs.oss.accessKeyId = <your_AccessKey_id>
fs.oss.accessKeySecret = <your_AccessKey_secret> パスワードレスアクセス
パスワードレスアクセスを使用するには、インスタンス RAM ロールをアタッチした Alibaba Cloud ECS インスタンスを使用する必要があります。詳細については、「インスタンス RAM ロール」をご参照ください。
次にコード例を示します。
[common]
logger.dir = /tmp/jindosdk-log
[jindosdk]
# 作成した OSS バケットのエンドポイント。たとえば、中国 (杭州) リージョンの場合は、oss-cn-hangzhou.aliyuncs.com と入力します。
# 作成した OSS-HDFS バケットのエンドポイント。たとえば、中国 (杭州) リージョンの場合は、cn-hangzhou.oss-dls.aliyuncs.com と入力します。
fs.oss.endpoint = <your_Endpoint>
fs.oss.provider.endpoint = ECS_ROLE
fs.oss.provider.format = JSON