...

Talend Open Studio for Big Data

by user

on
Category: Documents
40

views

Report

Comments

Transcript

Talend Open Studio for Big Data
Talend Open Studio
for Big Data
⼊⾨ガイド
5.5.2
Talend Open Studio for Big Data
v5.5.2に対応しており、以前のリリースの更新版となります。
発⾏⽇ 2015年1⽉29⽇
Copyleft
本書は、クリエイティブコモンズパブリックライセンス(CCPL)の条件に基づいて提供されていま
す。CCPLに準拠した許可事項および禁⽌事項の詳細は、http://creativecommons.org/licenses/bync-sa/2.0/を参照してください。
商標について
すべてのブランド、商品名、会社名、商標、およびサービスマークは各所有者に帰属します。
⽬次
序⽂ .................................................................................................................. v
1. ⼀般情報 .............................................................................................................
1.1. ⽬的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. 対象読者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. 表記⽅法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. フィードバックとサポート ........................................................................................
v
v
v
v
v
1. Talendビッグデータソリューションへの⼊⾨ ...................................................... 1
1.1. HadoopとTalend Studio ...................................................................................... 2
1.2. Talendビッグデータソリューションの機能的なアーキテクチャ .......................................... 2
2. デモプロジェクトを使ったTalendビッグデータの⼊⾨ .......................................... 5
2.1. ビッグデータのデモプロジェクトの概要 ..................................................................... 6
2.1.1. Hortonworks_Sandbox_Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2. NoSQL_Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2. デモジョブを実⾏するための環境のセットアップ ........................................................... 8
2.2.1. Hortonworks Sandboxのインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2. デモプロジェクトで使⽤しているコンテキスト変数の理解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3. Talend Studioでのジョブの処理 ..................................................................... 15
3.1. Oozieを経由したジョブの実⾏⽅法 ..........................................................................
3.1.1. HDFS接続の詳細の設定⽅法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2. HDFSサーバー上でジョブを実⾏する⽅法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3. ジョブの実⾏のスケジュール⽅法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.4. ジョブの実⾏ステータスの監視⽅法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
16
22
23
24
4. ビッグデータのフローマッピング ..................................................................... 27
4.1. tPigMapのインターフェイス .................................................................................
4.2. tPigMap操作 ....................................................................................................
4.2.1. 結合操作の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2. リジェクトレコードの捕捉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.3. 式の編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.4. Pigユーザー定義関数のセットアップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
29
29
30
31
34
付録 A. ビッグデータのジョブの例 ....................................................................... 37
A.1. Hadoopを使⽤したWebトラフィック情報の収集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1.1. 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1.2. シナリオ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1.3. シナリオからジョブへの変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Talend Open Studio for Big Data ⼊⾨ガイド
38
38
38
39
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チームまで、お気軽にご連絡ください:
Talend Open Studio for Big Data ⼊⾨ガイド
フィードバックとサポート
http://talendforge.org/forum
vi
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の使い⽅を確認してください。
Talend Open Studio for Big Data ⼊⾨ガイド
HadoopとTalend Studio
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でのビッグデータの処理に関連するアーキテクチャ上の主な機能ブロックを⽰して
います。
2
Talend Open Studio for Big Data ⼊⾨ガイド
Talendビッグデータソリューションの機能的なアーキテクチャ
機能ブロックは次の3つに分類できます。
• 少なくとも1つのStudio。ここでは、Apache Hadoopプラットフォームを活⽤して、⼤量のデー
タセットを処理するビッグデータジョブを設計します。これらのジョブはローカルで実⾏する
こともできますが、Studio内に統合されたOozieワークフローのスケジューラーシステムを通じ
て、Hadoopグリッド上にデプロイ、スケジュール、実⾏することもできます。
• Studio内に統合されたワークフローのスケジューラーシステムを通じて、Hadoopグリッド上に
ビッグデータジョブをデプロイ、スケジュール、実⾏し、ジョブの実⾏ステータスや結果を監視す
ることができます。
• Talendシステムから独⽴したHadoopグリッドでは、⼤量のデータセットを処理します。
Talend Open Studio for Big Data ⼊⾨ガイド
3
Talend Open Studio for Big Data ⼊⾨ガイド
2.デモプロジェクトを使ったTalendビッグデー
タの⼊⾨
この章は、デモプロジェクトに含まれているサンプルジョブについて簡単に説明し、Hadoopプラッ
トフォームでサンプルジョブを実⾏するために必要な準備作業を紹介します。デモプロジェクトのイ
ンポート⽅法については、『Talend Studioユーザーガイド』のデモプロジェクトのインポートのセク
ションを参照してください。
Studioでの作業を始める前に、GUI (グラフィカルユーザーインターフェイス)に慣れておく必要があ
ります。詳細は、『Talend Studioユーザーガイド』のGUIに関する付録を参照してください。
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つまたは複数の必須外部モジュールが不⾜しているコンポーネントの[Basic
settings] (基本設定)または[Advanced settings] (詳細設定)ビューの上部で [Install] (インストール)をクリッ
クした場合にも表⽰されます。
他社モジュールのインストール⽅法について詳しくは、『Talendインストレーションガイド』の外部モジュー
ルの識別・インストール⽅法についてのセクションを参照してください。
ビッグデータのデモプロジェクトをインポートして、Talend Studioで開くと、プロジェクトに含ま
れているすべてのサンプルジョブが[Repository] (リポジトリ)ツリービューの[Job Designs] (ジョ
ブデザイン)ノードの下のさまざまなフォルダーから使⽤できるようになります。
次のセクションでは、メインフォルダーの下の各サブフォルダーに含まれているジョブについて簡単
に説明します。
6
Talend Open Studio for Big Data ⼊⾨ガイド
Hortonworks_Sandbox_Samples
2.1.1. Hortonworks_Sandbox_Samples
Standard 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つの⼿順があり、ジョブ名の順序に従って各⼿順
が実⾏されます。
Gov_Spending_Analysis
RDBMS_Migration_SQOOP
E2E_hCat_2_Hive
この例について詳しくは、サンプルジョブの作成・設定⽅法
をステップバイステップで説明している付録A ビッグデータ
のジョブの例の「Hadoopを使用したWebトラフィック情報の
収集」を参照してください。
この例では、⽶国政府の歳出サンプルデータをHCatalogに
ロードし、政府機関ごとの歳出総額をHiveクエリを使って
計算する2つの⼿順のプロセスを紹介しています。また、追
加のData Integrationジョブでは、http://usaspending.gov/
dataのWebサイトからファイルをダウンロードし、HCatalog
にデータをロードするジョブのための⼊⼒データを準備しま
す。[tFixedFlowInput]コンポーネントを⼊⼒ファイルに置
き換える必要があります。
この例には2つの⼿順があり、ジョブ名の順序に従って各⼿順
が実⾏されます。
これは、MySQLスキーマからデータを読み取り、HDFS
にロードする2つの⼿順のプロセスです。データベースに
は、MySQL5.5以降のバージョンが使⽤できます。スキー
マには、テーブルを必要な数だけ含めることができます。
「SQOOP_SCENARIO_CONTEXT」というラベルが付いた
コンテキスト変数にデータベースとスキーマを設定すると、1
つ⽬のジョブが動的にスキーマを読み取り、テーブルをリス
トしたファイルが2つ作成されます。1つ⽬のファイルには、
プライマリーキーのあるテーブルが含まれ、HCatalogまた
はHiveが使⽤されている場合はパーティションで区切られま
す。2つ⽬のファイルには、プライマリーキーのないテーブル
が含まれます。2つ⽬の⼿順では、この2つのファイルを使っ
てスキーマのMySQLテーブルからすべてのデータをHDFSに
ロードします。テーブルごとに1つのファイルが作成されま
す。
Sandboxのシングルノードの仮想マシンを使っている場
合は処理能⼒が⼗分にないため、このプロセスを実⾏す
るときに⼤容量のスキーマを選択しないようにしてくださ
い。Sandboxのシングルノードの仮想マシンを使った場合
の処理について詳しくは、「Hortonworks Sandboxのインス
トール」を参照してください。
このフォルダーには⾮常にシンプルなプロセスが含まれてい
ます。このプロセスでは、最初の⼿順でHCatalogにサンプル
Talend Open Studio for Big Data ⼊⾨ガイド
7
NoSQL_Examples
フォルダー
サブフォルダー
説明
データをロードし、次の⼿順でどのように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データベースでデータがどのように処理される
かを⽰すためのジョブが集められています。
フォルダー
説明
MongoDB
このフォルダーには、ブログエントリからオープンテキストの⾮構造データをすばや
く簡単にキーワードで検索できるMongoDBの使い⽅を⽰した例が含まれています。
Cassandra
これは、Cassandraデータベースへの基本的な書き込み・読み取りを⾏う⽅法を⽰し
たもう1つの例で、Cassandra NoSQLデータベースをすぐに使い始めることができま
す。
2.2. デモジョブを実⾏するための環境のセット
アップ
ビッグデータのデモプロジェクトは、Talendのビッグデータソリューションの数多くの基本的な機
能を紹介することを⽬的とした⼿軽で実践的な例です。デモプロジェクトに含まれているデモジョ
ブを実⾏するには、Hadoopプラットフォームを起動する必要があります。また、想定されている
Hortonworks Sandboxの仮想アプライアンスを使⽤しない場合は、デモプロジェクトに定義されて
いるコンテキスト変数を設定したり、関連するコンポーネントを直接設定する必要もあります。
2.2.1. Hortonworks Sandboxのインストール
Hadoopプラットフォームをすばやく簡単に起動するには、Hadoopディストリビューションのトッ
プベンダーの仮想アプライアンスを選ぶ⽅法があります。Hortonworksでは、Sandboxという名
8
Talend Open Studio for Big Data ⼊⾨ガイド
Hortonworks Sandboxのインストール
前の仮想アプライアンス・仮想マシン(VM)を提供しており、すばやく簡単にセットアップができ
ます。デモプロジェクトのHortonworks_Sandbox_Samplesフォルダー内にあるサンプルジョブ
は、Hortonworks Sandbox VMで機能するようにコンテキスト変数を使⽤して設定されています。
下記に、Hortonworksが推奨するOracle VirtualBox上に、Hortonworks Sandboxの仮想マシンを
セットアップする⼿順を⼿短に紹介します。詳しくは、該当するベンダーのドキュメンテーションを
参照してください。
1.
2.
3.
4.
5.
Oracle VirtualBoxの推奨バージョンをhttps://www.virtualbox.org/からダウンロードします。
また、VirtualBoxのSandboxのイメージをhttp://hortonworks.com/products/hortonworkssandbox/からダウンロードします。
Oracle VirtualBoxのドキュメンテーションに従ってOracle VirtualBoxのインストールとセット
アップを⾏います。
Hortonworks Sandboxの指⽰に従って、Oracle VirtualBox上にHortonworks Sandboxの仮想ア
プライアンスをインストールします。
[Oracle VM VirtualBox Manager] (Oracle VM VirtualBoxマネージャー)ウィンドウで[Network]
(ネットワーク)をクリックし、[Adapter 1] (アダプター1)タブを選択して、[Attached to]
(接続先)リストボックスから[Bridged Adapter] (ブリッジアダプター)を選択します。さら
に、[Name] (名前)リストボックスから使⽤する物理ネットワークのアダプターを選択します。
Hortonworks Sandboxの仮想アプライアンスを起動し、Hadoopプラットフォームを実⾏しま
す。次に、Sandboxの仮想アプライアンスに割り当てられたIPアドレスがPing可能であることを
確認します。
次に、デモジョブを起動する前に、sandboxというホスト名を解決するため、hostsファイルにIPドメ
インのマッピングエントリを追加します。このエントリは、このデモプロジェクトでSandbox仮想マ
シンのIPアドレスを使う代わりに、2つのコンテキスト変数の値として定義されています。これによ
り、設定されたコンテキスト変数を変更する⼿間を省くことができます。
デモプロジェクトで使⽤しているコンテキスト変数について詳しくは、「デモプロジェクトで使用し
ているコンテキスト変数の理解」を参照してください。
Talend Open Studio for Big Data ⼊⾨ガイド
9
デモプロジェクトで使⽤しているコンテキスト変数の理解
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 as
table] (値のテーブル表⽰)タブのいずれかを選択します。
10
Talend Open Studio for Big Data ⼊⾨ガイド
デモプロジェクトで使⽤しているコンテキスト変数の理解
[HDP]グループのコンテキスト変数は、Hortonworks_Sandbox_Samplesフォルダーのすべての
デモサンプルで使⽤されています。これらの変数の値は、必要に応じて変更できます。たとえ
ば、sandboxというホスト名の代わりに、Sandbox Platform VMのIPアドレスを使⽤する場合は、ホ
スト名の変数の値をIPアドレスに変更します。Sandbox VMのデフォルト設定を変更した場合は、デ
モサンプルが想定通りに実⾏できるように、コンテキスト設定も適切に変更する必要があります。
変数名
説明
デフォルト値
namenode_port
ネームノードのポート
8020
namenode_host
user
templeton_host
templeton_port
hive_host
hive_port
jobtracker_host
jobtracker_port
mysql_host
mysql_port
mysql_user
mysql_passed
mysql_testes
hbase_host
ネームノードのホスト名
Hadoopシステムに接続するユーザー名
HCatalogサーバーのホスト名
HCatalogサーバーのポート
Hiveメタデータのホスト名
Hiveメタストアのポート
ジョブトラッカーのホスト名
ジョブトラッカーのポート
HiveメタストアのSandboxのホスト
Hiveメタストアのポート
Hiveメタストアに接続するユーザー名
Hiveメタストアに接続するパスワード
Hiveメタストアのテストデータベースの名前
HBaseのホスト名
Talend Open Studio for Big Data ⼊⾨ガイド
sandbox
sandbox
sandbox
50111
sandbox
9083
sandbox
50300
sandbox
3306
hep
hep
testes
sandbox
11
デモプロジェクトで使⽤しているコンテキスト変数の理解
変数名
hbase_port
説明
HBaseのポート
デフォルト値
2181
[SQOOP_SCENARIO_CONTEXT]グループのコンテキスト変数は、RDBMS_Migration_SQOOP のデ
モサンプルのみに使⽤されています。RDBMS_Migration_SQOOP デモを使⽤する場合は、ローカル
のMySQL接続で使⽤するSandbox VMに応じて、次のコンテキスト変数をアップデートする必要があ
ります。
変数名
説明
デフォルト値
MYSQL_DBNAME_TO_MIGRATE
HDFSに移⾏するMySQLデータベースの名前
dstar_crm
MySQLデータベースのポート
3306
KEY_LOGS_DIRECTORY
MYSQL_HOST_or_IP
MYSQL_PORT
MYSQL_USERNAME
MYSQL_PWD
HDFS_LOCATION_TARGET
テーブルファイルが保存されており、Studioから
フルアクセスが可能なローカルマシン上のディレ
クトリ
C:/Talend/BigData/
MySQLデータベースのホスト名またはIPアドレス 192.168.56.1
MySQLデータベースに接続するユーザー名
MySQLデータベースに接続するパスワード
データをロードするSandbox HDFS上の場所
tisadmin
/user/hdp/sqoop/
プロジェクトレベルのコンテキスト変数をジョブで使⽤するには、まず[Context] (コンテキスト)
ビューで ボタンをクリックしてジョブにインポートしておく必要があります。また、ジョブ
の[Contexts] (コンテキスト)ビューでコンテキスト変数を定義することもできます。これらの変数
は、そのジョブだけに有効な組み込み変数になります。
[Contexts] (コンテキスト)ビューには、ジョブに定義した組み込み型のコンテキスト変数と、ジョブ
にインポートしたプロジェクトレベルのコンテキスト変数が表⽰されます。
変数を定義すると、コンポーネントの設定で参照されます。次の例は、デモプロジェクトのPigジョ
ブにあるtHDFSConnectionコンポーネントの設定で使⽤されているコンテキスト変数です。
12
Talend Open Studio for Big Data ⼊⾨ガイド
デモプロジェクトで使⽤しているコンテキスト変数の理解
HortonWorks Sandboxの設定をこれらの変数に反映させれば、ほとんど⼲渉せずにサンプルジョブ
をスムーズに実⾏できます。これらのサンプルのコア機能のいくつかは、あなたのビッグデータのプ
ロジェクトにも実装できることでしょう。
コンテキスト変数の定義・使⽤⽅法について詳しくは、『Talend Studioユーザーガイド』のコンテキ
ストや変数の⼀元化に関するセクションを参照してください。
[Run] (実⾏)コンソールからジョブを実⾏する⽅法については、『Talend Studioユーザーガイド』の
ジョブの実⾏⽅法に関するセクションを参照してください。
[Oozie scheduler] (Oozieスケジューラー)ビューからジョブを実⾏する⽅法については、「Oozieを
経由したジョブの実行方法」を参照してください。
Talend Open Studio for Big Data ⼊⾨ガイド
13
Talend Open Studio for Big Data ⼊⾨ガイド
3.Talend Studioでのジョブの処理
この章では、Hadoopのビッグデータプラットフォームを活⽤したTalend Studioで、⼤量のデータ
セットを持つジョブの処理⽅法について説明します。Talendデータの統合ジョブの⼀般的なデザイ
ン、実⾏、管理の⽅法については、Talend Studioに付属しているユーザーガイドを参照してくださ
い。
Studioでジョブの作業を始める前に、GUI (グラフィカルユーザーインターフェイス)に慣れておく必
要があります。詳細は、ユーザーガイドのGUIに関する付録を参照してください。
Talend Open Studio for Big Data ⼊⾨ガイド
Oozieを経由したジョブの実⾏⽅法
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] (ビューの表⽰)ダイアログボックスから[Talend
Oozie]を選択して設定タブのエリアに表⽰します。
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] (設定)をクリックして、接続のセットアップダイアログボックスを開きます。
16
Talend Open Studio for Big Data ⼊⾨ガイド
HDFS接続の詳細の設定⽅法
上記に示した接続の設定はあくまでも一例です。
3.
必要な情報を該当するフィールドに⼊⼒し、[OK]をクリックしてダイアログボックスを閉じま
す。
フィールド/オプション
説明
Hadoop distribution
接続先のHadoopディストリビューションです。このディストリビューションは、
(Hadoopディストリビュー 使⽤するHDFSファイルシステムをホストします。カスタムのHadoopディストリ
ション)
ビューションに接続するには、[Custom] (カスタム)を選択し、[...]ボタンをクリッ
クして[Import custom definition] (カスタム定義のインポート)ダイアログボック
スを開き、このダイアログボックスでカスタムディストリビューションに必要なjar
ファイルをインポートします。
Hadoop version (Hadoop
のバージョン)
Enable Kerberos security
(ケルベロスセキュリティ
の有効化)
詳細は、「カスタムHadoopディストリビューションへの接続」を参照してくださ
い。
接続先のHadoopディストリビューションのバージョンです。このリスト
は、[Hadoop distribution] (Hadoopディストリビューション)リストで[Custom]
(カスタム)を選択した場合は表⽰されません。
ケルベロスセキュリティを実⾏しているHadoopクラスターにアクセスする場合
は、このチェックボックスをオンにし、表⽰されるフィールドにネームノードとし
てケルベロスのプリンシパル名を⼊⼒します。これにより、ユーザー名がケルベロ
スに保存されている認証情報に照合されます。
このチェックボックスは、接続しているHadoopのディストリビューションによっ
ては、表⽰されないこともあります。
Talend Open Studio for Big Data ⼊⾨ガイド
17
HDFS接続の詳細の設定⽅法
フィールド/オプション
説明
Name node end point
(ネームノードのエンドポ
イント)
ネームノードのURIです。これは、HDFSファイルシステムで最も重要な要素です。
User name (ユーザー名)
ログイン⽤のユーザー名です。
Job tracker end point
(ジョブトラッカーのエン
ドポイント)
ジョブトラッカーノードのURLです。これにより、MapReduceタスクをクラスター
内の特定のノードに委託します。
Hadoop Properties
(Hadoopのプロパティ)
対象のHadoopでカスタム設定を使⽤する必要がある場合は、このテーブルでカス
タマイズするプロパティを設定します。その後、実⾏時にStudioがHadoopのエン
ジンに使⽤するデフォルトのプロパティが、カスタマイズした設定に上書きされま
す。
Oozie end point (Oozieの
エンドポイント)
OozieのWebコンソールのURIで、ジョブの実⾏を監視します。
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.
2.
18
メニューバーで、[Window] (ウィンドウ) > [Preferences] (環境設定)をクリック
し、[Preferences] (環境設定)ウィンドウを開きます。
[Talend]ノードを展開し、[Oozie]をクリックしてOozieの環境設定ビューを表⽰します。
Talend Open Studio for Big Data ⼊⾨ガイド
HDFS接続の詳細の設定⽅法
上記に示したOozieの設定はあくまでも一例です。
3.
必要な情報を該当するフィールドに⼊⼒します。
フィールド/オプション
説明
Hadoop distribution
接続先のHadoopディストリビューションです。このディストリビューションは、
(Hadoopディストリビュー 使⽤するHDFSファイルシステムをホストします。カスタムのHadoopディストリ
ション)
ビューションに接続するには、[Custom] (カスタム)を選択し、
ボタンをク
リックして[Import custom definition] (カスタム定義のインポート)ダイアログ
ボックスを開き、このダイアログボックスでカスタムディストリビューションに必
要なjarファイルをインポートします。
Hadoop version (Hadoop
のバージョン)
Enable Kerberos security
(ケルベロスセキュリティ
の有効化)
User name (ユーザー名)
Name node end point
(ネームノードのエンドポ
イント)
Job tracker end point
(ジョブトラッカーのエン
ドポイント)
詳細は、「カスタムHadoopディストリビューションへの接続」を参照してくださ
い。
接続先のHadoopディストリビューションのバージョンです。このリスト
は、[Hadoop distribution] (Hadoopディストリビューション)リストで[Custom]
(カスタム)を選択した場合は表⽰されません。
ケルベロスセキュリティを実⾏しているHadoopクラスターにアクセスする場合
は、このチェックボックスをオンにし、表⽰されるフィールドにネームノードとし
てケルベロスのプリンシパル名を⼊⼒します。これにより、ユーザー名がケルベロ
スに保存されている認証情報に照合されます。
このチェックボックスは、接続しているHadoopのディストリビューションによっ
ては、表⽰されないこともあります。
ログイン⽤のユーザー名です。
ネームノードのURIです。これは、HDFSファイルシステムで最も重要な要素です。
ジョブトラッカーノードのURLです。これにより、MapReduceタスクをクラスター
内の特定のノードに委託します。
Talend Open Studio for Big Data ⼊⾨ガイド
19
HDFS接続の詳細の設定⽅法
フィールド/オプション
Oozie end point (Oozieの
エンドポイント)
説明
OozieのWebコンソールのURIで、ジョブの実⾏を監視します。
[Preferences] (環境設定)ウィンドウで定義したHadoopのディストリビューション、バージョ
ン、接続の詳細は、[Oozie scheduler] (Oozieスケジューラー)ビューにも⾃動的に反映されま
す。また、その逆も同様です。[Oozie scheduler] (Oozieスケジューラー)ビューについて詳しく
は、「Oozieを経由したジョブの実行方法」を参照してください。
カスタムHadoopディストリビューションへの接続
[Distribution] (ディストリビューション)ドロップダウンリストから[Custom] (カスタム)オプショ
ンを選択すると、Studioから提供される[Distribution] (ディストリビューション)リストにはない
Hadoopディストリビューションに接続します。
[Custom] (カスタム)オプションを選択したあとで、
ボタンをクリックすると、[Import custom
definition] (カスタム定義のインポート)ダイアログボックスが表⽰されます。ここで、次の⼿順を実
⾏します。
1.
必要に応じて、[Import from existing version] (既存のバージョンからインポート)と[Import
from zip] (ZIPからインポート)のいずれかを選択して、接続するカスタムHadoopディストリ
ビューションを設定します。
• 接続先のカスタムHadoopディストリビューション⽤のZIPファイルがある場合は、[Import
from zip] (ZIPからインポート)を選択します。これらのZIPファイルはTalendコミュニティ
が提供しており、http://www.talendforge.org/exchange/index.phpからダウンロードできま
す。
• それ以外は、[Import from existing version](既存のバージョンからインポート)を選択し
て、公式にサポートされているHadoopディストリビューションをインポートし、これをベー
スとして次のウィザードでカスタマイズします。
20
Talend Open Studio for Big Data ⼊⾨ガイド
HDFS接続の詳細の設定⽅法
2.
3.
このウィザードのチェックボックスを使って、インポートするHadoopのモジュールを選択しま
す。接続を作成するときの状況によって、これらすべてのチェックボックスがウィザードに表⽰
されないこともあります。たとえば、Oozieの接続を作成するときは、[Oozie]チェックボック
スだけが表⽰されます。
[Import from existing version] (既存のバージョンからインポート)と[Import from zip] (ZIP
からインポート)のどちらを選択した場合でも、インポートするHadoopのモジュールのチェック
ボックスをそれぞれオンにしてください。
[OK]をクリックすると、ポップアップ警告が表⽰されます。前に実装したjarファイルのカスタ
ムセットアップを上書きする場合は、[Yes] (はい)をクリックします。
完了すると、[Custom Hadoop version definition] (カスタムHadoopバージョンの定義)ダイ
アログボックスがアクティブになります。
4.
このダイアログボックスには、インポートするHadoopのモジュールとそのjarファイルがリスト
されます。
[Import from zip] (ZIPからインポート)を選択した場合は、[OK]をクリックしてインポートの設
定を確定します。
[Import from existing version](既存のバージョンからインポート)を選択した場合は、jarファ
イルを追加してバージョンをカスタマイズします。カスタマイズするHadoopのモジュールの
タブ(たとえば[HDFS/HCatalog/Oozie]タブなど)で[+]ボタンをクリックし、[Select libraries]
(ライブラリの選択)ダイアログボックスを開きます。
Talend Open Studio for Big Data ⼊⾨ガイド
21
HDFSサーバー上でジョブを実⾏する⽅法
5.
[External libraries] (外部ライブラリ)オプションを選択して、ビューを表⽰します。
7.
[OK]をクリックして変更を確定し、[Select libraries] (ライブラリの選択)ダイアログボックス
を閉じます。
6.
インポートするjarファイルを参照して選択します。
完了すると、設定したHadoopのモジュールのタブのリストに、選択したjarファイルが表⽰され
ます。
8.
カスタムHadoopセットアップを別のStudioと共有する必要がある場合は、
ボタンを使っ
て、このカスタム接続を[Custom Hadoop version definition] (カスタムHadoopバージョンの
定義)ウィンドウからエクスポートすることができます。
[Custom Hadoop version definition] (カスタムHadoopバージョンの定義)ダイアログボック
スで[OK]をクリックして設定のカスタマイズを確定します。これで、[Custom] (カスタム)オプ
ションを選択した設定ビューに戻ります。
カスタムHadoopバージョンの設定を完了し、Hadoopの接続設定ビューに戻ったら、その接続に必
要なその他のパラメーターを引き続き⼊⼒することができます。
接続先のカスタムHadoopバージョンにYARNが含まれており、それを使⽤する場合
は、[Distribution] (ディストリビューション)リストの横にある[Use YARN] (YARNを使⽤する)
チェックボックスをオンにします。
3.1.2. HDFSサーバー上でジョブを実⾏する⽅法
HDFSサーバー上でジョブを実⾏するには、次の⼿順を実⾏します。
1.
2.
[Oozie scheduler] (Oozieスケジューラー)タブの[Path] (パス)フィールドに、HDFSサーバー上
でジョブをデプロイするパスを⼊⼒します。
[Run] (実⾏)ボタンをクリックして、ジョブのデプロイメントを開始し、HDFSサーバー上で実
⾏します。
ジョブのデータはZIPに圧縮され、HDFSサーバー上にデプロイされます。これはサーバーの接続設定
に基づいて⾃動的に実⾏されます。接続状況によっては、時間がかかる場合もあります。コンソール
には、ジョブのデプロイメントと実⾏ステータスが表⽰されます。
ジョブの実⾏が完了する前に中断する場合は、[Kill] (停⽌)ボタンをクリックします。
22
Talend Open Studio for Big Data ⼊⾨ガイド
ジョブの実⾏のスケジュール⽅法
3.1.3. ジョブの実⾏のスケジュール⽅法
HDFSサーバー上でジョブの実⾏のスケジュールを設定するには、Talend Studioに統合されてい
るOozieスケジューラー機能を使います。定義した期間内の頻度に応じてジョブが実⾏されます。
ジョブのスケジュールを設定するには、次のように⾏います。
1.
2.
3.
4.
5.
デプロイメントパスがまだ定義されていない場合は、ジョブをデプロイするHDFSサーバー上の
パスをOozieスケジューラーの[Path] (パス)フィールドに、⼊⼒します。
[Oozie scheduler] (Oozieスケジューラー)タブの[Schedule] (スケジュール)ボタンをクリック
して、スケジューリングの設定ダイアログボックスを開きます。
[Frequency] (頻度)フィールドに整数を⼊⼒し、[Time Unit] (時間単位)リストから時間の単位
を選択して、ジョブの実⾏の頻度を定義します。
[Start Time] (開始時間)フィールドの横にある[...]ボタンをクリックして、[Select Date &
Time] (⽇時の選択)ダイアログボックスを開き、ジョブの実⾏を開始する⽇、時、分、秒の値を
選択して[OK]をクリックします。同様に、ジョブの実⾏の終了⽇時も設定します。
[OK]をクリックしてダイアログボックスを閉じ、スケジュールを設定したジョブの実⾏を開始
します。
ジョブは、定義したスケジュールのパラメーターに従って⾃動的に実⾏されます。ジョブを停⽌
するには、[Kill] (停⽌)をクリックします。
Talend Open Studio for Big Data ⼊⾨ガイド
23
ジョブの実⾏ステータスの監視⽅法
3.1.4. ジョブの実⾏ステータスの監視⽅法
ジョブの実⾏ステータスや結果を監視するには、[Oozie scheduler] (Oozieスケジューラー)タブ
の[Monitor] (監視)ボタンをクリックします。OozieのエンドポイントのURIがWebブラウザに開
き、HDFSサーバー上でのジョブの実⾏に関する情報が表⽰されます。
特定のジョブの詳細情報を表⽰するには、ジョブのいずれかのフィールドをクリックして別のページ
を開きます。そのページにジョブの詳細が表⽰されます。
24
Talend Open Studio for Big Data ⼊⾨ガイド
ジョブの実⾏ステータスの監視⽅法
Talend Open Studio for Big Data ⼊⾨ガイド
25
Talend Open Studio for Big Data ⼊⾨ガイド
4.ビッグデータのフローマッピング
ビッグデータのETLプロセスを開発するときは、1つまたは複数のデータソースから⽬的のシステ
ムに保管されているデータにマッピングを⾏うのが⼀般的です。Hadoopには、ビッグデータの変
換やルートプロセスの開発を容易にするスクリプト⾔語(Pig Latin)とプログラミングモデル(Map/
Reduce)がありますが、これらを学び理解するためには⼤量のコーディングが必要です。
TalendのマッピングコンポーネントはHadoopの環境に最適化されており、データフローの⼊出⼒を
視覚的にマッピングすることができます。
例としてtPigMapを挙げると、この章ではこれらのマッピングコンポーネントをでどのように使⽤
できるかについての理論を説明しています。コンポーネントの使い⽅については、『Talend Open
Studio Components Reference Guide』の実践的な例を参照してください。
データ統合プロセスを始める前に、StudioのGUI (グラフィカルユーザーインターフェイス)に慣れて
おく必要があります。詳細は、『Talend Studioユーザーガイド』のGUIに関する付録を参照してくだ
さい。
Talend Open Studio for Big Data ⼊⾨ガイド
tPigMapのインターフェイス
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] (出⼒パネル)はエディターの右上にあり、⼊⼒テーブルのデータやフィールドを
適切な出⼒⾏にマッピングします。
28
Talend Open Studio for Big Data ⼊⾨ガイド
tPigMap操作
• 中⼼的なパネルは、[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
Talend Open Studio for Big Data ⼊⾨ガイド
29
リジェクトレコードの捕捉
ルックアッププロパティ
値
Left Outer Join
Right Outer Join
Full Outer Join
結合オプションのデフォルトは、Left Outer Joinです。これ
は、このオプション設定パネルを表⽰していないときの状態で
す。これらのオプションは、2つまたはそれ以上のフローを共通
のフィールド値で結合します。
Join Optimization
複数のルックアップテーブルを結合しなければならない場合は、
メインの⼊⼒フローが1つ⽬のルックアップフローから結合を開
始し、その結果に基づいて残りのフローを順に結合していきま
す。
None
Replicated
Skewed
Merge
結合オプションのデフォルトは、Noneです。これは、このオプ
ション設定パネルを表⽰していないときの状態です。これらのオ
プションは、より効果的な結合操作を⾏う場合に使⽤します。た
とえば、複数のReduceタスクの並列処理を使⽤するときは、処
理するデータにかなりのずれが⽣じている場合に、Skewed結合
を使って負荷分散の問題を是正します。
Custom Partitioner
これらのオプションはいずれも、Apacheのドキュメンテーショ
ンで説明しているPig Latinに関する制約を受けます。
中間のマップ出⼒のキーのパーティションを制御する
ためのHadoopパーティショナーを⼊⼒します。たとえ
ば、SimpleCustomPartitionerというパーティショナーを使⽤する
場合は、
org.apache.pig.test.utils.SimpleCustomPartitioner
を⼆重引⽤符で囲んで⼊⼒します。このパーティショナーのjar
ファイルは、Register jarテーブルに登録されている必要があり
ます。このテーブルは、tPigLoadの[Advanced settings] (詳細
設定)ビューで、使⽤するtPigMapコンポーネントにリンクされ
ています。
Increase Parallelism
このSimpleCustomPartitionerのコードについて詳しくは、Pig
Latinに関するApacheのドキュメンテーションを参照してくださ
い。
Pigが⽣成したHadoopのMap/Reduceタスクのうちの、Reduce
タスクの数を⼊⼒します。Reduceタスクの並列処理について詳
しくは、Pig Latinに関するApacheのドキュメンテーションを参
照してください。
4.2.2. リジェクトレコードの捕捉
出⼒側では、適切なテーブルの ボタンをクリックして、出⼒オプションの設定に使⽤するパネル
を表⽰すると、次のようなオプションが使⽤できます。
30
Talend Open Studio for Big Data ⼊⾨ガイド
式の編集
出⼒プロパティ
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 Reference
Manual』など、Pigに関するApacheのドキュメンテーションを参照してください。
データの変換に必要な式は、式エディターの下半分に表⽰される[Expression editor] (式エディ
ター)ビューに直接記述することができます。また、[Expression Builder] (式ビルダー)ダイアログ
ボックスを開いて、データの変換式を記述することもできます。
[Expression builder] (式ビルダー)ダイアログボックスを開くには、開く式の横にある
ボタンを
クリックします。このボタンは、[Map Editor] (マップエディター)のルックアップフローまたは出⼒
フローを⽰す表形式のパネルにあります。
Talend Open Studio for Big Data ⼊⾨ガイド
31
式の編集
選択した式の[Expression Builder] (式ビルダー)ダイアログボックスが開きます。
StudioでPigのユーザー定義関数(Pig UDF)を作成した場合は、[Pig UDF Functions] (Pig UDF関数)
オプションが[Categories] (カテゴリー)リストに⾃動的に表⽰されます。これを選択して、使⽤する
マッピング式を編集することができます。
Pig UDF関数を作成するには、[Repository] (リポジトリ)ツリーの[Code] (コード)ノードの下にあ
る[Pig UDF]アイテムを使う必要があります。Pig Latinを使ったPig関数の記述⽅法は習得しなければ
なりませんが、Pig UDF関数の作成⽅法はTalendのルーチンと同様です。
32
Talend Open Studio for Big Data ⼊⾨ガイド
式の編集
[Repository] (リポジトリ)の表⽰は、使⽤するライセンスによって上記の図と異なる場合がありま
す。
ルーチンについて詳しくは、ユーザーガイドのルーチンの管理⽅法に関する章を参照してください。
[Expression editor] (式エディター)ビューを開くには、次の⼿順を実⾏します。
1.
2.
エディターの下半分で、[Expression editor] (式エディター)タブをクリックして、該当する
ビューを開きます。
式を設定する列をクリックし、[Expression editor] (式エディター)ビューで式を編集します。
⼊出⼒フローのフィルター条件を設定する必要がある場合は、
ボタンをクリックして表⽰された
エリアで式を編集するか、[Expression editor] (式エディター)ビューまたは[Expression Builder]
(式ビルダー)ダイアログボックスを使⽤します。
Talend Open Studio for Big Data ⼊⾨ガイド
33
Pigユーザー定義関数のセットアップ
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の新規作成)ウィザードが表⽰されます。
34
Talend Open Studio for Big Data ⼊⾨ガイド
Pigユーザー定義関数のセットアップ
2.
3.
4.
5.
[Template] (テンプレート)リストから、作成するPig UDF関数の種類を選択します。選択した種
類に基づいて、該当するPig UDFのテンプレートがStudioから提供されます。
ウィザードのその他のフィールドを⼊⼒します。
[Finish] (完了)をクリックして変更を確定すると、ワークスペースにPig UDFのテンプレートが
開きます。
テンプレートにコードを書き込みます。
書き終わったら、このPig UDFが⾃動的にtPigMapの[Expression Builder] (式ビルダー)ビューにあ
る[Categories] (カテゴリー)リストに表⽰され、使⽤可能になります。
Talend Open Studio for Big Data ⼊⾨ガイド
35
Talend Open Studio for Big Data ⼊⾨ガイド
付録A ビッグデータのジョブの例
この章は、Talendビッグデータソリューションのユーザーに実際の使⽤例を⽰し、製品を⾃在に活
⽤いただくたことを⽬的としています。この章は、『Talend Open Studio Components Reference
Guide』を捕捉するものです。
Talend Open Studio for Big Data ⼊⾨ガイド
Hadoopを使⽤したWebトラフィック情報の収集
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サイトへの訪問回数を、標準のシステムコンソールに表⽰します。
38
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
A.1.3. シナリオからジョブへの変換
このセクションでは、このシナリオで想定している結果が得られるようにジョブを作成・設定・実⾏
する⽅法について説明します。
A.1.3.1. サンプルジョブの作成
このセクションでは、デモジョブのApacheWebLogの例を実装する6つのジョブを作成します。
1つ⽬のジョブの作成
次の⼿順に従って1つ⽬のジョブを作成します。このジョブは、分析するアクセスログファイルを管
理するためのHCatalogデータベースをセットアップします。
1.
2.
3.
4.
[Repository] (リポジトリ)ツリービューで、right-click Job Designs、[Create folder] (フォル
ダーの作成)を選択します。このフォルダーに、これから作成するジョブをグループ化します。
作成したフォルダーを右クリックし、[Create job] (ジョブの作成)を選択して1つ⽬の
ジョブを作成します。サンプルジョブの役割と実⾏順序を指定するために、このジョブに
「A_HCatalog_Create」という名前を付けます。ジョブに短い説明を追加することもできます。
この説明は、ジョブの上にマウスポインターを当てたときにツールチップとして表⽰されます。
[Palette] (パレット)からデザインワークスペースに[tHDFSDelete]コンポーネントと2つ
の[tHCatalogOperation]コンポーネントをドロップします。
これらの3つのコンポーネントを[Trigger] (トリガー) > [On Subjob Ok] (サブジョブがOKの場
合)接続でリンクします。HDFSサブジョブは、ジョブの実⾏エラーを防ぐために、このデモサン
プルから以前の結果がある場合はそれを削除します。2つのHCatalogサブジョブは、HCatalog
データベースを作成し、それぞれHCatalogテーブルとそのパーティションをセットアップする
ために使⽤されます。
これらのコンポーネントの機能を特定するためのラベルを付けます。
2つ⽬のジョブの作成
次の⼿順に従って2つ⽬のジョブを作成します。このジョブは、アクセスログファイルをHCatalogに
アップロードします。
1.
2.
3.
サンプルジョブの役割と実⾏順序を指定するために、このジョブに「B_HCatalog_Load」とい
う名前を付けます。
[Palette] (パレット)からデザインワークスペース
に、[tApacheLogInput]、[tFilterRow]、[tHCatalogOutput]、[tLogRow]のコンポーネント
をドロップします。
[tApacheLogInput]コンポーネントと[tFilterRow]コンポーネントを[Row] (⾏) > [Main] (メイ
ン)接続でリンクします。次に、[tFilterRow]コンポーネントと[tHCatalogOutput]コンポーネ
ントを[Row] (⾏) > [Filter] (フィルター)接続でリンクします。このデータフローによって、分析
Talend Open Studio for Big Data ⼊⾨ガイド
39
シナリオからジョブへの変換
4.
5.
するログファイルが「301」というエラーコードが削除されたレコードとともにHCatalogデータ
ベースにロードされます。
[tFilterRow]コンポーネントと[tLogRow]コンポーネントを[Row] (⾏) > [Reject] (拒否)接続で
リンクします。このフローによって、コンソールでレコードに「301」というエラーコードがプ
リントされます。
これらのコンポーネントの機能を特定するためのラベルを付けます。
3つ⽬のジョブの作成
次の⼿順に従って3つ⽬のジョブを作成します。このジョブは、アップロードしたファイルの内容を
表⽰します。
1.
2.
3.
サンプルジョブの役割と実⾏順序を指定するために、このジョブに「C_HCatalog_Read」とい
う名前を付けます。
[Palette] (パレット)からデザインワークスペースに、[tHCatalogInput]コンポーネント
と[tLogRow]コンポーネントをドロップし、[Row] (⾏) > [Main] (メイン)の接続でリンクしま
す。
これらのコンポーネントの機能を特定するためのラベルを付けます。
4つ⽬のジョブの作成
次の⼿順に従って4つ⽬のジョブを作成します。このジョブは、アップロードしたログファイルを分
析し、Webサイトにサービスを正しく呼び出したコード数をカウントします。
1.
2.
サンプルジョブの役割と実⾏順序を指定するために、このジョブに「D_Pig_Count_Codes」と
いう名前を付けます。
[Palette] (パレット)からデザインワークスペースに次のコンポーネントをドロップします。
• tPigLoadコンポーネント: 分析するデータをロードします。
• tPigFilterRowコンポーネント: ⼊⼒フローから「404」エラーのレコードを削除します。
• tPigFilterColumnsコンポーネント: 結果のデータに含める列を選択します。
40
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
• tPigAggregateコンポーネント: Webサイトへの訪問数をカウントします。
• tPigSortコンポーネント: 結果のデータをソートします。
3.
• tPigStoreResultコンポーネント: 結果をHDFSに保存します。
[Row] (⾏) > [Pig Combine] (Pigの結合)接続を使ってこれらのコンポーネントをリンクしてPig
チェーンを作成し、それぞれのコンポーネントの機能を特定するためのラベルを付けます。
5つ⽬のジョブの作成
次の⼿順に従って5つ⽬のジョブを作成します。このジョブは、アップロードしたログファイルを分
析し、Webサイトにサービスを正しく呼び出したIP数をカウントします。
1.
2.
3.
[Repository] (リポジトリ)ツリービューで前のジョブを右クリックし、[Duplicate] (複製)を選
択します。
開いたダイアログボックスで、サンプルジョブの役割と実⾏順序を指定するために、このジョブ
に「E_Pig_Count_IPs」という名前を付けます。
ジョブの役割を指定するために、[tPigFilterColumns]コンポーネントのラベルを変更します。
6つ⽬のジョブの作成
次の⼿順に従って最後のジョブを作成します。このジョブは、アクセスログの分析結果を表⽰しま
す。
1.
2.
3.
サンプルジョブの役割と実⾏順序を指定するために、このジョブに「F_Read_Results」という
名前を付けます。
[Palette] (パレット)からデザインワークスペースに、[tHDFSInput]コンポーネント
と[tLogRow]コンポーネントをそれぞれ2つずつドロップします。
[Row] (⾏) > [Main] (メイン)接続を使⽤して、1つ⽬の[tHDFSInput]コンポーネントを1つ⽬
の[tLogRow]に、2つ⽬の[tHDFSInput]コンポーネントを2つ⽬の[tLogRow]にリンクします。
Talend Open Studio for Big Data ⼊⾨ガイド
41
シナリオからジョブへの変換
[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.
42
この例では、「HDFS_ClearResults」というラベルが付いている[tHDFSDelete]コンポーネント
をダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビュー
を開きます。
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
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
3.
4.
• User name (ユーザー名): sandbox
[File or Directory Path] (ファイルまたはディレクトリパス)フィールドに、HDFS上でアクセス
ログファイルが保管されるディレクトリを指定します。この例では、 /user/hdp/weblogです。
この例では、「HCatalog_Create_DB」というラベルが付いている1つ⽬
の[tHCatalogOperation]コンポーネントをダブルクリックし、[Component] (コンポーネン
ト)タブで[Basic settings] (基本設定)ビューを開きます。
Talend Open Studio for Big Data ⼊⾨ガイド
43
シナリオからジョブへの変換
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アドレス
44
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
• Templeton port (Templetonのポート):50111
• Database (データベース): talend
6.
7.
8.
• User name (ユーザー名): sandbox
[Operation on] (オペレーション先)リストで[Database] (データベース)を選択
し、[Operation] (オペレーション)リストで[Drop if exist and create] (既存する場合はドロッ
プして作成)を選択します。
[Drop configuration] (ドロップ設定)エリアの[Option] (オプション)リストで、[Cascade] (カ
スケード)を選択します。
[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]の汎⽤スキーマを直接選択し、こ
のコンポーネントにドラッグアンドドロップして適⽤することもできます。
Talend Open Studio for Big Data ⼊⾨ガイド
45
シナリオからジョブへの変換
4.
5.
6.
Talend Open Studio for Big Dataでは、[...]ボタンをクリックしてスキーマを⼿動で設定します。
次のEdit schema(スキーマの編集)でtApacheLogInputコンポーネントの参照専⽤スキーマ
をペーストとして2つ⽬のジョブの[Schema] (スキーマ)ダイアログボックスで使⽤します。
[Operation on] (オペレーション先)リストで[Table] (テーブル)を選択し、[Operation] (オペ
レーション)リストで[Drop if exist and create] (既存する場合はドロップして作成)を選択しま
す。
[Table] (テーブル)フィールドに作成するテーブルの名前を⼊⼒します。この例では、
「weblog」と⼊⼒します。
[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] (基本設定)ビューを開き
ます。
46
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
3.
4.
[Logical operator used to combine conditions] (条件の結合に使⽤する論理演算⼦)リスト
ボックスから[AND]を選択します。
[+]ボタンをクリックして[Filter configuration] (フィルターの設定)テーブルに⾏を追加し、
「301」というコードを持つレコードをRejectフローに送り、残りのレコードをFilterフローに渡
すためのフィルターパラメーターを設定します。
• [InputColumn] (⼊⼒カラム)フィールドに、スキーマの[code] (コード)列を選択します。
• [Operator] (演算⼦)フィールドで、[Not equal to] (と等しくない)を選択します。
5.
6.
• [Value] (値)フィールドに、「301」と⼊⼒します。
[tHCatalogOutput]コンポーネントをダブルクリックして、[Basic settings] (基本設定)ビュー
を開きます。
⼀元化したHCatalog接続を使⽤する場合は、[Property Type] (プロパティのタイプ)リストボッ
クスをクリックし、[Repository] (リポジトリ)を選択します。次に、[...]ボタンをクリックし
て[Repository Content] (リポジトリのコンテンツ)ダイアログボックスを開きます。HCatalog
データベースへの接続に定義されているHCatalog接続を選択し、[OK]をクリックします。該当
するフィールドに接続の詳細設定がすべて⾃動的に⼊⼒されます。
Talend Open Studio for Big Data ⼊⾨ガイド
47
シナリオからジョブへの変換
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
7.
8.
9.
• User name (ユーザー名): sandbox
[...]ボタンをクリックして、スキーマが先⾏のコンポーネントから正しく伝播されることを確認
します。必要に応じて、[Sync columns] (列の同期)をクリックして、スキーマを取得します。
[Action] (アクション)リストから[Create] (作成)を選択してファイルを作成します。または、
ファイルが既存する場合は、[Overwrite] (上書き)を選択します。
[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にアップロードしたロ
グのコンテンツを確認します。
48
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
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
Talend Open Studio for Big Data ⼊⾨ガイド
49
シナリオからジョブへの変換
3.
• User name (ユーザー名): sandbox
[Schema] (スキーマ)リストボックスをクリックし、[Repository] (リポジトリ)を選択します。
次に、フィールドの横に表⽰される[...]ボタンをクリックして[Repository Content] (リポジトリ
のコンテンツ)ダイアログボックスを開き、[Metadata] (メタデータ) > [Generic schemas] (汎
⽤スキーマ) > [access_log]を展開してスキーマを選択します。[OK]をクリックして選択したオ
プションを確定し、ダイアログボックスを閉じます。access_logの汎⽤スキーマは、コンポーネ
ントに⾃動的に適⽤されます。
また、[Repository] (リポジトリ)ツリービューで[access_log]の汎⽤スキーマを直接選択し、こ
のコンポーネントにドラッグアンドドロップして適⽤することもできます。
4.
Talend Open Studio for Big Dataでは、[...]ボタンをクリックしてスキーマを⼿動で設定します。
次のEdit schema(スキーマの編集)でtApacheLogInputコンポーネントの参照専⽤スキーマ
をペーストとして2つ⽬のジョブの[Schema] (スキーマ)ダイアログボックスで使⽤します。
[tLogRow]コンポーネントの[Basic settings] (基本設定)ビューで、[Vertical] (縦)モードを選択
してジョブを実⾏した際に各⾏にキーと値を表⽰します。
このコンポーネントの設定が終わったら、Ctrl+Sキーを押してジョブの設定を保存します。
4つ⽬のジョブの設定
この⼿順では、4つ⽬のジョブであるD_Pig_Count_Codesを設定し、Pigチェーンを使ってアップ
ロードしたアクセスログファイルを分析し、成功したサービス呼び出しのコードとWebサイトへの訪
問数をカウントします。
Pigチェーンを通じて分析するログファイルの読み取り
1.
[tPigLoad]コンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きま
す。
2.
⼀元化したHDFS接続を使⽤する場合は、[Property Type] (プロパティのタイプ)リストボッ
クスをクリックして[Repository] (リポジトリ)を選択します。次に、[...]ボタンをクリックし
50
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
て[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
3.
4.
• JobTracker host (ジョブトラッカーのホスト): この例ではsandbox:50300
[Repository] (リポジトリ)ツリービューで[access_log]の汎⽤スキーマを選択し、このコンポーネ
ントにスキーマをドラッグアンドドロップして適⽤します。
Talend Open Studio for Big Dataでは、[...]ボタンをクリックしてスキーマを⼿動で設定します。
次のEdit schema(スキーマの編集)でtApacheLogInputコンポーネントの参照専⽤スキーマ
をペーストとして2つ⽬のジョブの[Schema] (スキーマ)ダイアログボックスで使⽤します。
[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」と⼊⼒します。
Talend Open Studio for Big Data ⼊⾨ガイド
51
シナリオからジョブへの変換
2.
[tPigFilterColumns]コンポーネントの[Basic settings] (基本設定)ビューで[...]ボタンをク
リックし、[Schema] (スキーマ)ダイアログボックスを開きます。[Input] (⼊⼒)パネルで[code]
(コード)列を選択し、⽮印ボタンをクリックして列を[Output] (出⼒)パネルにコピーします。こ
れにより、[code] (コード)列の情報が出⼒フローに渡されます。[OK]をクリックして出⼒スキー
マの設定を確定し、ダイアログボックスを閉じます。
3.
[tPigAggregate]コンポーネントの[Basic settings] (基本設定)ビューで、[Sync columns] (列
の同期)をクリックして先⾏コンポーネントからスキーマを取得し、スキーマを次のコンポーネ
ントに伝播します。
4.
5.
[Edit schema] (スキーマの編集)の横にある[...]ボタンをクリックし、[Schema] (スキーマ)ダイ
アログボックスを開いて新しい[count] (カウント)列を追加します。この列には、成功したサービ
ス呼び出しの各コードが保存されます。
各コードの数をカウントするため、次のパラメーターを設定します。
• [Group by] (グループ化)エリアで[+]ボタンをクリックしてテーブルに⾏を追加し、[Column]
(列)フィールドで[count] (カウント)列を選択します。
• [Operations] (オペレーション)エリアで[+]ボタンをクリックしてテーブルに⾏を追加
し、[Additional Output Column] (追加の出⼒列)フィールドで[count] (カウント)列を選択し
ます。さらに、[Function] (関数)フィールドで[count] (カウント)を選択し、[Input Column]
(⼊⼒列)で[code] (コード)列を選択します。
52
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
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」です。
Talend Open Studio for Big Data ⼊⾨ガイド
53
シナリオからジョブへの変換
• [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] (ホスト)列をそれぞれ選択します。
54
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
• [tPigStoreResult]コンポーネントで、[Result file URI](結果ファイルのURI)フィールドに「/user/
hdp/weblog/apache_ip_cnt」と⼊⼒します。
このコンポーネントの設定が終わったら、Ctrl+Sキーを押してジョブの設定を保存します。
最後のジョブの設定
この⼿順では、最後のジョブであるF_Read_Resultsを設定し、Hadoopから結果のデータを読み
取って、標準のシステムコンソールに表⽰します。
1.
1つ⽬の[tHDFSInput]コンポーネントをダブルクリックして、[Basic settings] (基本設定)
ビューを開きます。
Talend Open Studio for Big Data ⼊⾨ガイド
55
シナリオからジョブへの変換
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
56
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
3.
4.
5.
6.
7.
汎⽤スキーマの「ip_count」をこのコンポーネントに適⽤します。このスキーマには、「host」
(ホスト、50字の⽂字列)と「count」(カウント、5字の整数)の2列があります。
Talend Open Studio for Big Dataでは、[...]ボタンをクリックしてスキーマを⼿動で設定します。
⼜は、前のジョブにあるtPigStoreResultコンポーネントのス キーマをコピーして、こコンポー
ネントの[Schema](スキーマ)ダイ アログボックスにペーストします。
[File Name] (ファイル名)フィールドに、HDFSでの結果ファイルのパスを⼊⼒します。この例で
は、「/user/hdp/weblog/apache_ip_cnt/part-r-00000」です。
[Type] (タイプ)リストで、読み取るファイルのタイプを選択します。この例では、[Text File] (テ
キストファイル)を選択します。
[tLogRow]コンポーネントの[Basic settings] (基本設定)ビューで、読みやすくするため
に[Table] (テーブル)オプションを選択します。
他のサブジョブも同様に設定します。ただし、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アドレスとコード、およびその
数がシステムコンソールに表⽰されます。
Talend Open Studio for Big Data ⼊⾨ガイド
57
シナリオからジョブへの変換
⼀回クリックするだけで、すべてのジョブを必要な順序で実⾏することができます。そのためには、
次の⼿順を実⾏します。
1.
2.
3.
4.
58
[tRunJob]コンポーネントを1つ⽬のジョブのデザインワークスペースにドロップします。この
例では、A_HCatalog_Createです。このコンポーネントはサブジョブとして表⽰されます。
先⾏するサブジョブを[tRunJob]コンポーネントに[Trigger] (トリガー) > [On Subjob Ok] (サ
ブジョブがOKの場合)接続でリンクします。
[tRunJob]コンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きま
す。
[Job] (ジョブ)フィールドの横にある[...]ボタンをクリックし、[Repository Content] (リポジ
トリのコンテンツ)ダイアログボックスを開きます。現在のジョブが正しく実⾏した後にトリ
ガーするジョブを選択し、[OK]をクリックしてダイアログボックスを閉じます。次に実⾏され
るジョブが[Job] (ジョブ)フィールドに表⽰されます。
Talend Open Studio for Big Data ⼊⾨ガイド
シナリオからジョブへの変換
5.
6.
もう⼀度[tRunJob]コンポーネントをダブルクリックし、次のジョブを開きます。[tRunJob]コ
ンポーネントで上記の⼿順を繰り返し、E_Pig_Count_IPsジョブが最後のF_Read_Resultsジョ
ブをトリガーするまで設定します。
1つ⽬のジョブを実⾏します。
各ジョブが正しく実⾏されると次のジョブがトリガーされ、最後のジョブがすべて実⾏されると
その結果が1つ⽬のジョブのコンソールに表⽰されます。
Talend Open Studio for Big Data ⼊⾨ガイド
59
Talend Open Studio for Big Data ⼊⾨ガイド
Fly UP