このトピックでは、Elastic MapReduce(EMR)以外の環境に JindoSDK をデプロイする方法について説明します。
JindoSDK をデプロイする
Elastic Compute Service(ECS)インスタンス、他のクラウドサービス、またはセルフマネージドサーバーなど、EMR 以外の環境に JindoSDK をデプロイできます。このトピックでは、ECS インスタンスを使用します。 ECS インスタンスへの接続方法の詳細については、コンソールで ECS インスタンスを作成および管理する(簡易版) トピックの「インスタンスに接続する」セクションをご参照ください。
次のコマンドを実行して、特定のバージョンの TAR パッケージをダウンロードします。
このトピックでは、Linux X86 の JindoSDK 6.3.4 のパッケージをダウンロードします。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 の構成ファイルを使用して JindoSDK をデプロイする
次の手順を実行して、Object Storage Service(OSS)または OSS-HDFS の実装クラスと AccessKey ペアを設定します。
次のコマンドを実行して、Hadoop の
core-site.xml構成ファイルを編集します。vim <HADOOP_HOME>/etc/hadoop/core-site.xmlHadoop の
core-site.xml構成ファイルで、OSS または OSS-HDFS の実装クラスを設定します。<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>Hadoop の
core-site.xml構成ファイルで、目的の OSS または OSS-HDFS のバケットにアクセスするために使用する AccessKey ID と AccessKey シークレットを指定します。<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 または OSS-HDFS のエンドポイントを設定する必要があります。
oss://<Bucket>.<Endpoint>/<Object>形式でアクセスパスを指定することをお勧めします。例:oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt。アクセスパスを指定すると、JindoSDK はパスで指定されたエンドポイントから OSS または OSS-HDFS にアクセスします。次の簡略化された形式でデフォルトのエンドポイントを指定することもできます:oss://<Bucket>/<Object>。例:oss://examplebucket/exampleobject.txt。<configuration> <property> <name>fs.oss.endpoint</name> <value>xxx</value> </property> </configuration>詳細については、次のリファレンスをご参照ください。
Hadoop の構成ファイル以外の構成ファイルを使用して JindoSDK をデプロイする
JindoFuse や Jindo CLI などの Hadoop 以外のコンポーネントを使用する場合、JindoSDK は環境変数 JINDOSDK_CONF_DIR が配置されているディレクトリにアクセスして構成ファイルを読み取ります。
構成ファイル
.ini 形式の構成ファイルを使用します。この例では、コンパイル後の構成ファイルの名前は jindosdk.cfg です。次のコードは、構成ファイルの設定項目を示しています。
[common]
logger.dir = /tmp/jindosdk-log
[jindosdk]
# 作成された OSS バケットのエンドポイント。たとえば、OSS バケットが中国 (杭州) リージョンに作成されている場合、エンドポイントは oss-cn-hangzhou.aliyuncs.com です。
# 作成された OSS-HDFS バケットのエンドポイント。たとえば、OSS-HDFS バケットが中国 (杭州) リージョンに作成されている場合、エンドポイントは cn-hangzhou.oss-dls.aliyuncs.com です。
fs.oss.endpoint = <your_Endpoint>
# OSS にアクセスするために使用する AccessKey ID と AccessKey シークレット。Alibaba Cloud アカウントには、すべての API オペレーションを呼び出す権限があります。Alibaba Cloud アカウントの AccessKey ペアが漏洩した場合、データが深刻なセキュリティリスクにさらされる可能性があります。API オペレーションの呼び出しや日常の O&M の実行には、RAM ユーザーを使用することをお勧めします。RAM ユーザーを作成するには、Resource Access Management (RAM) コンソールにログオンします。
fs.oss.accessKeyId = <your_AccessKey_id>
fs.oss.accessKeySecret = <your_AccessKey_secret> パスワードなしで OSS または OSS-HDFS にアクセスする
パスワードなしで OSS または OSS-HDFS にアクセスする前に、必要な RAM ロールが割り当てられている ECS インスタンスを使用していることを確認してください。詳細については、インスタンス RAM ロールを使用してリソースへのアクセスを制御する をご参照ください。
サンプルコード:
[common]
logger.dir = /tmp/jindosdk-log
[jindosdk]
# 作成された OSS バケットのエンドポイント。たとえば、OSS バケットが中国 (杭州) リージョンに作成されている場合、エンドポイントは oss-cn-hangzhou.aliyuncs.com です。
# 作成された OSS-HDFS バケットのエンドポイント。たとえば、OSS-HDFS バケットが中国 (杭州) リージョンに作成されている場合、エンドポイントは cn-hangzhou.oss-dls.aliyuncs.com です。
fs.oss.endpoint = <your_Endpoint>
fs.oss.provider.endpoint = ECS_ROLE
fs.oss.provider.format = JSON