リファレンス データの配置および使用方法

リファレンス データは、以下の場所のいずれかに置くことができます。

  • Hadoop クラスタのすべてのデータ ノード
  • Hadoop Distributed File System (HDFS): リファレンス データが HDFS 上にある場合は、このデータの管理用オプションとして以下の 2 つがジョブの実行時に提供されます。
    • 現在の作業ディレクトリにダウンロードする

      リファレンス データは、一時ファイルとして作業ディレクトリにダウンロードされます。これらのファイルは、ジョブが完了するたびに作業ディレクトリから削除され、各ジョブに必須のリファレンス データは新たにダウンロードされます。

    • データをローカル パスにダウンロードする

      リファレンス データは、指定したローカル データ パスにダウンロードされ、HDFS 上でリフレッシュされるまではすべてのジョブで使用できる状態が続きます。

HDFS でのリファレンス データの管理

指定したローカル パスにリファレンス データを HDFS から適切にダウンロードし、そのリファレンス データを使用してジョブを実行できるようにするには、以下の点を確認する必要があります。
  • ジョブを実行中のユーザに、各データ ノード上のローカル ドライブへの書き込みアクセス権がある。
  • データ ノードのそれぞれに、HDFS からデータをダウンロードするのに十分なハードディスク空き領域がある。

データをローカル パスにダウンロードする利点

  • リファレンス データがすべてのノードにコピーまたは配置される場合 (Localtodatanodes オプション) のように、ノードのそれぞれにデータを配置する必要はありません。
  • 所定のどのデータ ノード上でも、同じバージョンのデータが一度だけダウンロードされます。
  • リファレンス データのダウンロードに制限はありません。

ジョブで指定するプロパティ

以下に、選択したリファレンス データの戦略とパスを示すために、ジョブ設定ファイルで指定する必要があるプロパティを示します。

  • リファレンス データを Hadoop クラスタのすべてのデータ ノード上に配置する:
    JSON 文字列で、以下の詳細を指定します。
    • referenceDataPathLocation: LocaltoDataNodes
    • dataDir: リファレンス データが配置されるパス。
    <property>
            <name>pb.bdq.reference.data</name>
            <value>{"referenceDataPathLocation":"LocaltoDataNodes",
                   "dataDir":"/home/data/referenceData"}</value>
            <description>Pass reference data details as JSON format.</description>
    </property>
  • リファレンス データを Hadoop Distributed File System (HDFS) 上に配置し、分散キャッシュ モードを使用する: JSON 文字列で、以下の詳細を指定します。
    • referenceDataPathLocation: HDFS
    • dataDir: HDFS 上のリファレンス データのパス
    • dataDownloader: DC
     <property>
            <name>pb.bdq.reference.data</name>
            <value>{"referenceDataPathLocation":"HDFS",
            "dataDir":"./referenceData",
            "dataDownloader":{"dataDownloader":"DC"}}</value>
            <description>Pass reference data details as JSON format. 
            Pass above format for DATA DOWNLOADER when data is in HDFS</description>
     </property>
  • リファレンス データを Hadoop Distributed File System (HDFS) 上に配置し、ローカル パスにダウンロードする:
    JSON 文字列で、以下の詳細を指定します。
    • referenceDataPathLocation: HDFS
    • dataDir: HDFS 上のリファレンス データのパス
    • dataDownloader: HDFS
    • localFSRepository: リファレンス データをローカルにダウンロードする必要があるパス。
    <property>
            <name>pb.bdq.reference.data</name>
            <value>{"referenceDataPathLocation":"HDFS",
             "dataDir":"/home/data/dm/referenceData",
             "dataDownloader":{"dataDownloader":"HDFS",
             "localFSRepository":"/local/download"}}</value>
            <description>Pass reference data details as JSON format.</description>
    </property>