Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Talend Open Studiofor Big Data⼊⾨ガイド
5.5.2
Talend Open Studio for Big Data
v5.5.2に対応しており、以前のリリースの更新版となります。
発⾏⽇ 2015年1⽉29⽇
Copyleft
本書は、クリエイティブコモンズパブリックライセンス(CCPL)の条件に基づいて提供されています。CCPLに準拠した許可事項および禁⽌事項の詳細は、http://creativecommons.org/licenses/by-nc-sa/2.0/を参照してください。
商標について
すべてのブランド、商品名、会社名、商標、およびサービスマークは各所有者に帰属します。
Talend Open Studio for Big Data ⼊⾨ガイド
⽬次序⽂ .................................................................................................................. v
1. ⼀般情報 ............................................................................................................. v1.1. ⽬的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v1.2. 対象読者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v1.3. 表記⽅法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
2. フィードバックとサポート ........................................................................................ v1. Talendビッグデータソリューションへの⼊⾨ ...................................................... 1
1.1. HadoopとTalend Studio ...................................................................................... 21.2. Talendビッグデータソリューションの機能的なアーキテクチャ .......................................... 2
2. デモプロジェクトを使ったTalendビッグデータの⼊⾨ .......................................... 52.1. ビッグデータのデモプロジェクトの概要 ..................................................................... 6
2.1.1. Hortonworks_Sandbox_Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2. NoSQL_Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2. デモジョブを実⾏するための環境のセットアップ ........................................................... 82.2.1. Hortonworks Sandboxのインストール .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2. デモプロジェクトで使⽤しているコンテキスト変数の理解 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3. Talend Studioでのジョブの処理 ..................................................................... 153.1. Oozieを経由したジョブの実⾏⽅法 .......................................................................... 16
3.1.1. HDFS接続の詳細の設定⽅法 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.1.2. HDFSサーバー上でジョブを実⾏する⽅法 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.1.3. ジョブの実⾏のスケジュール⽅法 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.1.4. ジョブの実⾏ステータスの監視⽅法 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4. ビッグデータのフローマッピング ..................................................................... 274.1. tPigMapのインターフェイス ................................................................................. 284.2. tPigMap操作 .................................................................................................... 29
4.2.1. 結合操作の設定 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.2.2. リジェクトレコードの捕捉 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.2.3. 式の編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2.4. Pigユーザー定義関数のセットアップ .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
付録 A. ビッグデータのジョブの例 ....................................................................... 37A.1. Hadoopを使⽤したWebトラフィック情報の収集 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
A.1.1. 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38A.1.2. シナリオ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38A.1.3. シナリオからジョブへの変換 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Talend Open Studio for Big Data ⼊⾨ガイド
Talend Open Studio for Big Data ⼊⾨ガイド
序⽂
1. ⼀般情報
1.1. ⽬的特に明記しない限り、このガイドで「Talend Studio」または「Studio」という表記は、ビッグデータ機能を持つすべてのTalend Studio製品を指します。
この⼊⾨ガイドは、通常の操作状況で Talend Studioのビッグデータ専⽤機能を管理する⽅法について説明します。
このドキュメントに記載されている情報は、Talend Studio5.5.2に該当します。
1.2. 対象読者このガイドはTalend Studioのユーザーと管理者を対象としています。
このドキュメントに含まれているGUI画⾯のレイアウトは、実際のGUIと多少異なる場合があります。
1.3. 表記⽅法このガイドでは、以下の表記⽅法を採⽤しています。
• bold (太字)のテキスト: ウィンドウおよびダイアログボックスのボタンとフィールド、キーボードのキー、メニュー、メニューのオプション
• [bold] (太字)のテキスト: ウィンドウ、ウィザード、およびダイアログボックスのタイトル
• courier のテキスト: ユーザーが⼊⼒するシステムパラメーター
• italics (斜体)のテキスト: ファイル、スキーマ、列、⾏、および変数名
• アイコンは、重要な点について追加情報を提供するアイテムを⽰します。また、表や図に関するコメントを追加する場合にも使⽤されます。
• アイコンは、実⾏要件や推奨タイプに関する情報を提供するメッセージを⽰します。また、エンドユーザーが特に注意を払う必要がある状況や情報を⽰す場合にも使⽤されます。
2. フィードバックとサポートお客様からのフィードバックは当社にとって⼤変貴重です。本ドキュメントまたは本製品に関するご意⾒、ご提案、ご要望をお寄せいただく場合やサポートが必要な場合は、次のTalendフォーラムのTalendチームまで、お気軽にご連絡ください:
フィードバックとサポート
vi Talend Open Studio for Big Data ⼊⾨ガイド
http://talendforge.org/forum
Talend Open Studio for Big Data ⼊⾨ガイド
1.Talendビッグデータソリューションへの⼊⾨組織が収集するデータが、ますます肥⼤し複雑さを増す傾向にあるのは、今に始まったことではありません。特にインターネットの時代では、従来のようなあり合わせの情報管理ツールを使ってこのように肥⼤化・複雑化したデータを処理することは、よりいっそう難しくなってきています。このような難問を克服するために、「ビッグデータ」ツールの新しいプラットフォームが登場しました。Apache Hadoop Big Data Platformは、⼤量のデータを処理するために特別にデザインされたプラットフォームです。
Talendのデータ統合ソリューションを基礎とするTalendのビッグデータソリューションは、Apache Hadoop Big Data Platformを活⽤してユーザーがビッグデータへのアクセス、変換、移動、 同期を⾏ったり、Hadoopプラットフォームをごく⼿軽に使うことができるパワフルなツールセットです。
このガイドでは、Talend Studioのビッグデータに関連するフィーチャーと機能のみを説明しています。そのため、Studioを使ってビッグデータのジョブを処理する場合は、先にユーザーガイドを読んでStudioの使い⽅を確認してください。
HadoopとTalend Studio
2 Talend Open Studio for Big Data ⼊⾨ガイド
1.1. HadoopとTalend Studio通常、ITスペシャリストが'ビッグデータ'と呼ぶのは、従来のデータ管理ツールでは処理できない膨⼤で複雑なデータセットのことを指します。このように膨⼤なデータが⽣じるのには、さまざまな理由があります。たとえば、⾃動的に⽣成されたデータストリーム(レポート、ログ、カメラフッテージなど)や、顧客の動向を詳しく分析した結果(消費データ)、科学的な調査(該当する例としては⼤型ハドロン衝突型加速器などが挙げられる)、またはさまざまなデータソースの結合などが挙げられます。
これらのデータリポジトリはペタバイトやエクサバイト規模に肥⼤化することが多く、従来のデータベースシステムは処理能⼒が限られているため分析を⾏うのは困難です。ビッグデータの分析を⾏うには、演算能⼒を数千台規模のコンピューターに分散し、分析した結果を中央のコンピューターに転送する膨⼤な並列環境が必要です。
Hadoopのオープンソースプラットフォームは、ビッグデータの分析を⾏う主要なフレームワークとして登場しました。この分散ファイルシステムでは、情報をいくつかのデータブロックに分割し、ネットワーク内の複数のシステム(Hadoopクラスター)で処理します。Hadoopは、演算能⼒を分散化することで、可⽤性と冗⻑性も⾼まります。'マスターノード'では、 ファイルストレージと要求を処理します。
Hadoopは、ビッグデータを処理するうえで⾮常に強⼒なコンピューティングプラットフォームです。外部の要求を受け⼊れ、クラスターの中にある個々のコンピューターに分散化し、個々のノードで並列実⾏することができます。その結果は、中央に送り返して分析することができます。
ただし、データアナリストがHadoopの利点を活⽤するには、データをHadoopにロードし、その後、このオープンソースシステムからデータを抽出するための⽅法が必要です。その⽅法を提供するのが、Talend Studioです。
Talend Studioは、Talendのデータ統合ソリューションに基づいて設計されているので、ユーザーはHadoopやそのデータベースをはじめ、HBase、HCatalog、HDFS、Hive、Oozie、Pigなどのテクノロジーを活⽤してビッグデータを簡単に処理することができます。
Talend Studioはグラフィカル開発環境で簡単に使えるため、複雑なコードの習得や記述を⾏わずにビッグデータのソースとターゲットとのインタラクションが可能になります。ビッグデータの接続を設定すると、基盤となるコードが⾃動的に⽣成され、サービスや実⾏可能なジョブ、またはスタンドアロンのジョブとしてデプロイし、HDFS、Pig、HCatalog、HBase、Sqoop、Hiveなどビッグデータのクラスター上でネイティブに実⾏することができます。
Talendのビッグデータソリューションは、すべての主要なビッグデータプラットフォームへの包括的なサポートを提供しています。Talendのビッグデータコンポーネントは、主流のビッグデータのHadoopディストリビューションであるCloudera、Greenplum、Hortonworks、MapRなどと連携して動作します。さらにTalendでは、Greenplum、Netezza、Teradata、Verticaなどの主流のアプライアンスベンダーの多様なビッグデータプラットフォームをネイティブサポートしています。
1.2. Talendビッグデータソリューションの機能的なアーキテクチャTalendビッグデータソリューションの機能的なアーキテクチャとは、Talendビッグデータソリューションの機能、インタラクション、該当するITのニーズを特定するアーキテクチャモデルを指します。全体的なアーキテクチャについては、それぞれの機能ブロックごとで機能を特定して説明しています。
次の図は、Studioでのビッグデータの処理に関連するアーキテクチャ上の主な機能ブロックを⽰しています。
Talendビッグデータソリューションの機能的なアーキテクチャ
Talend Open Studio for Big Data ⼊⾨ガイド 3
機能ブロックは次の3つに分類できます。
• 少なくとも1つのStudio。ここでは、Apache Hadoopプラットフォームを活⽤して、⼤量のデータセットを処理するビッグデータジョブを設計します。これらのジョブはローカルで実⾏することもできますが、Studio内に統合されたOozieワークフローのスケジューラーシステムを通じて、Hadoopグリッド上にデプロイ、スケジュール、実⾏することもできます。
• Studio内に統合されたワークフローのスケジューラーシステムを通じて、Hadoopグリッド上にビッグデータジョブをデプロイ、スケジュール、実⾏し、ジョブの実⾏ステータスや結果を監視することができます。
• Talendシステムから独⽴したHadoopグリッドでは、⼤量のデータセットを処理します。
Talend Open Studio for Big Data ⼊⾨ガイド
Talend Open Studio for Big Data ⼊⾨ガイド
2.デモプロジェクトを使ったTalendビッグデータの⼊⾨この章は、デモプロジェクトに含まれているサンプルジョブについて簡単に説明し、Hadoopプラットフォームでサンプルジョブを実⾏するために必要な準備作業を紹介します。デモプロジェクトのインポート⽅法については、『Talend Studioユーザーガイド』のデモプロジェクトのインポートのセクションを参照してください。
Studioでの作業を始める前に、GUI (グラフィカルユーザーインターフェイス)に慣れておく必要があります。詳細は、『Talend Studioユーザーガイド』のGUIに関する付録を参照してください。
ビッグデータのデモプロジェクトの概要
6 Talend Open Studio for Big Data ⼊⾨ガイド
2.1. ビッグデータのデモプロジェクトの概要Talendでは、ビッグデータのデモプロジェクトを提供しています。このプロジェクトには、簡単に使えるサンプルジョブが多数含まれています。このデモプロジェクトをTalend Studioにインポートし、Talend Studioの使い⽅を習得したり、Talendコンポーネントのさまざまなフィーチャーや関数についての理解を深めることができます。
デモプロジェクトの⼀部のジョブには、他社のJavaライブラリやデータベースドライバー(.jarファイル)が必要なTalendコンポーネントが含まれていますが、ライセンスに互換性がないため、Talend Studioにはこれらの.jarファイルが同梱されていません。そのようなコンポーネントが含まれているジョブを実⾏する前に、これらの.jarファイル(外部モジュール)をダウンロードしてインストールしてください。Talend Studioには、外部モジュールをすばやく簡単にインストールするためのウィザードがあります。このウィザードは、ジョブを実⾏しようとしたときに、必要な外部モジュールが不⾜していることをStudioが検出した場合に⾃動的に表⽰されます。このウィザードは、1つまたは複数の必須外部モジュールが不⾜しているコンポーネントの[Basicsettings] (基本設定)または[Advanced settings] (詳細設定)ビューの上部で [Install] (インストール)をクリックした場合にも表⽰されます。
他社モジュールのインストール⽅法について詳しくは、『Talendインストレーションガイド』の外部モジュールの識別・インストール⽅法についてのセクションを参照してください。
ビッグデータのデモプロジェクトをインポートして、Talend Studioで開くと、プロジェクトに含まれているすべてのサンプルジョブが[Repository] (リポジトリ)ツリービューの[Job Designs] (ジョブデザイン)ノードの下のさまざまなフォルダーから使⽤できるようになります。
次のセクションでは、メインフォルダーの下の各サブフォルダーに含まれているジョブについて簡単に説明します。
Hortonworks_Sandbox_Samples
Talend Open Studio for Big Data ⼊⾨ガイド 7
2.1.1. Hortonworks_Sandbox_SamplesStandard Jobs (標準ジョブ)サブノードの下にあるHortonworks_Sandbox_SamplesHadoopプラットフォームでのデータの処理⽅法を紹介する標準的なTalendジョブが集められています。
フォルダー サブフォルダー 説明Advanced_Examples Advanced_Examplesフォルダーには、いくつかの使⽤例
が含まれています。たとえば、TalendのApache WeblogやHCatalogコンポーネントおよびPigコンポーネントを使⽤したApache Weblogの処理例や、Hiveクエリを使った⽶国政府の歳出データの計算例、MySQLデータベースからデータを抽出する例、テーブルからすべてのデータを動的にロードする例などがあります。
これらの例を実⾏するために複数の⼿順が必要な場合は、「Step_1」、「Step_2」などの名前が付いています。
ApacheWebLog このフォルダーには、Apache WeblogをHCatalogやHDFSにロードしたり、特定のコードを抽出する、従来のWeblogファイルプロセスが含まれています。⼀意のIPアドレスやWebコードの数を計算する例は2つあります。これらの例では、PigスクリプトとHCatalogロードを使⽤しています。
この例には6つの⼿順があり、ジョブ名の順序に従って各⼿順が実⾏されます。
この例について詳しくは、サンプルジョブの作成・設定⽅法をステップバイステップで説明している付録A ビッグデータのジョブの例の「Hadoopを使用したWebトラフィック情報の収集」を参照してください。
Gov_Spending_Analysis この例では、⽶国政府の歳出サンプルデータをHCatalogにロードし、政府機関ごとの歳出総額をHiveクエリを使って計算する2つの⼿順のプロセスを紹介しています。また、追加のData Integrationジョブでは、http://usaspending.gov/dataのWebサイトからファイルをダウンロードし、HCatalogにデータをロードするジョブのための⼊⼒データを準備します。[tFixedFlowInput]コンポーネントを⼊⼒ファイルに置き換える必要があります。
この例には2つの⼿順があり、ジョブ名の順序に従って各⼿順が実⾏されます。
RDBMS_Migration_SQOOP これは、MySQLスキーマからデータを読み取り、HDFSにロードする2つの⼿順のプロセスです。データベースには、MySQL5.5以降のバージョンが使⽤できます。スキーマには、テーブルを必要な数だけ含めることができます。「SQOOP_SCENARIO_CONTEXT」というラベルが付いたコンテキスト変数にデータベースとスキーマを設定すると、1つ⽬のジョブが動的にスキーマを読み取り、テーブルをリストしたファイルが2つ作成されます。1つ⽬のファイルには、プライマリーキーのあるテーブルが含まれ、HCatalogまたはHiveが使⽤されている場合はパーティションで区切られます。2つ⽬のファイルには、プライマリーキーのないテーブルが含まれます。2つ⽬の⼿順では、この2つのファイルを使ってスキーマのMySQLテーブルからすべてのデータをHDFSにロードします。テーブルごとに1つのファイルが作成されます。
Sandboxのシングルノードの仮想マシンを使っている場合は処理能⼒が⼗分にないため、このプロセスを実⾏するときに⼤容量のスキーマを選択しないようにしてください。Sandboxのシングルノードの仮想マシンを使った場合の処理について詳しくは、「Hortonworks Sandboxのインストール」を参照してください。
E2E_hCat_2_Hive このフォルダーには⾮常にシンプルなプロセスが含まれています。このプロセスでは、最初の⼿順でHCatalogにサンプル
NoSQL_Examples
8 Talend Open Studio for Big Data ⼊⾨ガイド
フォルダー サブフォルダー 説明データをロードし、次の⼿順でどのようにHiveコンポーネントを使ってデータへのアクセスや処理ができるかを⽰しています。
HBASE このフォルダーには、HBaseへのデータのロードと読み取りの⽅法を⽰す、シンプルな例が含まれています。
HCATALOG HCatalogには、2つの例があります。1つ⽬の例は、ファイルをHDFSに直接取り込み、メタストアとともに情報をHCatalogにロードします。2つ⽬の例は、データストリーミングをHCatalogの定義済みのパーティションに直接ロードします。
HDFS このフォルダーの例は、Get、Put、Streamingのロードなど、基本的なHDFSオペレーションを⽰しています。
HIVE このフォルダーには、3つの例が含まれています。1つ⽬のジョブは、Hiveコンポーネントを使ってHive上でデータベースの作成、テーブルの作成、テーブルへのデータのロードなど、基本的なオペレーションを⾏う⽅法を⽰しています。あとの2つのジョブは、まず1つ⽬の⼿順でHiveに2つのテーブルをロードし、それを使って2つ⽬の⼿順でELTをHiveで実⾏する⽅法を⽰しています。
PIG このフォルダーには、Pigコンポーネントを使って主な関数を実⾏する⽅法を⽰す例が数多く含まれています。これには、集計やフィルタリングなどの関数や、Pig Codeの使い⽅を⽰す例などがあります。
2.1.2. NoSQL_ExamplesメインフォルダーのNoSQL_Examplesには、NoSQLデータベースでデータがどのように処理されるかを⽰すためのジョブが集められています。
フォルダー 説明Cassandra これは、Cassandraデータベースへの基本的な書き込み・読み取りを⾏う⽅法を⽰し
たもう1つの例で、Cassandra NoSQLデータベースをすぐに使い始めることができます。
MongoDB このフォルダーには、ブログエントリからオープンテキストの⾮構造データをすばやく簡単にキーワードで検索できるMongoDBの使い⽅を⽰した例が含まれています。
2.2. デモジョブを実⾏するための環境のセットアップビッグデータのデモプロジェクトは、Talendのビッグデータソリューションの数多くの基本的な機能を紹介することを⽬的とした⼿軽で実践的な例です。デモプロジェクトに含まれているデモジョブを実⾏するには、Hadoopプラットフォームを起動する必要があります。また、想定されているHortonworks Sandboxの仮想アプライアンスを使⽤しない場合は、デモプロジェクトに定義されているコンテキスト変数を設定したり、関連するコンポーネントを直接設定する必要もあります。
2.2.1. Hortonworks SandboxのインストールHadoopプラットフォームをすばやく簡単に起動するには、Hadoopディストリビューションのトップベンダーの仮想アプライアンスを選ぶ⽅法があります。Hortonworksでは、Sandboxという名
Hortonworks Sandboxのインストール
Talend Open Studio for Big Data ⼊⾨ガイド 9
前の仮想アプライアンス・仮想マシン(VM)を提供しており、すばやく簡単にセットアップができます。デモプロジェクトのHortonworks_Sandbox_Samplesフォルダー内にあるサンプルジョブは、Hortonworks Sandbox VMで機能するようにコンテキスト変数を使⽤して設定されています。
下記に、Hortonworksが推奨するOracle VirtualBox上に、Hortonworks Sandboxの仮想マシンをセットアップする⼿順を⼿短に紹介します。詳しくは、該当するベンダーのドキュメンテーションを参照してください。
1. Oracle VirtualBoxの推奨バージョンをhttps://www.virtualbox.org/からダウンロードします。また、VirtualBoxのSandboxのイメージをhttp://hortonworks.com/products/hortonworks-sandbox/からダウンロードします。
2. Oracle VirtualBoxのドキュメンテーションに従ってOracle VirtualBoxのインストールとセットアップを⾏います。
3. Hortonworks Sandboxの指⽰に従って、Oracle VirtualBox上にHortonworks Sandboxの仮想アプライアンスをインストールします。
4. [Oracle VM VirtualBox Manager] (Oracle VM VirtualBoxマネージャー)ウィンドウで[Network](ネットワーク)をクリックし、[Adapter 1] (アダプター1)タブを選択して、[Attached to](接続先)リストボックスから[Bridged Adapter] (ブリッジアダプター)を選択します。さらに、[Name] (名前)リストボックスから使⽤する物理ネットワークのアダプターを選択します。
5. Hortonworks Sandboxの仮想アプライアンスを起動し、Hadoopプラットフォームを実⾏します。次に、Sandboxの仮想アプライアンスに割り当てられたIPアドレスがPing可能であることを確認します。
次に、デモジョブを起動する前に、sandboxというホスト名を解決するため、hostsファイルにIPドメインのマッピングエントリを追加します。このエントリは、このデモプロジェクトでSandbox仮想マシンのIPアドレスを使う代わりに、2つのコンテキスト変数の値として定義されています。これにより、設定されたコンテキスト変数を変更する⼿間を省くことができます。
デモプロジェクトで使⽤しているコンテキスト変数について詳しくは、「デモプロジェクトで使用しているコンテキスト変数の理解」を参照してください。
デモプロジェクトで使⽤しているコンテキスト変数の理解
10 Talend Open Studio for Big Data ⼊⾨ガイド
2.2.2. デモプロジェクトで使⽤しているコンテキスト変数の理解Talend Studioでは、プロジェクトレベルのコンテキスト変数を⼀度定義しておけば、多数のジョブで再利⽤できます。通常は、さまざまなジョブやプロセスで共通している接続やその他の設定を繰り返し⾏う⼿間を省くことを⽬的としています。そのメリットは明⽩でしょう。たとえば、コンテキスト変数にネームノードのIPアドレスを定義して、その変数を使⽤する50個のジョブを作成し、その後、ネームノードのIPアドレスを変更する場合は、コンテキスト変数をアップデートするだけで済みます。Studioはこのアップデートにより影響が及ぶすべてのジョブについて通知し、⼀括して変更します。
プロジェクトレベルのコンテキスト変数は、[Repository] (リポジトリ)ツリービューの[Contexts] (コンテキスト)ノードの下にグループ化されます。ビッグデータのデモプロジェクトでは、プロジェクトレベルのコンテキスト変数が[Repository] (リポジトリ)の[HDP]と[SQOOP_SCENARIO_CONTEXT]という2つのグループに定義されています。
1つのグループの中にあるコンテキスト変数の設定を表⽰・編集するには、[Repository] (リポジトリ)ツリービューの中でグループ名をダブルクリックし、[Create / Edit a context group] (コンテキストグループの作成/編集)ウィザードを開き、[Values as tree] (値のツリー表⽰)タブと [Values astable] (値のテーブル表⽰)タブのいずれかを選択します。
デモプロジェクトで使⽤しているコンテキスト変数の理解
Talend Open Studio for Big Data ⼊⾨ガイド 11
[HDP]グループのコンテキスト変数は、Hortonworks_Sandbox_Samplesフォルダーのすべてのデモサンプルで使⽤されています。これらの変数の値は、必要に応じて変更できます。たとえば、sandboxというホスト名の代わりに、Sandbox Platform VMのIPアドレスを使⽤する場合は、ホスト名の変数の値をIPアドレスに変更します。Sandbox VMのデフォルト設定を変更した場合は、デモサンプルが想定通りに実⾏できるように、コンテキスト設定も適切に変更する必要があります。
変数名 説明 デフォルト値namenode_host ネームノードのホスト名 sandboxnamenode_port ネームノードのポート 8020user Hadoopシステムに接続するユーザー名 sandboxtempleton_host HCatalogサーバーのホスト名 sandboxtempleton_port HCatalogサーバーのポート 50111hive_host Hiveメタデータのホスト名 sandboxhive_port Hiveメタストアのポート 9083jobtracker_host ジョブトラッカーのホスト名 sandboxjobtracker_port ジョブトラッカーのポート 50300mysql_host HiveメタストアのSandboxのホスト sandboxmysql_port Hiveメタストアのポート 3306mysql_user Hiveメタストアに接続するユーザー名 hepmysql_passed Hiveメタストアに接続するパスワード hepmysql_testes Hiveメタストアのテストデータベースの名前 testeshbase_host HBaseのホスト名 sandbox
デモプロジェクトで使⽤しているコンテキスト変数の理解
12 Talend Open Studio for Big Data ⼊⾨ガイド
変数名 説明 デフォルト値hbase_port HBaseのポート 2181
[SQOOP_SCENARIO_CONTEXT]グループのコンテキスト変数は、RDBMS_Migration_SQOOP のデモサンプルのみに使⽤されています。RDBMS_Migration_SQOOP デモを使⽤する場合は、ローカルのMySQL接続で使⽤するSandbox VMに応じて、次のコンテキスト変数をアップデートする必要があります。
変数名 説明 デフォルト値KEY_LOGS_DIRECTORY テーブルファイルが保存されており、Studioから
フルアクセスが可能なローカルマシン上のディレクトリ
C:/Talend/BigData/
MYSQL_DBNAME_TO_MIGRATE HDFSに移⾏するMySQLデータベースの名前 dstar_crmMYSQL_HOST_or_IP MySQLデータベースのホスト名またはIPアドレス 192.168.56.1MYSQL_PORT MySQLデータベースのポート 3306MYSQL_USERNAME MySQLデータベースに接続するユーザー名 tisadminMYSQL_PWD MySQLデータベースに接続するパスワードHDFS_LOCATION_TARGET データをロードするSandbox HDFS上の場所 /user/hdp/sqoop/
プロジェクトレベルのコンテキスト変数をジョブで使⽤するには、まず[Context] (コンテキスト)ビューで ボタンをクリックしてジョブにインポートしておく必要があります。また、ジョブの[Contexts] (コンテキスト)ビューでコンテキスト変数を定義することもできます。これらの変数は、そのジョブだけに有効な組み込み変数になります。
[Contexts] (コンテキスト)ビューには、ジョブに定義した組み込み型のコンテキスト変数と、ジョブにインポートしたプロジェクトレベルのコンテキスト変数が表⽰されます。
変数を定義すると、コンポーネントの設定で参照されます。次の例は、デモプロジェクトのPigジョブにあるtHDFSConnectionコンポーネントの設定で使⽤されているコンテキスト変数です。
デモプロジェクトで使⽤しているコンテキスト変数の理解
Talend Open Studio for Big Data ⼊⾨ガイド 13
HortonWorks Sandboxの設定をこれらの変数に反映させれば、ほとんど⼲渉せずにサンプルジョブをスムーズに実⾏できます。これらのサンプルのコア機能のいくつかは、あなたのビッグデータのプロジェクトにも実装できることでしょう。
コンテキスト変数の定義・使⽤⽅法について詳しくは、『Talend Studioユーザーガイド』のコンテキストや変数の⼀元化に関するセクションを参照してください。
[Run] (実⾏)コンソールからジョブを実⾏する⽅法については、『Talend Studioユーザーガイド』のジョブの実⾏⽅法に関するセクションを参照してください。
[Oozie scheduler] (Oozieスケジューラー)ビューからジョブを実⾏する⽅法については、「Oozieを経由したジョブの実行方法」を参照してください。
Talend Open Studio for Big Data ⼊⾨ガイド
Talend Open Studio for Big Data ⼊⾨ガイド
3.Talend Studioでのジョブの処理この章では、Hadoopのビッグデータプラットフォームを活⽤したTalend Studioで、⼤量のデータセットを持つジョブの処理⽅法について説明します。Talendデータの統合ジョブの⼀般的なデザイン、実⾏、管理の⽅法については、Talend Studioに付属しているユーザーガイドを参照してください。
Studioでジョブの作業を始める前に、GUI (グラフィカルユーザーインターフェイス)に慣れておく必要があります。詳細は、ユーザーガイドのGUIに関する付録を参照してください。
Oozieを経由したジョブの実⾏⽅法
16 Talend Open Studio for Big Data ⼊⾨ガイド
3.1. Oozieを経由したジョブの実⾏⽅法Talend StudioにはOozieスケジューラーが付属しています。これは、作成したジョブの実⾏をスケジュールしたり、リモートのHDFS (Hadoop Distributed File System)サーバーで直ちに実⾏したり、ジョブの実⾏ステータスを監視したりすることができるフィーチャーです。Apache OozieとHadoopについて詳しくは、http://oozie.apache.org/およびhttp://hadoop.apache.org/を参照してください。
[Oozie scheduler] (Oozieスケジューラー)ビューが表⽰されていない場合は、[Window] (ウィンドウ) >[Show view] (ビューの表⽰)をクリックし、[Show View] (ビューの表⽰)ダイアログボックスから[TalendOozie]を選択して設定タブのエリアに表⽰します。
3.1.1. HDFS接続の詳細の設定⽅法Talend Oozieでは、Studioで作成したジョブの実⾏スケジュールを設定することができます。
HDFSサーバー上でジョブを実⾏したり、実⾏スケジュールを設定する前に、HDFS接続の設定を定義する必要があります。これには、[Oozie scheduler] (Oozieスケジューラー)ビューまたはStudioの環境設定を使って、ジョブのデプロイ先のパスを指定します。
3.1.1.1. OozieスケジューラービューでのHDFS接続の詳細の定義
HDFS接続の詳細を[Oozie scheduler] (Oozieスケジューラー)ビューで定義するには、次の⼿順を実⾏します。
1. デザインワークスペースの下にある[Oozie scheduler] (Oozieスケジューラー)ビューをクリックします。
2. [Setting] (設定)をクリックして、接続のセットアップダイアログボックスを開きます。
HDFS接続の詳細の設定⽅法
Talend Open Studio for Big Data ⼊⾨ガイド 17
上記に示した接続の設定はあくまでも一例です。
3. 必要な情報を該当するフィールドに⼊⼒し、[OK]をクリックしてダイアログボックスを閉じます。
フィールド/オプション 説明Hadoop distribution(Hadoopディストリビューション)
接続先のHadoopディストリビューションです。このディストリビューションは、使⽤するHDFSファイルシステムをホストします。カスタムのHadoopディストリビューションに接続するには、[Custom] (カスタム)を選択し、[...]ボタンをクリックして[Import custom definition] (カスタム定義のインポート)ダイアログボックスを開き、このダイアログボックスでカスタムディストリビューションに必要なjarファイルをインポートします。
詳細は、「カスタムHadoopディストリビューションへの接続」を参照してください。
Hadoop version (Hadoopのバージョン)
接続先のHadoopディストリビューションのバージョンです。このリストは、[Hadoop distribution] (Hadoopディストリビューション)リストで[Custom](カスタム)を選択した場合は表⽰されません。
Enable Kerberos security(ケルベロスセキュリティの有効化)
ケルベロスセキュリティを実⾏しているHadoopクラスターにアクセスする場合は、このチェックボックスをオンにし、表⽰されるフィールドにネームノードとしてケルベロスのプリンシパル名を⼊⼒します。これにより、ユーザー名がケルベロスに保存されている認証情報に照合されます。
このチェックボックスは、接続しているHadoopのディストリビューションによっては、表⽰されないこともあります。
HDFS接続の詳細の設定⽅法
18 Talend Open Studio for Big Data ⼊⾨ガイド
フィールド/オプション 説明User name (ユーザー名) ログイン⽤のユーザー名です。Name node end point(ネームノードのエンドポイント)
ネームノードのURIです。これは、HDFSファイルシステムで最も重要な要素です。
Job tracker end point(ジョブトラッカーのエンドポイント)
ジョブトラッカーノードのURLです。これにより、MapReduceタスクをクラスター内の特定のノードに委託します。
Oozie end point (Oozieのエンドポイント)
OozieのWebコンソールのURIで、ジョブの実⾏を監視します。
Hadoop Properties(Hadoopのプロパティ)
対象のHadoopでカスタム設定を使⽤する必要がある場合は、このテーブルでカスタマイズするプロパティを設定します。その後、実⾏時にStudioがHadoopのエンジンに使⽤するデフォルトのプロパティが、カスタマイズした設定に上書きされます。
Hadoopで必要なプロパティについて詳しくは、http://hadoop.apache.orgに記載されているApacheのHadoopについてのドキュメンテーションを参照するか、使⽤するHadoopディストリビューションのドキュメンテーションを参照してください。
このテーブルで定義した設定は、ジョブごとに有効になります。
[Oozie scheduler] (Oozieスケジューラー)ビューで定義したHadoopのディストリビューション、バージョン、接続の詳細は、[Preferences] (環境設定)ウィンドウにも⾃動的に反映されます。また、その逆も同様です。Oozieの環境設定について詳しくは、「環境設定でのHDFS接続の詳細の定義」を参照してください。
いったん、[Oozie scheduler] (Oozieスケジューラー)ビューでデプロイメントパスを定義すれば、HDFSサーバー上でジョブをすぐに実⾏したり、実⾏スケジュールを設定することができます。
3.1.1.2. 環境設定でのHDFS接続の詳細の定義
Studioの環境設定でHDFS接続の詳細を定義するには、次の⼿順を実⾏します。
1. メニューバーで、[Window] (ウィンドウ) > [Preferences] (環境設定)をクリックし、[Preferences] (環境設定)ウィンドウを開きます。
2. [Talend]ノードを展開し、[Oozie]をクリックしてOozieの環境設定ビューを表⽰します。
HDFS接続の詳細の設定⽅法
Talend Open Studio for Big Data ⼊⾨ガイド 19
上記に示したOozieの設定はあくまでも一例です。
3. 必要な情報を該当するフィールドに⼊⼒します。
フィールド/オプション 説明Hadoop distribution(Hadoopディストリビューション)
接続先のHadoopディストリビューションです。このディストリビューションは、使⽤するHDFSファイルシステムをホストします。カスタムのHadoopディストリ
ビューションに接続するには、[Custom] (カスタム)を選択し、 ボタンをクリックして[Import custom definition] (カスタム定義のインポート)ダイアログボックスを開き、このダイアログボックスでカスタムディストリビューションに必要なjarファイルをインポートします。
詳細は、「カスタムHadoopディストリビューションへの接続」を参照してください。
Hadoop version (Hadoopのバージョン)
接続先のHadoopディストリビューションのバージョンです。このリストは、[Hadoop distribution] (Hadoopディストリビューション)リストで[Custom](カスタム)を選択した場合は表⽰されません。
Enable Kerberos security(ケルベロスセキュリティの有効化)
ケルベロスセキュリティを実⾏しているHadoopクラスターにアクセスする場合は、このチェックボックスをオンにし、表⽰されるフィールドにネームノードとしてケルベロスのプリンシパル名を⼊⼒します。これにより、ユーザー名がケルベロスに保存されている認証情報に照合されます。
このチェックボックスは、接続しているHadoopのディストリビューションによっては、表⽰されないこともあります。
User name (ユーザー名) ログイン⽤のユーザー名です。Name node end point(ネームノードのエンドポイント)
ネームノードのURIです。これは、HDFSファイルシステムで最も重要な要素です。
Job tracker end point(ジョブトラッカーのエンドポイント)
ジョブトラッカーノードのURLです。これにより、MapReduceタスクをクラスター内の特定のノードに委託します。
HDFS接続の詳細の設定⽅法
20 Talend Open Studio for Big Data ⼊⾨ガイド
フィールド/オプション 説明Oozie end point (Oozieのエンドポイント)
OozieのWebコンソールのURIで、ジョブの実⾏を監視します。
[Preferences] (環境設定)ウィンドウで定義したHadoopのディストリビューション、バージョン、接続の詳細は、[Oozie scheduler] (Oozieスケジューラー)ビューにも⾃動的に反映されます。また、その逆も同様です。[Oozie scheduler] (Oozieスケジューラー)ビューについて詳しくは、「Oozieを経由したジョブの実行方法」を参照してください。
カスタムHadoopディストリビューションへの接続
[Distribution] (ディストリビューション)ドロップダウンリストから[Custom] (カスタム)オプションを選択すると、Studioから提供される[Distribution] (ディストリビューション)リストにはないHadoopディストリビューションに接続します。
[Custom] (カスタム)オプションを選択したあとで、 ボタンをクリックすると、[Import customdefinition] (カスタム定義のインポート)ダイアログボックスが表⽰されます。ここで、次の⼿順を実⾏します。
1. 必要に応じて、[Import from existing version] (既存のバージョンからインポート)と[Importfrom zip] (ZIPからインポート)のいずれかを選択して、接続するカスタムHadoopディストリビューションを設定します。
• 接続先のカスタムHadoopディストリビューション⽤のZIPファイルがある場合は、[Importfrom zip] (ZIPからインポート)を選択します。これらのZIPファイルはTalendコミュニティが提供しており、http://www.talendforge.org/exchange/index.phpからダウンロードできます。
• それ以外は、[Import from existing version](既存のバージョンからインポート)を選択して、公式にサポートされているHadoopディストリビューションをインポートし、これをベースとして次のウィザードでカスタマイズします。
HDFS接続の詳細の設定⽅法
Talend Open Studio for Big Data ⼊⾨ガイド 21
このウィザードのチェックボックスを使って、インポートするHadoopのモジュールを選択します。接続を作成するときの状況によって、これらすべてのチェックボックスがウィザードに表⽰されないこともあります。たとえば、Oozieの接続を作成するときは、[Oozie]チェックボックスだけが表⽰されます。
2. [Import from existing version] (既存のバージョンからインポート)と[Import from zip] (ZIPからインポート)のどちらを選択した場合でも、インポートするHadoopのモジュールのチェックボックスをそれぞれオンにしてください。
3. [OK]をクリックすると、ポップアップ警告が表⽰されます。前に実装したjarファイルのカスタムセットアップを上書きする場合は、[Yes] (はい)をクリックします。
完了すると、[Custom Hadoop version definition] (カスタムHadoopバージョンの定義)ダイアログボックスがアクティブになります。
このダイアログボックスには、インポートするHadoopのモジュールとそのjarファイルがリストされます。
4. [Import from zip] (ZIPからインポート)を選択した場合は、[OK]をクリックしてインポートの設定を確定します。
[Import from existing version](既存のバージョンからインポート)を選択した場合は、jarファイルを追加してバージョンをカスタマイズします。カスタマイズするHadoopのモジュールのタブ(たとえば[HDFS/HCatalog/Oozie]タブなど)で[+]ボタンをクリックし、[Select libraries](ライブラリの選択)ダイアログボックスを開きます。
HDFSサーバー上でジョブを実⾏する⽅法
22 Talend Open Studio for Big Data ⼊⾨ガイド
5. [External libraries] (外部ライブラリ)オプションを選択して、ビューを表⽰します。
6. インポートするjarファイルを参照して選択します。
7. [OK]をクリックして変更を確定し、[Select libraries] (ライブラリの選択)ダイアログボックスを閉じます。
完了すると、設定したHadoopのモジュールのタブのリストに、選択したjarファイルが表⽰されます。
カスタムHadoopセットアップを別のStudioと共有する必要がある場合は、 ボタンを使って、このカスタム接続を[Custom Hadoop version definition] (カスタムHadoopバージョンの定義)ウィンドウからエクスポートすることができます。
8. [Custom Hadoop version definition] (カスタムHadoopバージョンの定義)ダイアログボックスで[OK]をクリックして設定のカスタマイズを確定します。これで、[Custom] (カスタム)オプションを選択した設定ビューに戻ります。
カスタムHadoopバージョンの設定を完了し、Hadoopの接続設定ビューに戻ったら、その接続に必要なその他のパラメーターを引き続き⼊⼒することができます。
接続先のカスタムHadoopバージョンにYARNが含まれており、それを使⽤する場合は、[Distribution] (ディストリビューション)リストの横にある[Use YARN] (YARNを使⽤する)チェックボックスをオンにします。
3.1.2. HDFSサーバー上でジョブを実⾏する⽅法HDFSサーバー上でジョブを実⾏するには、次の⼿順を実⾏します。
1. [Oozie scheduler] (Oozieスケジューラー)タブの[Path] (パス)フィールドに、HDFSサーバー上でジョブをデプロイするパスを⼊⼒します。
2. [Run] (実⾏)ボタンをクリックして、ジョブのデプロイメントを開始し、HDFSサーバー上で実⾏します。
ジョブのデータはZIPに圧縮され、HDFSサーバー上にデプロイされます。これはサーバーの接続設定に基づいて⾃動的に実⾏されます。接続状況によっては、時間がかかる場合もあります。コンソールには、ジョブのデプロイメントと実⾏ステータスが表⽰されます。
ジョブの実⾏が完了する前に中断する場合は、[Kill] (停⽌)ボタンをクリックします。
ジョブの実⾏のスケジュール⽅法
Talend Open Studio for Big Data ⼊⾨ガイド 23
3.1.3. ジョブの実⾏のスケジュール⽅法HDFSサーバー上でジョブの実⾏のスケジュールを設定するには、Talend Studioに統合されているOozieスケジューラー機能を使います。定義した期間内の頻度に応じてジョブが実⾏されます。ジョブのスケジュールを設定するには、次のように⾏います。
1. デプロイメントパスがまだ定義されていない場合は、ジョブをデプロイするHDFSサーバー上のパスをOozieスケジューラーの[Path] (パス)フィールドに、⼊⼒します。
2. [Oozie scheduler] (Oozieスケジューラー)タブの[Schedule] (スケジュール)ボタンをクリックして、スケジューリングの設定ダイアログボックスを開きます。
3. [Frequency] (頻度)フィールドに整数を⼊⼒し、[Time Unit] (時間単位)リストから時間の単位を選択して、ジョブの実⾏の頻度を定義します。
4. [Start Time] (開始時間)フィールドの横にある[...]ボタンをクリックして、[Select Date &Time] (⽇時の選択)ダイアログボックスを開き、ジョブの実⾏を開始する⽇、時、分、秒の値を選択して[OK]をクリックします。同様に、ジョブの実⾏の終了⽇時も設定します。
5. [OK]をクリックしてダイアログボックスを閉じ、スケジュールを設定したジョブの実⾏を開始します。
ジョブは、定義したスケジュールのパラメーターに従って⾃動的に実⾏されます。ジョブを停⽌するには、[Kill] (停⽌)をクリックします。
ジョブの実⾏ステータスの監視⽅法
24 Talend Open Studio for Big Data ⼊⾨ガイド
3.1.4. ジョブの実⾏ステータスの監視⽅法ジョブの実⾏ステータスや結果を監視するには、[Oozie scheduler] (Oozieスケジューラー)タブの[Monitor] (監視)ボタンをクリックします。OozieのエンドポイントのURIがWebブラウザに開き、HDFSサーバー上でのジョブの実⾏に関する情報が表⽰されます。
特定のジョブの詳細情報を表⽰するには、ジョブのいずれかのフィールドをクリックして別のページを開きます。そのページにジョブの詳細が表⽰されます。
ジョブの実⾏ステータスの監視⽅法
Talend Open Studio for Big Data ⼊⾨ガイド 25
Talend Open Studio for Big Data ⼊⾨ガイド
Talend Open Studio for Big Data ⼊⾨ガイド
4.ビッグデータのフローマッピングビッグデータのETLプロセスを開発するときは、1つまたは複数のデータソースから⽬的のシステムに保管されているデータにマッピングを⾏うのが⼀般的です。Hadoopには、ビッグデータの変換やルートプロセスの開発を容易にするスクリプト⾔語(Pig Latin)とプログラミングモデル(Map/Reduce)がありますが、これらを学び理解するためには⼤量のコーディングが必要です。
TalendのマッピングコンポーネントはHadoopの環境に最適化されており、データフローの⼊出⼒を視覚的にマッピングすることができます。
例としてtPigMapを挙げると、この章ではこれらのマッピングコンポーネントをでどのように使⽤できるかについての理論を説明しています。コンポーネントの使い⽅については、『Talend OpenStudio Components Reference Guide』の実践的な例を参照してください。
データ統合プロセスを始める前に、StudioのGUI (グラフィカルユーザーインターフェイス)に慣れておく必要があります。詳細は、『Talend Studioユーザーガイド』のGUIに関する付録を参照してください。
tPigMapのインターフェイス
28 Talend Open Studio for Big Data ⼊⾨ガイド
4.1. tPigMapのインターフェイスPigとは、スクリプト⾔語を使ってデータフローを表現したプラットフォームです。Pigは、Pig Latinという⾔語を使って、データを変換するステップバイステップのオペレーションをプログラミングします。
tPigMapは、Pigプロセスで処理する⼊出⼒フローをマッピングする、⾼度なコンポーネント(Pigコンポーネントのアレイ)です。そのため、ソースシステムからデータを読み込むためのtPigLoadと、指定した対象にデータを書き込むためのtPigStoreResultが必要になります。tPigLoad、tPigMap、tPigStoreResultから構成される基本的なデザインから始め、その他のさまざまなPigコンポーネントをtPigMapに追加していくことで、複雑度の異なるPigプロセスを視覚的に構築することができます。Pigコードはこれらのコンポーネントから⽣成されるため、Hadoop環境に最適なジョブが作成できます。
tPigMapの設定には、マップエディターを使います。[Map Editor] (マップエディター)はオールインワンのツールです。この便利なグラフィカルインターフェイスを使って、データフローのマッピング、変換、ルートなどを⾏うあらゆるパラメーターを定義することができます。
[Map Editor] (マップエディター)は最⼩化したり元のサイズに戻したりすることができるほか、[Map Editor] (マップエディター)のすべてのテーブルはウィンドウアイコンを使⽤しています。
[Map Editor] (マップエディター)には、次のように複数のパネルがあります。
• [Input panel] (⼊⼒パネル)はエディターの左上にあり、すべて(メインおよびルックアップ)の⼊⼒データフローを図で⽰します。データは、⼊⼒テーブルのさまざまな列で収集されます。テーブル名は、デザインワークスペースのジョブデザインでのメインまたはルックアップの⾏を反映しています。
• [Output panel] (出⼒パネル)はエディターの右上にあり、⼊⼒テーブルのデータやフィールドを適切な出⼒⾏にマッピングします。
tPigMap操作
Talend Open Studio for Big Data ⼊⾨ガイド 29
• 中⼼的なパネルは、[Search panel] (検索パネル)です。このパネルでは、[Find] (検索)フィールドに⽂字列を⼊⼒してエディターにある列や式を検索することができます。
• 下部のパネルはいずれも、⼊⼒と出⼒のスキーマの記述です。[Schema editor] (スキーマエディター)タブには、該当するパネルで選択した⼊出⼒テーブルのすべての列のスキーマが表⽰されます。
• [Expression editor] (式エディター)は、⼊出⼒データやフィルター条件式のすべてのキーを編集できるツールです。
[Map Editor] (マップエディター)の⼊出⼒テーブルの名前は、⼊出⼒フローの名前を反映しています(⾏の接続)。
この[Map Editor] (マップエディター)のデザインと使い⽅は、tMapなど、従来のTalendのマッピングコンポーネント⽤のマップエディターと同じです。そのため、従来のマッピングコンポーネントを⼗分に理解するために、Talend Studioでデータフローがどのようにマッピングされるかを説明した『Talend Studioユーザーガイド』の章を読むことをお勧めします。
4.2. tPigMap操作データフローのマッピングは、tPigMapの[Input panel] (⼊⼒パネル)から[Output panel] (出⼒パネル)に列をドラッグアンドドロップするだけで簡単に⾏うことができます。⼀⽅で、フィルターを編集したり、結合を設定したり、ユーザー定義の関数をPigで使⽤するなど、より⾼度な操作が必要になることもよくあるでしょう。そのために、tPigMapにはさまざまなオプションセットが豊富に⽤意されており、必要に応じて該当するPigコードを⽣成することができます。
次のセクションでは、これらのオプションについて説明しています。
4.2.1. 結合操作の設定
⼊⼒側では、適切なテーブルの ボタンをクリックすると、結合オプションの設定を⾏うパネルが表⽰されます。
ルックアッププロパティ 値Join Model Inner Join
リジェクトレコードの捕捉
30 Talend Open Studio for Big Data ⼊⾨ガイド
ルックアッププロパティ 値Left Outer Join
Right Outer Join
Full Outer Join
結合オプションのデフォルトは、Left Outer Joinです。これは、このオプション設定パネルを表⽰していないときの状態です。これらのオプションは、2つまたはそれ以上のフローを共通のフィールド値で結合します。
複数のルックアップテーブルを結合しなければならない場合は、メインの⼊⼒フローが1つ⽬のルックアップフローから結合を開始し、その結果に基づいて残りのフローを順に結合していきます。
Join Optimization None
Replicated
Skewed
Merge
結合オプションのデフォルトは、Noneです。これは、このオプション設定パネルを表⽰していないときの状態です。これらのオプションは、より効果的な結合操作を⾏う場合に使⽤します。たとえば、複数のReduceタスクの並列処理を使⽤するときは、処理するデータにかなりのずれが⽣じている場合に、Skewed結合を使って負荷分散の問題を是正します。
これらのオプションはいずれも、Apacheのドキュメンテーションで説明しているPig Latinに関する制約を受けます。
Custom Partitioner 中間のマップ出⼒のキーのパーティションを制御するためのHadoopパーティショナーを⼊⼒します。たとえば、SimpleCustomPartitionerというパーティショナーを使⽤する場合は、
org.apache.pig.test.utils.SimpleCustomPartitioner
を⼆重引⽤符で囲んで⼊⼒します。このパーティショナーのjarファイルは、Register jarテーブルに登録されている必要があります。このテーブルは、tPigLoadの[Advanced settings] (詳細設定)ビューで、使⽤するtPigMapコンポーネントにリンクされています。
このSimpleCustomPartitionerのコードについて詳しくは、PigLatinに関するApacheのドキュメンテーションを参照してください。
Increase Parallelism Pigが⽣成したHadoopのMap/Reduceタスクのうちの、Reduceタスクの数を⼊⼒します。Reduceタスクの並列処理について詳しくは、Pig Latinに関するApacheのドキュメンテーションを参照してください。
4.2.2. リジェクトレコードの捕捉
出⼒側では、適切なテーブルの ボタンをクリックして、出⼒オプションの設定に使⽤するパネルを表⽰すると、次のようなオプションが使⽤できます。
式の編集
Talend Open Studio for Big Data ⼊⾨ガイド 31
出⼒プロパティ 値Catch Output Reject True
False
このオプションをアクティブにすると、適切なエリアに定義したフィルターで、リジェクトされたレコードを捕捉することができます。
Catch Lookup Inner Join Reject True
False
このオプションをアクティブにすると、⼊⼒フローで実⾏した内部結合操作で、リジェクトされたレコードを捕捉することができます。
4.2.3. 式の編集⼊⼒と出⼒のいずれの側でも、Pig Latinを使って⼊出⼒データやフィルター条件式のすべてのキーを編集できます。このため、これらの条件に基づいて関係をフィルターしたり分割したりすることができます。Pig LatinとPigの関係について詳しくは、『Pig Latin Basics』や『Pig Latin ReferenceManual』など、Pigに関するApacheのドキュメンテーションを参照してください。
データの変換に必要な式は、式エディターの下半分に表⽰される[Expression editor] (式エディター)ビューに直接記述することができます。また、[Expression Builder] (式ビルダー)ダイアログボックスを開いて、データの変換式を記述することもできます。
[Expression builder] (式ビルダー)ダイアログボックスを開くには、開く式の横にある ボタンをクリックします。このボタンは、[Map Editor] (マップエディター)のルックアップフローまたは出⼒フローを⽰す表形式のパネルにあります。
式の編集
32 Talend Open Studio for Big Data ⼊⾨ガイド
選択した式の[Expression Builder] (式ビルダー)ダイアログボックスが開きます。
StudioでPigのユーザー定義関数(Pig UDF)を作成した場合は、[Pig UDF Functions] (Pig UDF関数)オプションが[Categories] (カテゴリー)リストに⾃動的に表⽰されます。これを選択して、使⽤するマッピング式を編集することができます。
Pig UDF関数を作成するには、[Repository] (リポジトリ)ツリーの[Code] (コード)ノードの下にある[Pig UDF]アイテムを使う必要があります。Pig Latinを使ったPig関数の記述⽅法は習得しなければなりませんが、Pig UDF関数の作成⽅法はTalendのルーチンと同様です。
式の編集
Talend Open Studio for Big Data ⼊⾨ガイド 33
[Repository] (リポジトリ)の表⽰は、使⽤するライセンスによって上記の図と異なる場合があります。
ルーチンについて詳しくは、ユーザーガイドのルーチンの管理⽅法に関する章を参照してください。
[Expression editor] (式エディター)ビューを開くには、次の⼿順を実⾏します。
1. エディターの下半分で、[Expression editor] (式エディター)タブをクリックして、該当するビューを開きます。
2. 式を設定する列をクリックし、[Expression editor] (式エディター)ビューで式を編集します。
⼊出⼒フローのフィルター条件を設定する必要がある場合は、 ボタンをクリックして表⽰されたエリアで式を編集するか、[Expression editor] (式エディター)ビューまたは[Expression Builder] (式ビルダー)ダイアログボックスを使⽤します。
Pigユーザー定義関数のセットアップ
34 Talend Open Studio for Big Data ⼊⾨ガイド
4.2.4. Pigユーザー定義関数のセットアップ上記のセクションで説明したように、Pigユーザー定義関数(Pig UDF)を作成すると、⾃動的に[Expression Builder] (式ビルダー)ビューの[Category] (カテゴリー)リストに追加されます。
1. [Repository] (リポジトリ)ツリーの[Code] (コード)ノードの下にある[Pig UDF]サブノードを右クリックし、コンテキストメニューから[Create Pig UDF] (Pig UDFの作成)を選択します。
[Create New Pig UDF] (Pig UDFの新規作成)ウィザードが表⽰されます。
Pigユーザー定義関数のセットアップ
Talend Open Studio for Big Data ⼊⾨ガイド 35
2. [Template] (テンプレート)リストから、作成するPig UDF関数の種類を選択します。選択した種類に基づいて、該当するPig UDFのテンプレートがStudioから提供されます。
3. ウィザードのその他のフィールドを⼊⼒します。
4. [Finish] (完了)をクリックして変更を確定すると、ワークスペースにPig UDFのテンプレートが開きます。
5. テンプレートにコードを書き込みます。
書き終わったら、このPig UDFが⾃動的にtPigMapの[Expression Builder] (式ビルダー)ビューにある[Categories] (カテゴリー)リストに表⽰され、使⽤可能になります。
Talend Open Studio for Big Data ⼊⾨ガイド
Talend Open Studio for Big Data ⼊⾨ガイド
付録A ビッグデータのジョブの例この章は、Talendビッグデータソリューションのユーザーに実際の使⽤例を⽰し、製品を⾃在に活⽤いただくたことを⽬的としています。この章は、『Talend Open Studio Components ReferenceGuide』を捕捉するものです。
Hadoopを使⽤したWebトラフィック情報の収集
38 Talend Open Studio for Big Data ⼊⾨ガイド
A.1. Hadoopを使⽤したWebトラフィック情報の収集顧客やユーザーの傾向やプロファイルに基づいて、ターゲットを絞ったマーケティングキャンペーンを実施するには、ユーザーがあなたのWebサイトでどのような傾向や⾏動を⽰しているかについてデータをフェッチし、ユーザーごとのプロファイルを作成して特定のユーザーに適した広告を送ることができます。
Talend Studioに付属しているビッグデータのデモプロジェクトのApacheWebLogフォルダーには、Apache HTTPサーバーへのアクセスログファイルの膨⼤なレコードの中からWebサイトを最も頻繁に訪れたユーザーのIPアドレスをソートし、それらのユーザーのWebサイトでの⾏動をさらに詳しく分析するサンプルが含まれています。このセクションでは、このサンプルを実装するジョブの作成・設定⽅法について説明します。ビッグデータのデモプロジェクトについて詳しくは、2章デモプロジェクトを使ったTalendビッグデータの入門を参照してください。
A.1.1. 前提条件この例に従ってジョブを作成する前に、次の作業を⾏う必要があります。
• デモプロジェクトをインポートし、この例で使⽤する⼊⼒アクセスログファイルを取得するために、デモプロジェクトに付属しているGenerateWebLogFileというジョブを実⾏します。
• Hortonworks Sandboxの仮想アプライアンスを「Hortonworks Sandboxのインストール」に従ってインストール・開始します。これは、デモプロジェクトが連係して動作するように設計されています。
• hostsファイルにホスト名のマッピングエントリへのIPを追加します。これは、「sandbox」というホスト名を解決するためです。
A.1.2. シナリオこの例では、Talendの特定のビッグデータコンポーネントを使⽤して、ビッグデータの処理に適しているHadoopのオープンソースプラットフォームのメリットを活⽤します。このシナリオでは、次の6つのジョブを使⽤します。
• 1つ⽬のジョブは、HDFSにHCatalogデータベース、テーブル、パーティションをセットアップします。
• 2つ⽬のジョブは、HDFSファイルシステムに分析するアクセスログファイルをアップロードします。
• 3つ⽬のジョブは、HCatalogデータベースに接続し、コンソールにアップロードしたファイルの内容を表⽰します。
• 4つ⽬のジョブは、アップロードしたアクセスログファイルを解析します。これには、「404」エラーのレコードの削除、Webサイトでサービスを正しく呼び出したコード数のカウント、結果のデータのソートとHDFSファイルシステムへの保存が含まれます。
• 5つ⽬のジョブは、アップロードしたアクセスログファイルを解析します。これには、「404」エラーのレコードの削除、Webサイトでサービスを正しく呼び出したIPアドレス数のカウント、結果のデータのソートとHDFSファイルシステムへの保存が含まれます。
• 最後のジョブは、結果データをHDFSから読み取り、サービスを正しく呼び出したIPアドレスとWebサイトへの訪問回数を、標準のシステムコンソールに表⽰します。
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 39
A.1.3. シナリオからジョブへの変換このセクションでは、このシナリオで想定している結果が得られるようにジョブを作成・設定・実⾏する⽅法について説明します。
A.1.3.1. サンプルジョブの作成
このセクションでは、デモジョブのApacheWebLogの例を実装する6つのジョブを作成します。
1つ⽬のジョブの作成
次の⼿順に従って1つ⽬のジョブを作成します。このジョブは、分析するアクセスログファイルを管理するためのHCatalogデータベースをセットアップします。
1. [Repository] (リポジトリ)ツリービューで、right-click Job Designs、[Create folder] (フォルダーの作成)を選択します。このフォルダーに、これから作成するジョブをグループ化します。
作成したフォルダーを右クリックし、[Create job] (ジョブの作成)を選択して1つ⽬のジョブを作成します。サンプルジョブの役割と実⾏順序を指定するために、このジョブに「A_HCatalog_Create」という名前を付けます。ジョブに短い説明を追加することもできます。この説明は、ジョブの上にマウスポインターを当てたときにツールチップとして表⽰されます。
2. [Palette] (パレット)からデザインワークスペースに[tHDFSDelete]コンポーネントと2つの[tHCatalogOperation]コンポーネントをドロップします。
3. これらの3つのコンポーネントを[Trigger] (トリガー) > [On Subjob Ok] (サブジョブがOKの場合)接続でリンクします。HDFSサブジョブは、ジョブの実⾏エラーを防ぐために、このデモサンプルから以前の結果がある場合はそれを削除します。2つのHCatalogサブジョブは、HCatalogデータベースを作成し、それぞれHCatalogテーブルとそのパーティションをセットアップするために使⽤されます。
4. これらのコンポーネントの機能を特定するためのラベルを付けます。
2つ⽬のジョブの作成
次の⼿順に従って2つ⽬のジョブを作成します。このジョブは、アクセスログファイルをHCatalogにアップロードします。
1. サンプルジョブの役割と実⾏順序を指定するために、このジョブに「B_HCatalog_Load」という名前を付けます。
2. [Palette] (パレット)からデザインワークスペースに、[tApacheLogInput]、[tFilterRow]、[tHCatalogOutput]、[tLogRow]のコンポーネントをドロップします。
3. [tApacheLogInput]コンポーネントと[tFilterRow]コンポーネントを[Row] (⾏) > [Main] (メイン)接続でリンクします。次に、[tFilterRow]コンポーネントと[tHCatalogOutput]コンポーネントを[Row] (⾏) > [Filter] (フィルター)接続でリンクします。このデータフローによって、分析
シナリオからジョブへの変換
40 Talend Open Studio for Big Data ⼊⾨ガイド
するログファイルが「301」というエラーコードが削除されたレコードとともにHCatalogデータベースにロードされます。
4. [tFilterRow]コンポーネントと[tLogRow]コンポーネントを[Row] (⾏) > [Reject] (拒否)接続でリンクします。このフローによって、コンソールでレコードに「301」というエラーコードがプリントされます。
5. これらのコンポーネントの機能を特定するためのラベルを付けます。
3つ⽬のジョブの作成
次の⼿順に従って3つ⽬のジョブを作成します。このジョブは、アップロードしたファイルの内容を表⽰します。
1. サンプルジョブの役割と実⾏順序を指定するために、このジョブに「C_HCatalog_Read」という名前を付けます。
2. [Palette] (パレット)からデザインワークスペースに、[tHCatalogInput]コンポーネントと[tLogRow]コンポーネントをドロップし、[Row] (⾏) > [Main] (メイン)の接続でリンクします。
3. これらのコンポーネントの機能を特定するためのラベルを付けます。
4つ⽬のジョブの作成
次の⼿順に従って4つ⽬のジョブを作成します。このジョブは、アップロードしたログファイルを分析し、Webサイトにサービスを正しく呼び出したコード数をカウントします。
1. サンプルジョブの役割と実⾏順序を指定するために、このジョブに「D_Pig_Count_Codes」という名前を付けます。
2. [Palette] (パレット)からデザインワークスペースに次のコンポーネントをドロップします。
• tPigLoadコンポーネント: 分析するデータをロードします。
• tPigFilterRowコンポーネント: ⼊⼒フローから「404」エラーのレコードを削除します。
• tPigFilterColumnsコンポーネント: 結果のデータに含める列を選択します。
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 41
• tPigAggregateコンポーネント: Webサイトへの訪問数をカウントします。
• tPigSortコンポーネント: 結果のデータをソートします。
• tPigStoreResultコンポーネント: 結果をHDFSに保存します。
3. [Row] (⾏) > [Pig Combine] (Pigの結合)接続を使ってこれらのコンポーネントをリンクしてPigチェーンを作成し、それぞれのコンポーネントの機能を特定するためのラベルを付けます。
5つ⽬のジョブの作成次の⼿順に従って5つ⽬のジョブを作成します。このジョブは、アップロードしたログファイルを分析し、Webサイトにサービスを正しく呼び出したIP数をカウントします。
1. [Repository] (リポジトリ)ツリービューで前のジョブを右クリックし、[Duplicate] (複製)を選択します。
2. 開いたダイアログボックスで、サンプルジョブの役割と実⾏順序を指定するために、このジョブに「E_Pig_Count_IPs」という名前を付けます。
3. ジョブの役割を指定するために、[tPigFilterColumns]コンポーネントのラベルを変更します。
6つ⽬のジョブの作成次の⼿順に従って最後のジョブを作成します。このジョブは、アクセスログの分析結果を表⽰します。
1. サンプルジョブの役割と実⾏順序を指定するために、このジョブに「F_Read_Results」という名前を付けます。
2. [Palette] (パレット)からデザインワークスペースに、[tHDFSInput]コンポーネントと[tLogRow]コンポーネントをそれぞれ2つずつドロップします。
3. [Row] (⾏) > [Main] (メイン)接続を使⽤して、1つ⽬の[tHDFSInput]コンポーネントを1つ⽬の[tLogRow]に、2つ⽬の[tHDFSInput]コンポーネントを2つ⽬の[tLogRow]にリンクします。
シナリオからジョブへの変換
42 Talend Open Studio for Big Data ⼊⾨ガイド
[Trigger] (トリガー) > [OnSubjobOk] (サブジョブがOKの場合)接続を使⽤して、1つ⽬の[tHDFSInput]コンポーネントを2つ⽬の[tHDFSInput]コンポーネントにリンクします。
これらのコンポーネントの機能を特定するためのラベルを付けます。
A.1.3.2. ジョブの設定
このセクションでは、作成したそれぞれのサンプルジョブを設定します。
[Repository] (リポジトリ)の [Metadata] (メタデータ)フィーチャーは、Talendのライセンスに基づくビッグデータソリューションだけで使用できます。Talend Open Studio for Big Dataを使用している場合は、プロパティとスキーマの種類が常に[Built-in] (組み込み)になっているため、各コンポーネントを手動で設定する必要があります。
1つ⽬のジョブの設定
この⼿順では、1つ⽬のジョブであるA_HCatalog_Createを設定し、アクセスログファイルを処理するためにHCatalogシステムをセットアップします。
HCatalogデータベースのセットアップ1. この例では、「HDFS_ClearResults」というラベルが付いている[tHDFSDelete]コンポーネント
をダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 43
2. ⼀元化したHDFS接続を使⽤する場合は、[Property Type] (プロパティのタイプ)リストボックスをクリックして[Repository] (リポジトリ)を選択します。次に、[...]ボタンをクリックして[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開きます。HDFSシステムへの接続に定義されているHDFS接続を選択し、[OK]をクリックします。該当するフィールドに接続の詳細設定がすべて⾃動的に⼊⼒されます。
Talend Open Studio for Big Dataでは、次の接続定義を⼿動で設定できます:
• Hadoop distribution (Hadoopディストリビューション):HortonWorks
• Hadoop version (Hadoopバージョン):Hortonworks Data Platform V1
• NameNode URI (ネームノードURI): hdfs://sandbox:8020
• User name (ユーザー名): sandbox
3. [File or Directory Path] (ファイルまたはディレクトリパス)フィールドに、HDFS上でアクセスログファイルが保管されるディレクトリを指定します。この例では、 /user/hdp/weblogです。
4. この例では、「HCatalog_Create_DB」というラベルが付いている1つ⽬の[tHCatalogOperation]コンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
シナリオからジョブへの変換
44 Talend Open Studio for Big Data ⼊⾨ガイド
5. ⼀元化したHCatalog接続を使⽤する場合は、[Property Type] (プロパティのタイプ)リストボックスをクリックし、[Repository] (リポジトリ)を選択します。次に、[...]ボタンをクリックして[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開きます。HCatalogデータベースへの接続に定義されているHCatalog接続を選択し、[OK]をクリックします。該当するフィールドに接続の詳細設定がすべて⾃動的に⼊⼒されます。
Talend Open Studio for Big Dataでは、次の接続定義を⼿動で設定できます:
• Hadoop distribution (Hadoopディストリビューション):HortonWorks
• Hadoop version (Hadoopバージョン):Hortonworks Data Platform V1
• Templeton host name (Templetonのホスト名): sandboxまたはSandbox仮想マシンに割り当てられているIPアドレス
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 45
• Templeton port (Templetonのポート):50111
• Database (データベース): talend
• User name (ユーザー名): sandbox
6. [Operation on] (オペレーション先)リストで[Database] (データベース)を選択し、[Operation] (オペレーション)リストで[Drop if exist and create] (既存する場合はドロップして作成)を選択します。
7. [Drop configuration] (ドロップ設定)エリアの[Option] (オプション)リストで、[Cascade] (カスケード)を選択します。
8. [Database location] (データベースの場所)フィールドに、HDFS上でデータベースファイルを作成する場所を⼊⼒します。この例では、「/user/hdp/weblog/weblogdb」です。
HCatalogテーブルとパーティションのセットアップ1. この例では、「HCatalog_CreateTable」というラベルが付いている2つ⽬
の[tHCatalogOperation]コンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
2. 1つ⽬の[tHCatalogOperation]コンポーネントと同じ⼿順で、HCatalogの接続の詳細情報を定義します。
3. [Schema] (スキーマ)リストボックスをクリックし、[Repository] (リポジトリ)を選択します。次に、フィールドの横に表⽰される[...]ボタンをクリックして[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開き、[Metadata] (メタデータ) > [Generic schemas] (汎⽤スキーマ) > [access_log]を展開してスキーマを選択します。[OK]をクリックして選択したオプションを確定し、ダイアログボックスを閉じます。access_logの汎⽤スキーマは、コンポーネントに⾃動的に適⽤されます。
また、[Repository] (リポジトリ)ツリービューで[access_log]の汎⽤スキーマを直接選択し、このコンポーネントにドラッグアンドドロップして適⽤することもできます。
シナリオからジョブへの変換
46 Talend Open Studio for Big Data ⼊⾨ガイド
Talend Open Studio for Big Dataでは、[...]ボタンをクリックしてスキーマを⼿動で設定します。次のEdit schema(スキーマの編集)でtApacheLogInputコンポーネントの参照専⽤スキーマをペーストとして2つ⽬のジョブの[Schema] (スキーマ)ダイアログボックスで使⽤します。
4. [Operation on] (オペレーション先)リストで[Table] (テーブル)を選択し、[Operation] (オペレーション)リストで[Drop if exist and create] (既存する場合はドロップして作成)を選択します。
5. [Table] (テーブル)フィールドに作成するテーブルの名前を⼊⼒します。この例では、「weblog」と⼊⼒します。
6. [Set partitions] (パーティションの設定)チェックボックスをオンにし、[Edit schema] (スキーマの編集)の横にある[...]ボタンをクリックして、パーティションとパーティションスキーマを設定します。パーティションスキーマには、テーブルスキーマで定義した列名を使⽤できません。この例では、パーティションスキーマの列名は「ipaddresses」と定義されています。
このコンポーネントの設定が終わったら、Ctrl+Sキーを押してジョブの設定を保存します。
2つ⽬のジョブの設定
この⼿順では、2つ⽬のジョブであるB_HCatalog_Loadを設定し、アクセスログファイルをHadoopシステムにアップロードします。
アクセスログファイルのHCatalogへのアップロード1. [tApacheLogInput]コンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを
開き、[File Name] (ファイル名)フィールドにアップロードするアクセスログファイルのパスを指定します。この例では、access_logという名前のログファイルをC:/Talend/BigDataというディレクトリに保存します。
2. [tFilterRow]コンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 47
3. [Logical operator used to combine conditions] (条件の結合に使⽤する論理演算⼦)リストボックスから[AND]を選択します。
4. [+]ボタンをクリックして[Filter configuration] (フィルターの設定)テーブルに⾏を追加し、「301」というコードを持つレコードをRejectフローに送り、残りのレコードをFilterフローに渡すためのフィルターパラメーターを設定します。
• [InputColumn] (⼊⼒カラム)フィールドに、スキーマの[code] (コード)列を選択します。
• [Operator] (演算⼦)フィールドで、[Not equal to] (と等しくない)を選択します。
• [Value] (値)フィールドに、「301」と⼊⼒します。
5. [tHCatalogOutput]コンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
6. ⼀元化したHCatalog接続を使⽤する場合は、[Property Type] (プロパティのタイプ)リストボックスをクリックし、[Repository] (リポジトリ)を選択します。次に、[...]ボタンをクリックして[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開きます。HCatalogデータベースへの接続に定義されているHCatalog接続を選択し、[OK]をクリックします。該当するフィールドに接続の詳細設定がすべて⾃動的に⼊⼒されます。
シナリオからジョブへの変換
48 Talend Open Studio for Big Data ⼊⾨ガイド
Talend Open Studio for Big Dataでは、次の接続定義を⼿動で設定できます:
• Hadoop distribution (Hadoopディストリビューション):HortonWorks
• Hadoop version (Hadoopバージョン):Hortonworks Data Platform V1
• NameNode URI (ネームノードURI): hdfs://sandbox:8020
• Templeton host name (Templetonのホスト名): sandbox
• Templeton port (Templetonのポート):50111
• Database (データベース): talend
• User name (ユーザー名): sandbox
7. [...]ボタンをクリックして、スキーマが先⾏のコンポーネントから正しく伝播されることを確認します。必要に応じて、[Sync columns] (列の同期)をクリックして、スキーマを取得します。
8. [Action] (アクション)リストから[Create] (作成)を選択してファイルを作成します。または、ファイルが既存する場合は、[Overwrite] (上書き)を選択します。
9. [Partition] (パーティション)フィールドに、パーティションの名前と値のペアを⼆重引⽤符に囲んで⼊⼒します。この例では、「ipaddresses='192.168.1.15'」と⼊⼒します。
10. [File location] (ファイルの場所)フィールドに、データを保存する場所のパスを⼊⼒します。この例では、「/user/hdp/weblog/access_log」とします。
11. [tLogRow]コンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを開き、[Vertical] (縦)オプションを選択して出⼒コンテンツを読みやすくするために各⾏をリストに表⽰します。
このコンポーネントの設定が終わったら、Ctrl+Sキーを押してジョブの設定を保存します。
3つ⽬のジョブの設定
この⼿順では、3つ⽬のジョブであるC_HCatalog_Readを設定し、HCatalogにアップロードしたログのコンテンツを確認します。
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 49
1. [tHCatalogInput]コンポーネントをダブルクリックして、[Component] (コンポーネント)タブに[Basic settings] (基本設定)ビューを開きます。
2. ⼀元化したHCatalog接続を使⽤する場合は、[Property Type] (プロパティのタイプ)リストボックスをクリックし、[Repository] (リポジトリ)を選択します。次に、[...]ボタンをクリックして[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開きます。HCatalogデータベースへの接続に定義されているHCatalog接続を選択し、[OK]をクリックします。該当するフィールドに接続の詳細設定がすべて⾃動的に⼊⼒されます。
Talend open Studio for Big Dataでは、前のジョブにあるtHCatalogOutputコンポーネントと同様に次の接続定義を⼿動で設定します。
• Hadoop distribution (Hadoopディストリビューション):HortonWorks
• Hadoop version (Hadoopバージョン):Hortonworks Data Platform V1
• NameNode URI (ネームノードURI): hdfs://sandbox:8020
• Templeton host name (Templetonのホスト名): sandbox
• Templeton port (Templetonのポート):50111
• Database (データベース): talend
シナリオからジョブへの変換
50 Talend Open Studio for Big Data ⼊⾨ガイド
• User name (ユーザー名): sandbox
3. [Schema] (スキーマ)リストボックスをクリックし、[Repository] (リポジトリ)を選択します。次に、フィールドの横に表⽰される[...]ボタンをクリックして[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開き、[Metadata] (メタデータ) > [Generic schemas] (汎⽤スキーマ) > [access_log]を展開してスキーマを選択します。[OK]をクリックして選択したオプションを確定し、ダイアログボックスを閉じます。access_logの汎⽤スキーマは、コンポーネントに⾃動的に適⽤されます。
また、[Repository] (リポジトリ)ツリービューで[access_log]の汎⽤スキーマを直接選択し、このコンポーネントにドラッグアンドドロップして適⽤することもできます。
Talend Open Studio for Big Dataでは、[...]ボタンをクリックしてスキーマを⼿動で設定します。次のEdit schema(スキーマの編集)でtApacheLogInputコンポーネントの参照専⽤スキーマをペーストとして2つ⽬のジョブの[Schema] (スキーマ)ダイアログボックスで使⽤します。
4. [tLogRow]コンポーネントの[Basic settings] (基本設定)ビューで、[Vertical] (縦)モードを選択してジョブを実⾏した際に各⾏にキーと値を表⽰します。
このコンポーネントの設定が終わったら、Ctrl+Sキーを押してジョブの設定を保存します。
4つ⽬のジョブの設定
この⼿順では、4つ⽬のジョブであるD_Pig_Count_Codesを設定し、Pigチェーンを使ってアップロードしたアクセスログファイルを分析し、成功したサービス呼び出しのコードとWebサイトへの訪問数をカウントします。
Pigチェーンを通じて分析するログファイルの読み取り1. [tPigLoad]コンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きま
す。
2. ⼀元化したHDFS接続を使⽤する場合は、[Property Type] (プロパティのタイプ)リストボックスをクリックして[Repository] (リポジトリ)を選択します。次に、[...]ボタンをクリックし
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 51
て[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開きます。HDFSシステムへの接続に定義されているHDFS接続を選択し、[OK]をクリックします。該当するフィールドに接続の詳細設定がすべて⾃動的に⼊⼒されます。
Talend Open Studio for Big Dataでは、Map/Reduceモードを選択して、次の接続定義を⼿動で設定できます:
• Hadoop distribution (Hadoopディストリビューション):HortonWorks
• Hadoop version (Hadoopバージョン):Hortonworks Data Platform V1
• NameNode URI (ネームノードURI): hdfs://sandbox:8020
• JobTracker host (ジョブトラッカーのホスト): この例ではsandbox:50300
3. [Repository] (リポジトリ)ツリービューで[access_log]の汎⽤スキーマを選択し、このコンポーネントにスキーマをドラッグアンドドロップして適⽤します。
Talend Open Studio for Big Dataでは、[...]ボタンをクリックしてスキーマを⼿動で設定します。次のEdit schema(スキーマの編集)でtApacheLogInputコンポーネントの参照専⽤スキーマをペーストとして2つ⽬のジョブの[Schema] (スキーマ)ダイアログボックスで使⽤します。
4. [Load function] (関数のロード)リストから[PigStorage]を選択し、[Input file URI] (⼊⼒ファイルのURI)フィールドに前のジョブで定義したファイルパスを⼊⼒します。この例では、「/user/hdp/weblog/access_log/out.log」です。
ログファイルの分析と結果の保存
1. [tPigFilterRow]コンポーネントの[Basic settings] (基本設定)ビューで、[+]ボタンをクリックして[Filter configuration] (フィルターの設定)テーブルに⾏を追加し、「404」というコードを持つレコードを削除し、残りのレコードを出⼒フローに渡すためのフィルターパラメーターを設定します。
• [Logical] (論理)フィールドで、[AND]を選択します。
• [Column] (列)フィールドで、スキーマの[code] (コード)列を選択します。
• [NOT]チェックボックスを選択します。
• [Operator] (演算⼦)フィールドで、[equal] (と等しい)を選択します。
• [Value] (値)フィールドに、「404」と⼊⼒します。
シナリオからジョブへの変換
52 Talend Open Studio for Big Data ⼊⾨ガイド
2. [tPigFilterColumns]コンポーネントの[Basic settings] (基本設定)ビューで[...]ボタンをクリックし、[Schema] (スキーマ)ダイアログボックスを開きます。[Input] (⼊⼒)パネルで[code](コード)列を選択し、⽮印ボタンをクリックして列を[Output] (出⼒)パネルにコピーします。これにより、[code] (コード)列の情報が出⼒フローに渡されます。[OK]をクリックして出⼒スキーマの設定を確定し、ダイアログボックスを閉じます。
3. [tPigAggregate]コンポーネントの[Basic settings] (基本設定)ビューで、[Sync columns] (列の同期)をクリックして先⾏コンポーネントからスキーマを取得し、スキーマを次のコンポーネントに伝播します。
4. [Edit schema] (スキーマの編集)の横にある[...]ボタンをクリックし、[Schema] (スキーマ)ダイアログボックスを開いて新しい[count] (カウント)列を追加します。この列には、成功したサービス呼び出しの各コードが保存されます。
5. 各コードの数をカウントするため、次のパラメーターを設定します。
• [Group by] (グループ化)エリアで[+]ボタンをクリックしてテーブルに⾏を追加し、[Column](列)フィールドで[count] (カウント)列を選択します。
• [Operations] (オペレーション)エリアで[+]ボタンをクリックしてテーブルに⾏を追加し、[Additional Output Column] (追加の出⼒列)フィールドで[count] (カウント)列を選択します。さらに、[Function] (関数)フィールドで[count] (カウント)を選択し、[Input Column](⼊⼒列)で[code] (コード)列を選択します。
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 53
6. [tPigSort]コンポーネントの[Basic settings] (基本設定)ビューで、渡すデータをソートするためのパラメーターを設定します。
• [+]ボタンをクリックして、[Sort key] (ソートキー)テーブルに⾏を追加します。
• [Column] (列)フィールドで[count] (カウント)を選択して、[count] (カウント)列をキーとして設定します。
• [Order] (順序)フィールドで[DESC] (降順)を選択して、データを降順でソートします。
7. [tPigStoreResult]コンポーネントの[Basic settings] (基本設定)ビューで、Hadoopシステム上の指定した場所に結果データをアップロードするためのコンポーネントプロパティを設定します。
• [Sync columns] (列の同期)をクリックして、先⾏のコンポーネントからスキーマを取得します。
• [Result file URI] (結果ファイルのURI)フィールドに、結果ファイルのパスを⼊⼒します。この例では、「/user/hdp/weblog/apache_code_cnt」です。
シナリオからジョブへの変換
54 Talend Open Studio for Big Data ⼊⾨ガイド
• [Store function] (格納関数)リストから[PigStorage]を選択します。
• 必要に応じて、[Remove result directory if exists] (結果ディレクトリがある場合は削除する)チェックボックスをオンにします。
このコンポーネントの設定が終わったら、Ctrl+Sキーを押してジョブの設定を保存します。
5つ⽬のジョブの設定
この⼿順では、5つ⽬のジョブであるE_Pig_Count_IPsを設定し、前のジョブと同様のPigチェーンを使ってアップロードしたアクセスログファイルを分析し、成功したサービス呼び出しのIPアドレスとWebサイトへの訪問数をカウントします。
前のジョブのコンポーネント設定を使⽤して、次の変更を加えます。
• [tPigFilterColumns]コンポーネントの[Schema] (スキーマ)ダイアログボックスで、[code] (コード)ではなく[host] (ホスト)列を[Input] (⼊⼒)パネルから[Output](出⼒)パネルにコピーします。
• [tPigAggregate]コンポーネントで、[Group by] (グループ化)テーブルの[Column] (列)フィールド、および[Operations] (オペレーション)テーブルの[Input Column] (⼊⼒列)フィールドにある[host] (ホスト)列をそれぞれ選択します。
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 55
• [tPigStoreResult]コンポーネントで、[Result file URI](結果ファイルのURI)フィールドに「/user/hdp/weblog/apache_ip_cnt」と⼊⼒します。
このコンポーネントの設定が終わったら、Ctrl+Sキーを押してジョブの設定を保存します。
最後のジョブの設定
この⼿順では、最後のジョブであるF_Read_Resultsを設定し、Hadoopから結果のデータを読み取って、標準のシステムコンソールに表⽰します。
1. 1つ⽬の[tHDFSInput]コンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
シナリオからジョブへの変換
56 Talend Open Studio for Big Data ⼊⾨ガイド
2. ⼀元化したHDFS接続を使⽤する場合は、[Property Type] (プロパティのタイプ)リストボックスをクリックして[Repository] (リポジトリ)を選択します。次に、[...]ボタンをクリックして[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開きます。HDFSシステムへの接続に定義されているHDFS接続を選択し、[OK]をクリックします。該当するフィールドに接続の詳細設定がすべて⾃動的に⼊⼒されます。
Talend Open Studio for Big Dataでは、Map/Reduceモードを選択して、次の接続定義を⼿動で設定できます:
• Hadoop distribution (Hadoopディストリビューション):HortonWorks
• Hadoop version (Hadoopバージョン):Hortonworks Data Platform V1
• NameNode URI (ネームノードURI): hdfs://sandbox:8020
• User name (ユーザー名): この例ではsandbox
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 57
3. 汎⽤スキーマの「ip_count」をこのコンポーネントに適⽤します。このスキーマには、「host」(ホスト、50字の⽂字列)と「count」(カウント、5字の整数)の2列があります。
Talend Open Studio for Big Dataでは、[...]ボタンをクリックしてスキーマを⼿動で設定します。⼜は、前のジョブにあるtPigStoreResultコンポーネントのス キーマをコピーして、こコンポーネントの[Schema](スキーマ)ダイ アログボックスにペーストします。
4. [File Name] (ファイル名)フィールドに、HDFSでの結果ファイルのパスを⼊⼒します。この例では、「/user/hdp/weblog/apache_ip_cnt/part-r-00000」です。
5. [Type] (タイプ)リストで、読み取るファイルのタイプを選択します。この例では、[Text File] (テキストファイル)を選択します。
6. [tLogRow]コンポーネントの[Basic settings] (基本設定)ビューで、読みやすくするために[Table] (テーブル)オプションを選択します。
7. 他のサブジョブも同様に設定します。ただし、2つ⽬の[tHDFSInput]コンポーネントは次のように設定します。
• 「code_count」という汎⽤スキーマを適⽤するか、「code」(コード、5字の整数)と「count」(カウント、5字の整数)という2つの列を持つスキーマをこのコンポーネントに⼿動で設定します。
• [File Name] (ファイル名)フィールドに「/user/hdp/weblog/apache_code_cnt/part-r-00000」と⼊⼒します。
このコンポーネントの設定が終わったら、Ctrl+Sキーを押してジョブの設定を保存します。
A.1.3.3. ジョブの実⾏
6つのジョブを正しくセットアップ・設定したら、[Run] (実⾏)タブにある[Run] (実⾏)ボタンをクリックするか、F6キーを押して、ジョブをアルファベット順に1つずつ実⾏し、各ジョブのコンソールに実⾏結果を表⽰します。
最後のジョブが正しく実⾏されると、成功したサービス呼び出しのIPアドレスとコード、およびその数がシステムコンソールに表⽰されます。
シナリオからジョブへの変換
58 Talend Open Studio for Big Data ⼊⾨ガイド
⼀回クリックするだけで、すべてのジョブを必要な順序で実⾏することができます。そのためには、次の⼿順を実⾏します。
1. [tRunJob]コンポーネントを1つ⽬のジョブのデザインワークスペースにドロップします。この例では、A_HCatalog_Createです。このコンポーネントはサブジョブとして表⽰されます。
2. 先⾏するサブジョブを[tRunJob]コンポーネントに[Trigger] (トリガー) > [On Subjob Ok] (サブジョブがOKの場合)接続でリンクします。
3. [tRunJob]コンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
4. [Job] (ジョブ)フィールドの横にある[...]ボタンをクリックし、[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開きます。現在のジョブが正しく実⾏した後にトリガーするジョブを選択し、[OK]をクリックしてダイアログボックスを閉じます。次に実⾏されるジョブが[Job] (ジョブ)フィールドに表⽰されます。
シナリオからジョブへの変換
Talend Open Studio for Big Data ⼊⾨ガイド 59
5. もう⼀度[tRunJob]コンポーネントをダブルクリックし、次のジョブを開きます。[tRunJob]コンポーネントで上記の⼿順を繰り返し、E_Pig_Count_IPsジョブが最後のF_Read_Resultsジョブをトリガーするまで設定します。
6. 1つ⽬のジョブを実⾏します。
各ジョブが正しく実⾏されると次のジョブがトリガーされ、最後のジョブがすべて実⾏されるとその結果が1つ⽬のジョブのコンソールに表⽰されます。
Talend Open Studio for Big Data ⼊⾨ガイド