Upload
oss
View
1.584
Download
0
Embed Size (px)
DESCRIPTION
Asakusa Framework 勉強会 2014春
Citation preview
Asakusa Framework 勉強会2014春
「JobSchedulerを使ったAsakusaのジョブ管理」
2014/4/7
Open Programmable Infrastructure Environment
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
3
JobSchedulerの導入実績
ドイツ eBankやカード決済サービス会社
イギリス 財務アプリケーションのプロバイダ
オーストリア (イタリアの)大手金融グループ
アメリカノースカロライナ州 保健福祉サービス機関
ヨーロッパを中心に金融・産業・政府・大学 などの様々な機関で使用されている
ドイツ 大学図書館
2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved
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
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
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クライアント
管理サーバ
管理対象サーバ
主要機能
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アラート
ジョブの定義
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>
ジョブの実行
l イベントによる実行 l ホットフォルダに作成/更新されたファイルを監視し、自動的にジョブ起動、ファイルを移動/リネーム/削除/処理対象外に指定できる。また、メールの受信や、任意のプログラムやスクリプトでジョブを制御する事も可能である。
l カレンダによる計画実行 l 平日、休日、特定の休業日、毎週/毎月の特定日、など柔軟に指定でき、実行日が休業日や特定日の場合、実行日時を翌営業日、前の営業日、または実行中止を指定できる。
l ジョブ実行時間を制限するタイムスロット機能 l 実行優先順位を制御するプライオリティ機能 l ジョブの排他制御のためのロック機能 l 複数ジョブの同時並行実行を制御するシンクロナイズ機能 l ジョブ実行エラー時の再実行を制御するセットバック機能等、柔軟なジョブ実行制御機能を備えている。
2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 9
ジョブの監視
2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 10
l JOC (Job Operation Center)画面例
l ジョブチェーンの表示例
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
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
AsakusaとJobScheduler連携
l やりたかった事 l Asakusaで作成したバッチのデプロイ l Asakusaで作成したバッチ実行のスケジューリングと監視
l Abortしたバッチ処理の再実行 l 中断したバッチ処理の再開
2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 13
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 の定義などによって決定される。
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定義
実行イメージ
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実行
デモ シナリオ
l AsakusaFWサンプルプログラム l サンプルプログラムのJobSchedulerへの登録 l プログラムのデプロイ l バッチ起動 l 結果確認 l 途中停止/再開
2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 17
example.summarizeSales
2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 18
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定義
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
実行中画面(JOC)
2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 21
2014/4/7 Copyright 2014(C) OSS Laboratories Inc. All Rights Reserved 22
各ジョブ実行履歴
各ジョブ実行ログ
ログ表示(JID)
運用管理自動化基盤とは
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
運用管理自動化基盤イメージ
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
日本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
活動内容
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
最後に
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
ご清聴ありがとうございました