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

E-MapReduce:外部クライアントの使用

最終更新日:Jan 11, 2025

このトピックでは、JindoFS の外部クライアントとその使用シナリオについて説明します。

概要

JindoFS は、E-MapReduce(EMR)クラスタの外部から JindoFS にアクセスできるように、外部クライアントを提供しています。外部クライアントから JindoFS にアクセスする場合は、JindoFS がブロックストレージモードであることを確認してください。 JindoFS がキャッシュモードの場合、外部クライアントから JindoFS にアクセスすることはできません。 EMR クラスタの外部からキャッシュモードの JindoFS にアクセスするには、キャッシュモードは元の OSS セマンティクスと互換性があるため、共通のオブジェクトストレージサービス(OSS)クライアントを使用します。

シナリオ

JindoFS の外部クライアントは、Hadoop 分散ファイルシステム(HDFS)と互換性があります。外部クライアントから JindoFS に格納されているデータにアクセスするには、アプリケーションが JindoFS の Namespace Service に接続されていることを確認してください。ただし、外部クライアントからローカルクラスタのキャッシュデータにアクセスすることはできません。この場合、外部クライアントからのデータアクセスのパフォーマンスは、EMR クラスタ内部からのデータアクセスほど効率的ではありません。

外部クライアントの設定

ブロックストレージモードの JindoFS でサポートされている名前空間が設定されていることを確認します。詳細については、ブロックストレージモードの使用をご参照ください。

  1. Bigboot パッケージを取得します。

    EMR クラスタの /usr/lib/bigboot-current ディレクトリにアクセスして、Bigboot パッケージを取得します。

    説明 Bigboot パッケージはネイティブコードに基づいて開発されているため、お使いのオペレーティングシステムと互換性がない場合があります。
  2. 環境をセットアップします。

    [BIGBOOT_HOME] 変数を、デバイスに Bigboot をインストールするためのルートディレクトリに設定します。ルートディレクトリ内の ext ディレクトリと lib ディレクトリを、Hadoop や Spark などのビッグデータ処理コンポーネントの [classpath] パラメータに追加します。

  3. EMR クラスタの /usr/lib/bigboot-current/conf/ ディレクトリから、設定ファイル bigboot.cfg.external をデバイスのインストールディレクトリ conf/ にコピーします。
  4. Namespace Service を設定します。

    • client.namespace.rpc.port: Namespace Service で listen するポート。
    • client.namespace.rpc.address: Namespace Service で listen するエンドポイント。
      説明 デフォルトでは、上記の 2 つのパラメータは EMR クラスタの Bigboot 設定ファイルで設定されています。
  5. データアクセス パラメータを設定します。

    • 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