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

Object Storage Service:EMR Hive または Spark から OSS-HDFS にアクセスする

最終更新日:Nov 09, 2025

OSS-HDFS (JindoFS) は、キャッシュベースのアクセラレーションと Ranger 認証をサポートするストレージサービスです。OSS-HDFS は、E-MapReduce (EMR) V3.42 以降のマイナーバージョン、および EMR V5.8.0 以降のマイナーバージョンのクラスターで利用できます。バックエンドストレージとして OSS-HDFS を使用するクラスターは、ビッグデータの抽出・変換・書き出し (ETL) シナリオでより優れたパフォーマンスを提供し、HDFS から OSS-HDFS へのスムーズなデータ移行を可能にします。このトピックでは、EMR Hive または Spark で OSS-HDFS を使用する方法について説明します。

前提条件

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

  • デフォルトでは、Alibaba Cloud アカウントには、EMR クラスターを OSS-HDFS に接続し、OSS-HDFS に関連する一般的な操作を実行する権限があります。必要な権限が付与された RAM ユーザーが作成されていること。RAM ユーザーを使用して EMR クラスターを OSS-HDFS に接続する場合、その RAM ユーザーは必要な権限を持っている必要があります。詳細については、「RAM ユーザーに EMR クラスターを OSS-HDFS に接続する権限を付与する」をご参照ください。

背景情報

OSS-HDFS は、クラウドネイティブのデータレイクストレージサービスです。OSS-HDFS は、統合メタデータ管理機能を提供し、HDFS API と完全な互換性があります。OSS-HDFS は、Portable Operating System Interface (POSIX) もサポートしています。OSS-HDFS を使用すると、ビッグデータおよび AI 分野のさまざまなデータレイクベースのコンピューティングシナリオでデータを管理できます。詳細については、「OSS-HDFS とは」をご参照ください。

手順

説明 このセクションでは、EMR Hive で OSS-HDFS を使用する方法について説明します。このトピックの手順に従って、EMR Spark で OSS-HDFS を使用することもできます。
  1. EMR クラスターにログインします。詳細については、「クラスターへのログイン」をご参照ください。
  2. OSS-HDFS を指す Hive テーブルを作成します。

    1. 次のコマンドを実行して Hive CLI を開きます。
      hive
    2. 次のコマンドを実行して、OSS-HDFS を指すデータベースを作成します。

      CREATE DATABASE if not exists dw LOCATION 'oss://{yourHdfsBucketDomain}/{path}';

      パラメーターの説明:

      • dw: データベース名。この名前はカスタマイズできます。

      • {path}: データベースを格納する OSS-HDFS 内のパス。このパスはカスタマイズできます。

      • {yourHdfsBucketDomain}: OSS-HDFS サービスのバケットドメイン名。

        • ドメイン名を取得するには、OSS コンソールにログインします。対象のバケットに移動します。「概要」タブの [アクセスポート] セクションで、[HDFS サービス] に対応する完全なバケットドメイン名をコピーします。

      説明

      この例では、パスのプレフィックスとして OSS-HDFS ドメイン名を使用します。バケット名のみを使用して OSS-HDFS を指すようにする場合は、バケットレベルのエンドポイントまたはグローバルエンドポイントを設定できます。詳細については、「付録 1: エンドポイントを設定するその他の方法」をご参照ください。

    3. 次のコマンドを実行して、新しいデータベースを使用します。
      use dw;
    4. 次のコマンドを実行して、新しいデータベースに Hive テーブルを作成します。
      CREATE TABLE IF NOT EXISTS employee(eid int, name String,salary String,destination String)
      COMMENT 'Employee details';
  3. Hive テーブルにデータを挿入します。
    次の SQL 文を実行して、Hive テーブルにデータを書き込みます。EMR ジョブが生成されます。
    INSERT INTO employee(eid, name, salary, destination) values(1, 'liu hua', '100.0', '');
  4. Hive テーブルのデータを確認します。
    SELECT * FROM employee WHERE eid = 1;
    返された情報には、挿入されたデータが含まれています。
    OK
    1       liu hua 100.0
    Time taken: 12.379 seconds, Fetched: 1 row(s)