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

Object Storage Service:EMR Hive または Spark から OSS-HDFS へのアクセス

最終更新日:May 15, 2026

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 が有効化されており、OSS-HDFS へのアクセス権限が RAM ロールに付与されている必要があります。詳細については、「OSS-HDFS の有効化とアクセス権限の付与」をご参照ください。

  • Alibaba Cloud アカウント (root ユーザー) は、デフォルトで 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 コンソールにログインします。 ターゲットバケットに移動します。概要タブのアクセスポートセクションで、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)