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

E-MapReduce:JindoFS SDK によるパスワードなしのアクセスの有効化

最終更新日:Aug 22, 2026

このトピックでは、JindoFS SDK を使用し、E-MapReduce (EMR) クラスター外のクライアントから EMR 上の JindoFS ファイルシステムへのパスワードなしのアクセスを有効にする方法を説明します。

前提条件

この手順は、EMR クラスター外にあり、Hadoop と Java SDK がインストールされている ECS インスタンスが対象です。

背景情報

JindoFS SDK を使用する場合、環境から関連する Jindo パッケージ (jboot.jar や smartdata-aliyun-jfs-*.jar など) を削除する必要があります。Spark を使用する場合は、正常に機能させるために、/opt/apps/spark-current/jars/ ディレクトリからもパッケージを削除する必要があります。

ステップ 1: インスタンス RAM ロールの作成

  1. Alibaba Cloud アカウントを使用して、Resource Access Management (RAM) コンソールにログインします。

  2. 左側のナビゲーションペインで、アイデンティティ > ロール を選択します。

  3. [ロールの作成] をクリックします。[Alibaba Cloud サービス] で、Alibaba Cloud サービス を選択します。

  4. [次へ] をクリックします。

  5. [ロール名] を入力します。[信頼できるサービスの選択] リストから、[Elastic Compute Service] を選択します。

  6. [Complete] をクリックします。

ステップ 2: RAM ロールへの権限の付与

  1. Alibaba Cloud アカウントを使用して、RAM コンソールにログインします。

  2. (オプション) システムポリシーが要件を満たしていない場合は、カスタムポリシーを作成します。詳細については、「カスタムポリシーの作成」をご参照ください。

  3. 左側のナビゲーションペインで、アイデンティティ > ロール を選択します。

  4. 作成したロールの名前をクリックします。

  5. [Input and Attach] をクリックします。

  6. [システムポリシー] で、システムポリシー または [カスタムポリシー] を選択します。

    例えば、AliyunOSSReadOnlyAccess ポリシーを使用できます。ニーズに応じてポリシーを選択してください。

  7. 名前でポリシーを検索し、クリックして右側のパネルに追加します。

  8. [OK] をクリックします。

ステップ 3: インスタンスへの RAM ロールのアタッチ

  1. ECS コンソールにログインします。

  2. 左側のナビゲーションペインで、インスタンス & イメージ > Instance を選択します。

  3. 上部のナビゲーションバーで、インスタンスのリージョンを選択します。

  4. 対象の ECS インスタンスを見つけます。アクション 列で、image > インスタンスの設定 > RAM ロールのアタッチ/デタッチ を選択します。

  5. ダイアログボックスで、作成したインスタンス RAM ロールを選択し、[OK] をクリックします。

ステップ 4: 環境変数の設定

ECS インスタンスで次のコマンドを実行して、CLASSPATH 環境変数を設定します。プレースホルダーパスを JindoFS SDK ファイルのパスに置き換えてください。

export CLASSPATH=/path/to/jindofs-x.y.z-sdk.jar

または、次のコマンドを実行して HADOOP_CLASSPATH 変数を更新します。プレースホルダーパスを JindoFS SDK ファイルのパスに置き換えてください。

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/path/to/jindofs-x.y.z-sdk.jar

ステップ 5: パスワードなしのアクセスの確認

  1. シェルから Object Storage Service (OSS) にアクセスします。

    hdfs dfs -ls oss://<your-bucket-name>/
  2. Hadoop ファイルシステム API を使用して OSS にアクセスします。

    JindoFS SDK を使用すると、Hadoop ファイルシステム API を使用して OSS にアクセスできます。以下はコード例です。この例では、ossPath を oss://your-bucket-name/your-directory/ などの OSS パスに置き換えてください。

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.LocatedFileStatus;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.fs.RemoteIterator;
    import java.net.URI;
    public class test {
        public static void main(String[] args) throws Exception {
            String ossPath = "oss://your-bucket-name/your-directory/";
            FileSystem fs = FileSystem.get(new URI(ossPath), new Configuration());
            RemoteIterator<LocatedFileStatus> iterator = fs.listFiles(new Path(ossPath), false);
            while (iterator.hasNext()){
                LocatedFileStatus fileStatus = iterator.next();
                Path fullPath = fileStatus.getPath();
                System.out.println(fullPath);
            }
        }
    }