28
Asakusa Framework 勉強会2014JobSchedulerを使ったAsakusaのジョブ管理」 2014/4/7 Open Programmable Infrastructure Environment

JobSchedulerを使ったAsakusaのジョブ管理

  • Upload
    oss

  • View
    1.584

  • Download
    0

Embed Size (px)

DESCRIPTION

Asakusa Framework 勉強会 2014春

Citation preview

Page 1: JobSchedulerを使ったAsakusaのジョブ管理

Asakusa Framework 勉強会2014春

「JobSchedulerを使ったAsakusaのジョブ管理」

2014/4/7

Open Programmable Infrastructure Environment

Page 2: JobSchedulerを使ったAsakusaのジョブ管理

2

   とは

l  OSSのJob管理製品(GNU Public License V.2) l  ドイツのSoftware- und Organisations-Service (SOS社)製 l  2003年に商用版・2005年にOSS版をリリース

l  Webブラウザ(JOC)・JOE(デスクトップ)といったGUIツールでJobの監視や管理を実施

l  Windows, Linux, Solaris(商用版のみ), AIX(商用版のみ), HP-UX(商用版のみ)に対応

l  リモートジョブ実行、冗長化機能、ロードバランス、外部認証等、エンタープライズ向け大規模システム対応

l  商用版にはSOS社のサポートが含まれる

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved

Page 3: JobSchedulerを使ったAsakusaのジョブ管理

3

JobSchedulerの導入実績

ドイツ eBankやカード決済サービス会社

イギリス 財務アプリケーションのプロバイダ

オーストリア (イタリアの)大手金融グループ

アメリカノースカロライナ州 保健福祉サービス機関

ヨーロッパを中心に金融・産業・政府・大学 などの様々な機関で使用されている

ドイツ 大学図書館

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved

Page 4: JobSchedulerを使ったAsakusaのジョブ管理

4

JobSchedulerの概要 - 機能 -

l  ジョブ定義 l  ジョブ実行(時間指定/繰り返し) l  スケジュール l  多重実行・排他制御 l  先行・後続制御 l  優先度設定 l  イベント監視 l  メール通知 l  外部パラメータ設定 l  開始/終了遅延検知

•  クライアント / サーバ •  バックアップクラスタ •  負荷分散クラスタ •  SOAP/RESTの外部API •  独自の内部API •  Javascript / Perl / Java / Shell

Script / Powershell / VBScript / javax.scriptでのジョブ定義

高度なジョブ管理機能 Devの使い慣れた言語でのJob定義

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved

Page 5: JobSchedulerを使ったAsakusaのジョブ管理

SOS JobSchedulerの特長 l  オープンソース(GNU Public License)

l  Linux/Windows版は、全ての機能が無料で使用可能。 l  サポートライセンスを購入すれば、HP-UX/Solaris/AIX版の利用に加えて、障害対応、バグフィックス/ワークアラウンドの提供、新機能の早期提供、チケットシステム(OTRS)、JIRAの利用が提供される。

l  プログラマブル l  ジョブの中で、Java, Perl, JavaScript, VBScript, Powershell, javax.scriptのAPIを使ったロジックを記述可能

l  外部API(XML形式)によりRESTまたはコマンドラインからジョブの実行制御、実行状況の取得が可能

l  エンタープライズ・グレード l  ファイル転送やログローテンション等豊富なテンプレート機能

l  リモートジョブ実行、冗長化機能、ロードバランス、外部認証等、エンタープライズ向け大規模システム対応

l  JasperReport(ジョブ実行レポート)やNagios(ジョブ実行監視)との連携機能 l  MySQLの他、Oracle, DB2, MS SQL Server, PostgreSQL, Firebirdに対応

l  豊富な実績

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 5

Page 6: JobSchedulerを使ったAsakusaのジョブ管理

JobSchedulerの構成

l  JobScheduler Engine l  ジョブの制御と管理を司るサービス。以下の機能を

