すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:RootPolicyを使用したOSS-HDFSへのアクセス

最終更新日:Feb 23, 2024

OSS-HDFSはRootPolicyをサポートしています。 RootPolicyを使用して、OSS-HDFSのカスタムプレフィックスを設定できます。 これにより、元のアクセスプレフィックスhdfs:// を変更することなく、ジョブをOSS-HDFSで実行できます。

前提条件

手順

  1. 環境変数を設定します。

    1. ECS インスタンスに接続します。 詳細については、「ECS インスタンスへの接続」をご参照ください。

    2. インストールされているJindoSDK JARパッケージのbinディレクトリに移動します。

      cd jindosdk-x.x.x /ビン /
      説明

      x.x.xは、JindoSDK JARパッケージのバージョン番号を示します。

    3. binディレクトリのjindo-utilファイルに読み取りおよび書き込み権限を付与します。

      chmod 700 jindo-util
    4. jindo-utilファイルの名前をjindoに変更します。

      mv jindo-util jindo
    5. jindosdk.cfgという名前の設定ファイルを作成し、次のパラメーターを設定ファイルに追加します。

      [common] 以下のデフォルト設定を保持します。 
      logger.dir = /tmp/jindo-util /
      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 secretを設定します。  ->
      fs.oss.accessKeyId = LTAI5tJCTj5SxJepqxQ2 ****
      fs.oss.accessKeySecret = i0uLwyd0mHxXetZo7b4j4CXP16 **** 
    6. 環境変数を設定します。

      エクスポートJINDOSDK_CONF_DIR=<JINDOSDK_CONF_DIR>

      <JINDOSDK_CONF_DIR> をjindosdk.cfg設定ファイルの絶対パスに設定します。

  2. 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など、空でない文字列がサポートされます。 現在のバージョンはルートディレクトリのみをサポートしています。

  3. アクセスポリシー検出アドレスとScheme実装クラスを設定します。

    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> 

    複数のバケットに対してアクセスポリシー検出アドレスとScheme実装クラスを設定する場合は、バケットをコンマ (,) で区切ります。

  4. 次のコマンドを実行して、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 
  5. カスタムプレフィックスを使用してOSS-HDFSにアクセスします。

    HiveやSparkなどのサービスを再起動した後、カスタムプレフィックスを使用してOSS-HDFSにアクセスできます。

  6. オプションです。 他の目的で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ユーザーガイド」をご参照ください。