このトピックでは、JindoFS の外部クライアントとその使用シナリオについて説明します。
概要
JindoFS は、E-MapReduce(EMR)クラスタの外部から JindoFS にアクセスできるように、外部クライアントを提供しています。外部クライアントから JindoFS にアクセスする場合は、JindoFS がブロックストレージモードであることを確認してください。 JindoFS がキャッシュモードの場合、外部クライアントから JindoFS にアクセスすることはできません。 EMR クラスタの外部からキャッシュモードの JindoFS にアクセスするには、キャッシュモードは元の OSS セマンティクスと互換性があるため、共通のオブジェクトストレージサービス(OSS)クライアントを使用します。
シナリオ
JindoFS の外部クライアントは、Hadoop 分散ファイルシステム(HDFS)と互換性があります。外部クライアントから JindoFS に格納されているデータにアクセスするには、アプリケーションが JindoFS の Namespace Service に接続されていることを確認してください。ただし、外部クライアントからローカルクラスタのキャッシュデータにアクセスすることはできません。この場合、外部クライアントからのデータアクセスのパフォーマンスは、EMR クラスタ内部からのデータアクセスほど効率的ではありません。
外部クライアントの設定
ブロックストレージモードの JindoFS でサポートされている名前空間が設定されていることを確認します。詳細については、ブロックストレージモードの使用をご参照ください。
Bigboot パッケージを取得します。
EMR クラスタの /usr/lib/bigboot-current ディレクトリにアクセスして、Bigboot パッケージを取得します。
説明 Bigboot パッケージはネイティブコードに基づいて開発されているため、お使いのオペレーティングシステムと互換性がない場合があります。環境をセットアップします。
[BIGBOOT_HOME] 変数を、デバイスに Bigboot をインストールするためのルートディレクトリに設定します。ルートディレクトリ内の ext ディレクトリと lib ディレクトリを、Hadoop や Spark などのビッグデータ処理コンポーネントの [classpath] パラメータに追加します。
- EMR クラスタの /usr/lib/bigboot-current/conf/ ディレクトリから、設定ファイル bigboot.cfg.external をデバイスのインストールディレクトリ conf/ にコピーします。
Namespace Service を設定します。
client.namespace.rpc.port
: Namespace Service で listen するポート。client.namespace.rpc.address
: Namespace Service で listen するエンドポイント。説明 デフォルトでは、上記の 2 つのパラメータは EMR クラスタの Bigboot 設定ファイルで設定されています。
データアクセス パラメータを設定します。
client.namespaces.{ YourNamespace}.oss.access.bucket
: アクセスする OSS バケット。client.namespaces.{ YourNamespace}.oss.access.endpoint
: OSS バケットのエンドポイント。client.namespaces.{ YourNamespace}.oss.access.key
: OSS バケットへのアクセスに使用する AccessKey ID。client.namespaces.{ YourNamespace}.oss.access.secret
: OSS バケットへのアクセスに使用する AccessKey シークレット。説明 上記のパラメータで、{YourNamespace}
は、外部クライアントからアクセスする名前空間を指定します。このトピックでは、test という名前の名前空間を使用します。例:
client.namespace.rpc.port = 8101 client.namespace.rpc.address = {RPC_Address} client.namespaces.test.oss.access.bucket = {YourOssBucket} client.namespaces.test.oss.access.endpoint = {YourOssEndpoint} client.namespaces.test.oss.access.key = {YourOssAccessKeyID} client.namespaces.test.oss.access.secret = {YourOssAccessKeySecret}
設定の確認
次の操作を実行します。
- 次のコマンドを実行して、test 名前空間が正しく設定されているかどうかを確認します:
hdfs dfs -ls jfs://test/
- 次のコマンドを実行して、test 名前空間にデータをアップロードまたはダウンロードできるかどうかを確認します:
hdfs dfs -put /etc/hosts jfs://test/ hdfs dfs -get jfs://test/hosts