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

Object Storage Service:Impala と JindoSDK を使用して OSS-HDFS サービスのデータをクエリする

最終更新日:Nov 09, 2025

JindoSDK は、Hadoop および Spark エコシステム向けに開発された、使いやすい Object Storage Service (OSS) クライアントです。OSS 用に高度に最適化された Hadoop FileSystem 実装を提供します。JindoSDK は、Impala と併用して OSS-HDFS サービスのデータをクエリする場合、Hadoop コミュニティの OSS クライアントよりも優れたパフォーマンスを提供します。

前提条件

  • デフォルトでは、Alibaba Cloud アカウントは、非 EMR クラスターから OSS-HDFS サービスにアクセスし、一般的な操作を実行する権限を持っています。Resource Access Management (RAM) ユーザーを使用して OSS-HDFS サービスにアクセスする場合は、RAM ユーザーに必要な権限を付与する必要があります。詳細については、「非 EMR クラスターから OSS-HDFS サービスにアクセスするための権限を RAM ユーザーに付与する」をご参照ください。

  • デプロイメント環境として使用する ECS インスタンスが購入済みであること。詳細については、「ECS インスタンスの購入」をご参照ください。

  • Hadoop 環境が作成済みであること。詳細については、「Hadoop ランタイム環境の作成」をご参照ください。

  • バケットに対して OSS-HDFS サービスが有効になっており、サービスにアクセスするための権限が付与されていること。詳細については、「OSS-HDFS サービスを有効にする」をご参照ください。

手順

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

  2. JindoSDK を構成します。

    1. JindoSDK JAR パッケージの最新バージョンをダウンロードします。 詳細については、GitHub のダウンロードリンクをご参照ください。

    2. JindoSDK JAR パッケージを解凍します。

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

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

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

    3. ダウンロードした JindoSDK JAR パッケージを Impala クラスパスにコピーします。

      cp jindosdk-x.x.x-linux/lib/*.jar  $HIVE_HOME/lib/
  3. OSS-HDFS サービスの実装クラスと AccessKey ペアを構成します。

    1. Impala の core-site.xml ファイルで 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>
    2. Impala の core-site.xml ファイルで、OSS-HDFS サービスが有効になっているバケットの AccessKey ID と AccessKey Secret を構成します。

      <configuration>
          <property>
              <name>fs.oss.accessKeyId</name>
              <value>LTAI********</value>
          </property>
      
          <property>
              <name>fs.oss.accessKeySecret</name>
              <value>KZo1********</value>
          </property>
      </configuration>
  4. OSS-HDFS サービスのエンドポイントを構成します。

    OSS-HDFS サービスを使用して OSS バケットにアクセスするには、エンドポイントを構成する必要があります。推奨されるパス形式は oss://{yourBucketName}.{yourBucketEndpoint}/{path} です。例: oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt。構成が完了すると、JindoSDK はアクセスパス内のエンドポイントを使用して OSS-HDFS サービスインターフェイスにアクセスします。

    他の方法で OSS-HDFS サービスのエンドポイントを構成することもできます。これらの構成方法には優先順位があります。詳細については、「付録 1: エンドポイントを構成するその他の方法」をご参照ください。

  5. Impala を使用して OSS-HDFS サービスのデータをクエリします。

    1. テーブルを作成します。

      CREATE EXTERNAL TABLE customer_demographics (
       `cd_demo_sk` INT,
       `cd_gender` STRING,
       `cd_marital_status` STRING,
       `cd_education_status` STRING,
       `cd_purchase_estimate` INT,
       `cd_credit_rating` STRING,
       `cd_dep_count` INT,
       `cd_dep_employed_count` INT,
       `cd_dep_college_count` INT)
      STORED AS PARQUET
      LOCATION 'oss://bucket.endpoint/dir';
    2. テーブル内のデータをクエリします。

      select * from customer_demographics;