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

Object Storage Service:EMR 以外のクラスターから OSS-HDFS サービスに接続するためのクイックスタート

最終更新日:Jan 20, 2026

OSS-HDFS サービス (JindoFS サービスとしても知られています) は、Hadoop 分散ファイルシステム (HDFS) インターフェイスと完全に互換性があり、ディレクトリレベルの操作をサポートしています。 Jindo ソフトウェア開発キット (SDK) を使用すると、MapReduce、Hive、Spark、Flink などの Apache Hadoop コンピューティングおよび分析アプリケーションが OSS-HDFS サービスにアクセスできます。 このトピックでは、Elastic Compute Service (ECS) インスタンスに JindoSDK をデプロイし、一般的な操作を実行して OSS-HDFS サービスの使用を開始する方法について説明します。

説明

Alibaba Cloud E-MapReduce (EMR) クラスターを使用している場合は、EMR クラスターから OSS-HDFS サービスに接続します。 詳細については、「EMR クラスターから OSS-HDFS サービスに接続するためのクイックスタート」をご参照ください。

前提条件

操作手順

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

  2. JindoSDK JAR パッケージをダウンロードして解凍します。 ダウンロードリンクについては、GitHub をご参照ください。

  3. 次のコマンドを実行して、JindoSDK JAR パッケージを解凍します。

    次の例では、jindosdk-x.x.x-linux.tar.gz を解凍する方法を示します。 異なるバージョンの JindoSDK を使用する場合は、JAR パッケージ名を実際のパッケージ名に置き換えてください。

    tar zxvf jindosdk-x.x.x-linux.tar.gz
    説明

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

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

    1. JINDOSDK_HOME を設定します。

      この例では、パッケージは /usr/lib/jindosdk-x.x.x-linux ディレクトリに解凍されます。

      export JINDOSDK_HOME=/usr/lib/jindosdk-x.x.x-linux
    2. HADOOP_CLASSPATH を設定します。

      export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${JINDOSDK_HOME}/lib/*
      重要

      インストールディレクトリをデプロイし、必要なすべてのノードで環境変数を設定します。

  5. OSS-HDFS サービスの実装クラスと AccessKey を設定します。

    1. 次のコマンドを実行して、Hadoop の core-site.xml 設定ファイルを開きます。

      vim /usr/local/hadoop/etc/hadoop/core-site.xml
    2. core-site.xml ファイルで、JindoSDK DLS 実装クラスを設定します。

      <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>
    3. core-site.xml ファイルで、ご利用の Alibaba Cloud アカウントまたは必要な権限を持つ RAM ユーザーの AccessKey ペアを設定します。

      このシナリオで RAM ユーザーに必要な権限の詳細については、「EMR 以外のクラスターから OSS-HDFS サービスに接続するための権限を RAM ユーザーに付与」をご参照ください。

      <configuration>
          <property>
              <name>fs.oss.accessKeyId</name>
              <value>xxx</value>
          </property>
      
          <property>
              <name>fs.oss.accessKeySecret</name>
              <value>xxx</value>
          </property>
      </configuration>
  6. OSS-HDFS サービスのエンドポイントを設定します。

    OSS バケットにアクセスするには、エンドポイントを設定する必要があります。 次のパス形式を使用します:oss://<Bucket>.<Endpoint>/<Object>。 例:oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt。 JindoSDK は、アクセスパス内のエンドポイントを使用して、対応する OSS-HDFS サービスの API にアクセスします。

  7. HDFS シェルコマンドを使用して、OSS-HDFS サービスで一般的な操作を実行します。

    • ファイルのアップロード

      次の例は、ローカルのルートディレクトリから examplebucket に examplefile.txt ファイルをアップロードする方法を示しています。

      hdfs dfs -put examplefile.txt oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/
    • ファイルのダウンロード

      次の例は、examplebucket からローカルの /tmp ディレクトリに exampleobject.txt ファイルをダウンロードする方法を示しています。

      hdfs dfs -get oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt  /tmp/

    その他の操作の詳細については、「Hadoop シェルコマンドを使用した OSS-HDFS サービスへのアクセス」をご参照ください。

付録 1:パフォーマンスチューニング

パフォーマンスをチューニングするには、次の設定項目を Hadoop の core-site.xml ファイルに追加します。 これらの設定項目は、JindoSDK 4.0 以降でのみサポートされています。

<configuration>

    <property>
          <!-- クライアントによって書き込まれる一時ファイルのディレクトリ。 コンマで区切って複数のディレクトリを設定できます。 マルチユーザー環境では、読み取りおよび書き込み権限を設定してください。 -->
        <name>fs.oss.tmp.data.dirs</name>
        <value>/tmp/</value>
    </property>

    <property>
          <!-- OSS へのアクセス試行が失敗した後のリトライ回数。 -->
        <name>fs.oss.retry.count</name>
        <value>5</value>
    </property>

    <property>
          <!-- OSS リクエストのタイムアウト期間 (ミリ秒単位)。 -->
        <name>fs.oss.timeout.millisecond</name>
        <value>30000</value>
    </property>

    <property>
          <!-- OSS への接続タイムアウト期間 (ミリ秒単位)。 -->
        <name>fs.oss.connection.timeout.millisecond</name>
        <value>3000</value>
    </property>

    <property>
          <!-- 単一ファイルを OSS にアップロードするための同時実行スレッド数。 -->
        <name>fs.oss.upload.thread.concurrency</name>
        <value>5</value>
    </property>

    <property>
          <!-- OSS への同時アップロードタスクのキューサイズ。 -->
        <name>fs.oss.upload.queue.size</name>
        <value>5</value>
    </property>

    <property>
          <!-- プロセス内での OSS への同時アップロードタスクの最大数。 -->
        <name>fs.oss.upload.max.pending.tasks.per.stream</name>
        <value>16</value>
    </property>

    <property>
          <!-- OSS からの同時ダウンロードタスクのキューサイズ。 -->
        <name>fs.oss.download.queue.size</name>
        <value>5</value>
    </property>

    <property>
          <!-- プロセス内での OSS からの同時ダウンロードタスクの最大数。 -->
        <name>fs.oss.download.thread.concurrency</name>
        <value>16</value>
    </property>

    <property>
          <!-- OSS からデータを先読みするためのバッファーサイズ。 -->
        <name>fs.oss.read.readahead.buffer.size</name>
        <value>1048576</value>
    </property>

    <property>
          <!-- OSS からデータを同時に先読みするためのバッファー数。 -->
        <name>fs.oss.read.readahead.buffer.count</name>
        <value>4</value>
    </property>

</configuration>