SparkのTalend Data Mapperとの使用 - 7.3

author
Talend Documentation Team
EnrichVersion
7.3
EnrichProdName
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
task
ジョブデザインと開発 > サードパーティーシステム > 変換処理コンポーネント > データマッピング
データガバナンス > サードパーティーシステム > 変換処理コンポーネント > データマッピング
データクオリティとプレパレーション > サードパーティーシステム > 変換処理コンポーネント > データマッピング

SparkのTalend Data Mapperとの使用

Apache Spark (別称「Spark」)は、Talend Data Mapperで大型の入力ファイルを扱う場合に便利です。Sparkでは変換作業の前にファイル全体をメモリにロードせずにファイルをストリームしてマッピングを処理するため、そのスピードを十分に活用できます。

大型の入力ファイルのインポート時にSparkとTalend Data Mapperの機能を一緒にテストする場合は、いかに簡単にそのテストを実行できるかこのシナリオでわかります。

Apache Sparkの詳細は、http://spark.apache.org/で公式ドキュメンテーションをご覧ください。Talend Data Mapperの詳細は、『Talend Data Mapperユーザーガイド』を参照してください。

前提条件

Talend Studioには、ジョブを実行できるローカルのSpark (バージョン1.3.0以降)環境が含まれています。ジョブをローカルにテストする場合は、インストールされているStudioのバージョンが6.5以降であることを確認してください。

次のシナリオを正常に実行できるよう、設定可能な環境の例を示します。

  • Google Cloud PlatformにおけるCentos 7.xサーバーの3つのインスタンス: Cloudera 5.13がクラスターとしてインストールされており、Hadoop Distributed File System (HDFS)とSparkサービスが有効になっていること
  • Windows 10クライアント

Hadoopクラスターへの接続

Hadoopクラスターへの接続を作成します。

手順

  1. Talend Studioで、[Repository] (リポジトリー) > [Metadata] (メタデータ)に移動します。
  2. [Hadoop Cluster] (Hadoopクラスター)を右クリックし、[Create Hadoop Cluster] (Hadoopクラスターの作成)を選択します。
  3. 表示されたフィールドに情報を入力します。
  4. インポートオプションを選択するプロンプトが表示されたら、[Retrieve configuration from Ambari or Cloudera] (AmbariまたはClouderaから設定を取得)を指定します。
  5. Cloudera Managerの資格情報を入力します。
  6. [Connect] (接続)をクリックして[Discovered clusters] (発見されたクラスター)セクションを設定します。サービスはこのセクションから取得できます。
  7. [Next] (次へ)をクリックします。
  8. [Check Services] (サービスの確認)をクリックし、サービスがすべて有効になっているかどうか検証します。次にサービスステータスを確認します。

Talend Data Mapperストラクチャーの作成

マップ用にストラクチャーを作成します。

手順

  1. [Mapping] (マッピング)パースペクティブに切り替えて、[Data Mapper] > [Hierarchical Mapper] (階層マッパー)に移動します。
  2. [Structures] (ストラクチャー)を右クリックし、[Menu] (メニュー) > [New Structure] (新しいストラクチャー)を選択します。
  3. [Import a structure definition] (ストラクチャーの定義をインポート)を選択します。
  4. [CSV]を選択します。
  5. [Local file] (ローカルファイル)フィールドで、入力コードが含まれているファイルを指定します。この例ではraw.txtを使用します。
  6. ストラクチャーの名前を入力して[Finish] (終了)をクリックし、入力ファイルに基づくスキーマを作成します。

ビッグデータバッチジョブの作成

Hadoopクラスターとストラクチャーを作成した後は、tHDFSConfigurationtHMapInputtLogRowという3つのコンポーネントを含んでいるビッグデータバッチジョブをデザインします。

手順

  1. [Integration] (統合)パースペクティブに切り替えて、[Repository] (リポジトリー) > [Job Designs] (ジョブデザイン)に移動します。
  2. [Big Data Batch] (ビッグデータバッチ)を右クリックし、[Create Big Data Batch Job] (ビッグデータバッチジョブの作成)を選択します。
  3. ジョブの作成に必要となる詳細を入力します。
  4. 作成したHadoopクラスターメタデータをジョブデザインにドラッグし、tHDFSConfigurationコンポーネントを選択します。
  5. thMapInputtLogRowを追加し、[Row] (行) > [Main] (メイン)接続を使ってこれらのコンポーネントを接続します。
    1. 出力名を入力するよう求められたら、OUTPUTと入力します。
  6. tHMapInputを選択して[Basic Settings] (基本設定)タブを開きます。
    1. [Define a storage configuration component] (ストレージの設定コンポーネントを定義)チェックボックスをオンにし、tHDFSConfigurationコンポーネントを選択されたストレージとして選択します。
    2. [Input] (入力)フィールドで入力ファイルを指定します。
    3. [Configure Component] (コンポーネントの設定)を選択し、先ほど作成したストラクチャーを選びます。
    4. [Input Representation] (入力表記)ドロップダウンメニューで、[Flat] (フラット)を選択します。
    5. [Next] (次へ)をクリックし、[Sample from File System] (ファイルシステムからのサンプル)フィールドに入力ファイルを追加します。

マップのテストとジョブの実行

Talend Data Mapperストラクチャーで自動的に作成および生成されるマップをテストします。

手順

  1. マップを開き、出力に含めるエレメントをドラッグします。
  2. [Test Run] (テスト実行)をクリックします。
  3. ビッグデータバッチジョブに戻ります。
  4. [Run] (実行)をクリックしてこのジョブを実行します。

トラブルシューティング

サンプルシナリオの実行中にエラーが発生した場合は、ジョブが正常に実行できるソリューションをいくつか参照してください。

  • Clouderaの不正な設定: Clouderaでは、クラスターが同製品の内部用FQDN (完全修飾ドメイン名)で設定されてしまうことがあります。これが該当する場合は、接続エラーを回避できるよう、お使いのホストファイルに追加操作を行う必要があります。

    それを実行するには、C:\\Windows\System32\drivers\etcに移動し、管理者としてホストファイルを開きます。次に、お使いのクラスターの外部IPアドレスと内部FQDNを追加します。ファイルを保存します。

    以上の操作によって、Clouderaが内部FQDNを使用するようになります。

  • ビッグデータバッチジョブに共通するエラー:Talend Studioとは異なるサーバーに存在するHadoopクラスターに接続している場合、次のエラーは無視して構いません。
    このエラーは、Sparkワーカーをローカルに実行するwinutilsを探すだけのものです。このエラーが発生しないようにするには、winutilsをダウンロードして抽出します。その抽出先をHadoopのホームディレクトリーとして設定します。