包含する。

l  バックアップフェイルオーバー機能

l  RDBMSを使用したジョブ履歴、ログ管理機能(JDBC接続)

l  JobScheduler Agent l  ジョブのリモート実行エージェント

l  JOC (Job Operation Center) l  WEB UIのジョブ管理画面

l  JOE (JobScheduler Object Editor) l  ジョブ定義を作成するための、Javaで稼働するスタ

ンドアロンアプリケーション。

l  JID (JobScheduler Information Dashboard) l  待機中、実行中、完了したジョブの状態、ログを一

覧できるJavaで稼働するスタンドアロンアプリケーション。

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 6

JobScheduler Engine

JobScheduler Agent

JobScheduler Agent

JobScheduler Agent

JID JOE

JOC

RDB JobScheduler

Engine

JOC

JobScheduler Engine

JOC

RDB

RDB

Agentless hosts

ssh

GUIクライアント

管理サーバ

管理対象サーバ

Page 7: JobSchedulerを使ったAsakusaのジョブ管理

主要機能

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 7

JobScheduler Engine

JobScheduler Engine

JID/JOE

JOC

JobScheduler Agent

JobScheduler Agent

ジョブ制御、監視

ジョブ定義、監視

バックアップ クラスタ

共有DB ファイルサーバ

負荷分散

SSH リモートジョブ実行

ファイル送受信 整合性確認、再送

リネーム、ローテーション等

DMZ

Internet JobScheduler Engine

Webサービス(SOAP)による 外部連携

Job

Job

Job Job

メール通知 Nagiosアラート

Page 8: JobSchedulerを使ったAsakusaのジョブ管理

ジョブの定義

l  JOE (Job ObjectEditor)による定義例

l  XMLファイルによる定義例

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 8

