OSS-HDFS は RootPolicy をサポートしています。 RootPolicy を使用して、OSS-HDFS のカスタムプレフィックスを構成できます。 これにより、元のアクセス プレフィックス hdfs:// を変更せずに、ジョブを OSS-HDFS で実行できます。
前提条件
Hadoop 環境、Hadoop クラスタ、または Hadoop クライアントが作成されていること。 Hadoop のインストール方法の詳細については、「手順 2: Hadoop ランタイム環境を作成する」をご参照ください。
特定のバケットに対して OSS-HDFS が有効になっていること。 詳細については、「OSS-HDFS を有効にしてアクセス権限を付与する」をご参照ください。
JindoSDK 4.5.0 以降がインストールおよび構成されていること。 詳細については、「EMR 以外のクラスタを OSS-HDFS に接続する」をご参照ください。
手順
環境変数を構成します。
ECS インスタンスに接続します。 詳細については、「ECS インスタンスに接続する」をご参照ください。
インストールされている JindoSDK JAR パッケージの bin ディレクトリに移動します。
cd jindosdk-x.x.x/bin/説明x.x.x は、JindoSDK JAR パッケージのバージョン番号を示します。
jindosdk.cfgという名前の構成ファイルを作成し、次のパラメータを構成ファイルに追加します。[common] 次のデフォルト構成を保持します。 logger.dir = /tmp/jindo/ logger.sync = false logger.consolelogger = false logger.level = 0 logger.verbose = 0 logger.cleaner.enable = true hadoopConf.enable = false [jindosdk] 次のパラメータを指定します。 <!-- この例では、中国 (杭州) リージョンが使用されています。 実際のリージョンを指定してください。 --> fs.oss.endpoint = cn-hangzhou.oss-dls.aliyuncs.com <! -- OSS-HDFS へのアクセスに使用する AccessKey ID と AccessKey シークレットを構成します。 --> fs.oss.accessKeyId = yourAccessKeyId fs.oss.accessKeySecret = yourAccessKeySecret環境変数を構成します。
export JINDOSDK_CONF_DIR=<JINDOSDK_CONF_DIR><JINDOSDK_CONF_DIR> を
jindosdk.cfg構成ファイルの絶対パスに設定します。
RootPolicy を構成します。
バケットのカスタムプレフィックスを含む登録済みアドレスを指定するには、次の SetRootPolicy コマンドを実行します:
jindo admin -setRootPolicy oss://<bucket_name>.<dls_endpoint>/ hdfs://<your_ns_name>/次の表は、SetRootPolicy コマンドのパラメータについて説明しています。
パラメータ
説明
bucket_name
OSS-HDFS が有効になっているバケットの名前。
dls_endpoint
OSS-HDFS が有効になっているバケットが存在するリージョンのエンドポイント。 例:
cn-hangzhou.oss-dls.aliyuncs.com。RootPolicy を実行するたびに SetRootPolicy コマンドに <dls_endpoint> パラメータを繰り返し追加したくない場合は、次のいずれかの方法を使用して、Hadoop の
core-site.xmlファイルに構成項目を追加できます。方法 1:
<configuration> <property> <name>fs.oss.endpoint</name> <value><dls_endpoint></value> </property> </configuration>方法 2:
<configuration> <property> <name>fs.oss.bucket.<bucket_name>.endpoint</name> <value><dls_endpoint></value> </property> </configuration>
your_ns_name
OSS-HDFS へのアクセスに使用するカスタム nsname。
testなどの空でない文字列がサポートされています。 現在のバージョンでは、ルート ディレクトリのみがサポートされています。アクセス ポリシーの検出アドレスとスキーム実装クラスを構成します。
Hadoop の core-site.xml ファイルで次のパラメータを構成する必要があります。
<configuration> <property> <name>fs.accessPolicies.discovery</name> <value>oss://<bucket_name>.<dls_endpoint>/</value> </property> <property> <name>fs.AbstractFileSystem.hdfs.impl</name> <value>com.aliyun.jindodata.hdfs.HDFS</value> </property> <property> <name>fs.hdfs.impl</name> <value>com.aliyun.jindodata.hdfs.JindoHdfsFileSystem</value> </property> </configuration>複数のバケットに対してアクセス ポリシーの検出アドレスとスキーム実装クラスを構成する場合は、バケットをコンマ (
,) で区切ります。次のコマンドを実行して、RootPolicy が正常に構成されているかどうかを確認します。
hadoop fs -ls hdfs://<your_ns_name>/次の結果が返された場合、RootPolicy は正常に構成されています。
drwxr-x--x - hdfs hadoop 0 2023-01-05 12:27 hdfs://<your_ns_name>/apps drwxrwxrwx - spark hadoop 0 2023-01-05 12:27 hdfs://<your_ns_name>/spark-history drwxrwxrwx - hdfs hadoop 0 2023-01-05 12:27 hdfs://<your_ns_name>/tmp drwxrwxrwx - hdfs hadoop 0 2023-01-05 12:27 hdfs://<your_ns_name>/userカスタム プレフィックスを使用して OSS-HDFS にアクセスします。
Hive や Spark などのサービスを再起動した後、カスタム プレフィックスを使用して OSS-HDFS にアクセスできます。
オプション。 RootPolicy を他の目的で使用します。
バケットに指定されたカスタム プレフィックスを含むすべての登録済みアドレスを一覧表示する
次の listAccessPolicies コマンドを実行して、バケットに指定されたカスタムプレフィックスを含むすべての登録済みアドレスを一覧表示します:
jindo admin -listAccessPolicies oss://<bucket_name>.<dls_endpoint>/バケットに指定されたカスタム プレフィックスを含むすべての登録済みアドレスを削除する:
次の unsetRootPolicy コマンドを実行して、バケットに指定されたカスタムプレフィックスを含むすべての登録済みアドレスを削除します。
jindo admin -unsetRootPolicy oss://<bucket_name>.<dls_endpoint>/ hdfs://<your_ns_name>/
関連情報
RootPolicy コマンドの詳細については、「Jindo CLI ユーザー ガイド」をご参照ください。