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を使用する方法について説明します。
前提条件
EMR 3.42.0以降、またはEMR 5.8.0以降のクラスターが作成されます。 詳細については、「クラスターの作成」をご参照ください。
バケットのOSS-HDFSが有効になり、OSS-HDFSにアクセスする権限が付与されます。 詳細については、「OSS-HDFSの有効化とアクセス許可の付与」をご参照ください。
背景情報
OSS-HDFSは、クラウドネイティブのデータレイクストレージサービスです。 OSS-HDFSは統合メタデータ管理機能を提供し、HDFS APIと完全に互換性があります。 OSS-HDFSはまた携帯用オペレーティングシステムインターフェイス (POSIX) を支えます。 OSS-HDFSにより、ビッグデータおよびAI分野のさまざまなデータレイクベースのコンピューティングシナリオでデータを管理できます。 詳細については、「概要」をご参照ください。
手順
- EMRクラスターにログインします。 詳細については、「クラスターへのログイン」をご参照ください。
HiveのディレクトリにHiveテーブルを作成しOSS-HDFS。
- 次のコマンドを実行してHive CLIを開きます。
ハイブ
次のコマンドを実行して、OSS-HDFSのディレクトリにデータベースを作成します。
CREATE DATABASE if not exists dw LOCATION 'oss://<yourBucketName>.<yourBucketEndpoint>/<path>';
説明上記のコマンドでは、
dw
はデータベース名、<path>
は任意のパス、<yourBucketName>.<yourBucketEndpoint>
はOSS-HDFSが有効になっているバケットのドメイン名です。- この例では、OSS-HDFSのバケットドメイン名がパスのプレフィックスとして使用されます。 OSS-HDFSのディレクトリを指すバケット名のみを使用する場合は、バケットレベルのエンドポイントまたはグローバルエンドポイントを指定できます。 詳細については、「付録1: OSS-HDFSのエンドポイントの設定に使用されるその他の方法」をご参照ください。
- 次のコマンドを実行して、新しいデータベースを使用します。
使用dw;
- 次のコマンドを実行して、新しいデータベースにHiveテーブルを作成します。
CREATE TABLEが存在しない場合従業員 (eid int、name String、salary String、destination String) コメント '従業員の詳細';
- 次のコマンドを実行してHive CLIを開きます。
- Hiveテーブルにデータを挿入します。 次のSQL文を実行して、Hiveテーブルにデータを書き込みます。 EMRジョブが生成される。
INSERT INTO従業員 (イード、名前、給与、目的地) の値 (1、'liu hua' 、'100.0 '、'');
- Hiveテーブルのデータを確認します。
SELECT * から従業員WHERE eid = 1;
返された情報は、挿入されたデータを含む。OK 1 liu hua 100.0 所要時間: 12.379秒、フェッチ: 1行 (s)