<?xml version="1.0" encoding="ISO-8859-1"?> <job > <params /> <script language="shell"> <![CDATA[ #!/bin/sh echo “$SCHEDULER_JOB_NSME is running” echo “Current Timestamp `date`” exit $? ]]> </script> </job>

Page 9: JobSchedulerを使ったAsakusaのジョブ管理

ジョブの実行

l  イベントによる実行 l  ホットフォルダに作成/更新されたファイルを監視し、自動的にジョブ起動、ファイルを移動/リネーム/削除/処理対象外に指定できる。また、メールの受信や、任意のプログラムやスクリプトでジョブを制御する事も可能である。

l  カレンダによる計画実行 l  平日、休日、特定の休業日、毎週/毎月の特定日、など柔軟に指定でき、実行日が休業日や特定日の場合、実行日時を翌営業日、前の営業日、または実行中止を指定できる。

l  ジョブ実行時間を制限するタイムスロット機能 l  実行優先順位を制御するプライオリティ機能 l  ジョブの排他制御のためのロック機能 l  複数ジョブの同時並行実行を制御するシンクロナイズ機能 l  ジョブ実行エラー時の再実行を制御するセットバック機能等、柔軟なジョブ実行制御機能を備えている。

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 9

Page 10: JobSchedulerを使ったAsakusaのジョブ管理

ジョブの監視

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 10

l  JOC (Job Operation Center)画面例

l  ジョブチェーンの表示例

Page 11: JobSchedulerを使ったAsakusaのジョブ管理

JITL (JobScheduler Integrated Template Library)

JobSchedulerは、以下のジョブテンプレートが標準で提供されている。 l  Logging and Cleanup

l  ログファイルのローテーション、リネーム、削除 l  Sanity Checking

l  JobSchedulerが稼働するサーバの環境チェック(ディスク容量、メモリ容量等)

l  Mail Forwarding l  JobSchedulerからの通知メール送信失敗時のエラー制御

l  File Transfer l  ファイル送受信の容量チェック、リネーム、並列転送、proxy経由転送、重複確認、転送失敗時の迂回配送、自動圧縮、等

l  File Operations (rename, copy, remove, check existence, ...)

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 11

Page 12: JobSchedulerを使ったAsakusaのジョブ管理

API l  JobSchedulerは、外部プログラムからのジョブ制御を可能にするため、以下の2種類のAPIを備えている。

l  内部API l  Java, JavaScript, Perl, JScript, VBScript, Powershell,

javax.scriptのプログラムからJobScheduler Engineの機能を呼び出し、実行できる。

l  外部API l  XML形式によりRESTまたはコマンドラインからジョブの実行制御、実行状況の取得が可能である。

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 12

Page 13: JobSchedulerを使ったAsakusaのジョブ管理

AsakusaとJobScheduler連携

l  やりたかった事 l  Asakusaで作成したバッチのデプロイ l  Asakusaで作成したバッチ実行のスケジューリングと監視

l  Abortしたバッチ処理の再実行 l  中断したバッチ処理の再開

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 13

Page 14: JobSchedulerを使ったAsakusaのジョブ管理

YAESSのスケジューリング

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 14

Batch Job Flow

Job Flow Job Flow

setup

initialize

import

prologue

main

epilogue

export

finalize

cleanup

Job Job

Job

Job

Job Job

ジョブフロー

フェーズ ジョブ

•  バッチは複数のジョブフローで構成され、 Batch DSL の定義にしたがった実行順序の依存関係を持つ •  各ジョブフローは各フェーズを上から順に実行する (DSLの定義内容によっては、フェーズの一部がスキップされる) 。

•  各フェーズは複数のジョブで構成され、 Flow DSL の定義などにしたがった実行順序の依存関係を持つ

•  ジョブが実行する各処理は、 Flow DSL や Operator DSL の定義などによって決定される。

Page 15: JobSchedulerを使ったAsakusaのジョブ管理

Job Schedulerへの登録

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 15

Job Chain Job Chain

Job Chain Job Chain

Job Node

Job Node

Nested Job Chain Order Job

•  Yaess-explain.shを実行し、JSON形式のバッチ構造ファイルを作成する。 •  JSON形式のファイルを読み込み、JobSchedulerのJob定義ファイル(XML)とイベントハンドラを作成する。

setup

initialize

import

prologue

main

epilogue

export

finalize

cleanup

Job Job

Job

Job

Job Job

YAESSフェーズ YAESSジョブ

Job Scheduler Job定義

Page 16: JobSchedulerを使ったAsakusaのジョブ管理

実行イメージ

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 16

Hadoopマスター NameNode/JobTracker

Hadoopクライアント DayaNode/TaskTracker Hadoopクライアント

DayaNode/TaskTracker Hadoopノード DataNode/TaskTracker

データソース

バッチサーバ Job Scheduler Agent

YAESS/WindGate etc. AsakusaFW

Hadoop client

hdfs hdfs

hdfs

①バッチ起動

③実行結果監視

ジョブ管理サーバ Job Scheduler Engine

②YAESS実行

Page 17: JobSchedulerを使ったAsakusaのジョブ管理

デモ シナリオ

l  AsakusaFWサンプルプログラム l  サンプルプログラムのJobSchedulerへの登録 l  プログラムのデプロイ l  バッチ起動 l  結果確認 l  途中停止/再開

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 17

Page 18: JobSchedulerを使ったAsakusaのジョブ管理

example.summarizeSales

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 18

Page 19: JobSchedulerを使ったAsakusaのジョブ管理

Job Schedulerへの登録

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 19

Job Chain

Start_batch

byCategory Job Chain

End_batch

Nested Job Chain

Order Job

setup

prologue

main

epilogue

cleanup

Job Scheduler Job定義

Page 20: JobSchedulerを使ったAsakusaのジョブ管理

Job定義 ジョブ: /example.summarizeSales/byCategory_main ファイル更新日付: 2014-04-02 18:39:09 <job order="yes" stop_on_error="no"> <script language="shell"><![CDATA[ #!/bin/bash LANG=C export JAVA_HOME=/usr/java/default export ASAKUSA_DEVELOP_HOME=/home/asakusa/asakusa-develop export ASAKUSA_HOME=${ASAKUSA_DEVELOP_HOME}/asakusa export HADOOP_CMD=${ASAKUSA_DEVELOP_HOME}/hadoop/bin/hadoop export HADOOP_CLIENT_OPTS=-Xmx512m export PATH=$JAVA_HOME/bin:${ASAKUSA_DEVELOP_HOME}/hadoop/bin:$ASAKUSA_DEVELOP_HOME/eclipse:$ASAKUSA_HOME/yaess/bin:$PATH export ASAKUSA_HOME=/home/asakusa/asakusa-develop/asakusa /home/asakusa/asakusa-develop/asakusa/yaess/bin/yaess-phase.sh example.summarizeSales byCategory main 100 -A date=2011-04-01 ]]></script> <run_time/> </job>

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 20

Page 21: JobSchedulerを使ったAsakusaのジョブ管理

実行中画面(JOC)

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 21

Page 22: JobSchedulerを使ったAsakusaのジョブ管理

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 22

各ジョブ実行履歴

各ジョブ実行ログ

ログ表示(JID)

Page 23: JobSchedulerを使ったAsakusaのジョブ管理

運用管理自動化基盤とは

l  構築~実装~サービス稼働までプログラム化 l  コスト低減、ミスの削減、期間短縮

l  運用管理の集中化 l  人に依存しない標準化、品質向上

l  広域分散環境に対応 l  AWS等のパブリッククラウドサービスから、オンプレミスの既存物理サーバまで一元管理

l  リソースの最適化 l  目的に応じて最適なプラットフォームにアプリケーションを移動

l  DR/BCPへ対応 l  DR/BCPの自動化

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 23

Page 24: JobSchedulerを使ったAsakusaのジョブ管理

運用管理自動化基盤イメージ

Asakusa

JobScheduler

Talend

その他

Jarファイル Jsonジョブ定義

Deploy定義

Libcloud

openQRM

fabric

Cobbler LinuxCOE etc.

Ansible Puppet

AWS OpenStack

vSphere

BearMetal ESXi

KVM/xen LXC他

Jarファイル

Zabbix/Nagios

Job監視

JasperReport

Job予実 レポート

provisioning

provisioning

JP1/AJS3

ジョブ連携

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 24

Open Programmable Infrastructure Environment

Page 25: JobSchedulerを使ったAsakusaのジョブ管理

日本JobSchedulerユーザーグループ

l  2013/4発足 l  JobSchedulerいけるやん、という人の集まり l  独SOSサイトにも掲載 “Company News : Japanese language JobScheduler user group on Facebook” http://www.sos-berlin.com/modules/news/article.php?storyid=42

l  会則/会費ありません l  会員資格ありません、Google Groupsに参加して下さい https://groups.google.com/forum/?fromgroups#!forum/jobscheduler-ja

l  JobSchedulerを使う上での疑問やノウハウの共有 l  勉強会と言う名の飲み会

2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 25

Page 26: JobSchedulerを使ったAsakusaのジョブ管理

活動内容

l  グループサイトの運営 https://sites.google.com/site/jobschedulerja/home

l  Wiki, tips, ドキュメントを掲載

l  Facebookページ http://ja-jp.facebook.com/pages/Jobscheduler-Japan-ユーザーグループ/

594469610565511

l  各種告知 l  いいね!をお願いします!!

l  普及活動 l  定期勉強会 l  OSC東京?

2014/4/7 26 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved

Page 27: JobSchedulerを使ったAsakusaのジョブ管理

最後に

l  Please join us!!

https://groups.google.com/forum/?fromgroups#!forum/jobscheduler-ja

2014/4/7 27 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved

Page 28: JobSchedulerを使ったAsakusaのジョブ管理

ご清聴ありがとうございました