Campaign から Hive ベースの Hadoop システムへのデータのエクスポート

IBM® Campaign から Hive ベースの Hadoop ビッグデータ・システムにデータを送信できます。

このタスクについて

Campaign から Hive ベースの Hadoop ビッグデータ・システムにデータを送信するには、1 つ以上のデータ・ソース (DB2® や Oracle のデータベースなど) からユーザー・データを取り出すフローチャートを作成します。そのフローチャートで、データをビッグデータ・インスタンスにエクスポートするためのスナップショット・プロセスを構成します。フローチャートを実行すると、スナップショット・データが Hive データベースにエクスポートされます。

IBM Campaign での Hive データ・ソースの構成設定によって、Campaign から Hive にデータを転送する方法を指定します。

手順

  1. 管理者が Hive データ・ソースを (Campaign | Partitions | Partition[n] | dataSources) で構成して、SCP と SSH の必要なコマンドを指定する必要があります。
    • LoaderPreLoadDataFileCopyCmd の値で SCP を使用して、IBM Campaign から Hive ベースの Hadoop システムにある /tmp という一時フォルダーにデータをコピーします。それは、Hive サーバー上の /tmp という場所でなければなりません (HDFS の場所ではなくファイル・システムの場所です)。この値で、SCP コマンドを指定することも、その SCP コマンドを指定したスクリプトを呼び出すこともできます。以下の 2 つの例をご覧ください。
    • LoaderPostLoadDataFileRemoveCmd の値では、Hive へのロード後に一時ファイルを削除する SSH の「rm」コマンドを指定する必要があります。
    この機能をサポートするには、Campaign リスナー・サーバーで SSH を構成する必要があります。詳しくは、「IBM Campaign インストール・ガイド」を参照してください。
  2. フローチャートで、1 つ以上のデータ・ソースから入力データを取得して Hive データベースにデータをエクスポートするためのスナップショット・プロセスを構成します。通常どおり、選択やマージなどのプロセスも含めてフローチャートを設計してください。
  3. フローチャートを実行します。

    データ・セット全体が <Campaign_Home>/partitions/partition[n]/tmp にある一時データ・ファイルにエクスポートされます。LoaderPreLoadDataFileCopyCmd を使用してその一時ファイルが Hive サーバーにコピーされ、データが Hive テーブルにロードされます。一時ファイルは、LoaderPreLoadDataFileCopyCmd を使用して Hive サーバーから削除されます。

例 1: MapR へのエクスポートの構成:IBM Campaign で Hive_MapR というデータ・ソースを使用して MapR へのエクスポートを構成する例を以下に示します。LoaderPreLoadDataFileCopyCmd で SCP を使用して、IBM Campaign を実行するローカル・マシンから、Hive サーバーを実行するリモート・マシン (MapR マシン) の一時ディレクトリーにデータ・ファイルをコピーします。LoaderPostLoadDataFileRemoveCmd では、SSH の rm を使用してそのファイルを削除します。

Campaign | Partitions | Partition[n] | dataSources | Hive_MapR | LoaderPreLoadDataFileCopyCmd = scp <DATAFILE> mapr@example.company.com/tmp

Campaign | Partitions | Partition[n] | dataSources | Hive_MapR | LoaderPostLoadDataFileRemoveCmd = ssh mapr@example.company.com "rm/tmp/<DATAFILE>"

例 2: スクリプトによる Cloudera へのエクスポートの構成: スクリプトを使用すれば、ファイルのアクセス権の問題を回避できて便利な場合があります。ファイルのアクセス権に関連した問題があると、LOAD コマンドでデータ・ファイルにアクセスできず、コマンドが失敗してしまいます。この種の問題を回避するために、SCP によってデータ・ファイルを Hive にコピーしてそのデータ・ファイルのファイル・アクセス権を更新する独自のシェル・スクリプトまたはコマンド・ライン・スクリプトを作成できます。以下に示すのは、IBM Campaign で、スクリプトによる Cloudera へのエクスポートを構成する例です。LoaderPreLoadDataFileCopyCmd で SCP を使用するスクリプトを呼び出して、IBM Campaign を実行するローカル・マシンから、リモート Cloudera マシンの一時ディレクトリーにデータ・ファイルをコピーします。LoaderPostLoadDataFileRemoveCmd ではそのファイルを削除します。

Campaign | Partitions | Partition[n] | dataSources | Hive_Cloudera | LoaderPreLoadDataFileCopyCmd = /opt/IBM/CampaignBD/Campaign/bin/copyToHadoop.sh <DATAFILE>

Campaign | Partitions | Partition[n] | dataSources | Hive_Cloudera | LoaderPostLoadDataFileRemoveCmd = ssh cloudera@example.company.com "rm /tmp/<DATAFILE>"

LoaderPreLoadDataFileCopyCmd で呼び出すスクリプトは、以下のとおりです。
copyToHadoop.sh:
#!/bin/sh
scp $1 cloudera@example.company.com:/tmp
ssh cloudera@example.company.com "chmod 0666 /tmp/'basename $1'"

このスクリプトは、IBM Campaign リスナー・マシンにあります。そのスクリプトは、ユーザー「cloudera」として宛先サーバー (example.company.com) で SCP コマンドを実行し、ファイルを tmp ディレクトリーにコピーします。SSH コマンドはその同じユーザーで接続し、その後のロード・プロセスと削除プロセスのために正しいアクセス権を持てるようにします。