Hitachi

uCosminexus Grid Processing Server 使用の手引


付録A.2 グリッドジョブ開始処理のカスタマイズ

デフォルトのスクリプトファイル(グリッドジョブ前処理プログラム)を,GUIを使ってカスタマイズします。

〈この項の構成〉

(1) 分割ファイル格納ディレクトリの作成

分割ファイル格納ディレクトリの作成は,gpdivdirmkコマンドを実行することで処理されます。グリッドジョブ前処理プログラムにグリッドプロパティ識別子を指定してgpdivdirmkコマンドを実行すると,分割ファイル格納ディレクトリが作成されます。gpdivdirmkコマンドについては,8章の「gpdivdirmk(分割ファイル格納ディレクトリ作成コマンド)」を参照してください。

分割ファイル格納ディレクトリは,設定ファイルのDISTRIBUTE_DIRパラメータで指定します。分割ファイル格納ディレクトリは,単体グリッドジョブごとにユニークな領域となります。

(2) データ分割の仕組み

GUIで設定した自動分散定義の内容やグリッドジョブ管理ホストの設定内容を基に,SORT EEコマンドを使うことで,入力ファイルを分割します。デフォルトのスクリプト(グリッドジョブ前処理プログラム)を使用したデータ分割処理の概要を次の図に示します。

図A‒1 グリッドジョブ前処理プログラムを使用したデータ分割処理の概要

[図データ]

図に従い,データ分割の処理を説明します。

GUIで設定した自動分散の定義

入力ファイル名:/tmp/imput/intra

分割数:10

この入力ファイル名と分割数は,ジョブマネージャデーモンがそれぞれUGPSM_DIVIN環境変数,UGPSM_DIVCNT環境変数として設定します。これらは,グリッドジョブ前処理プログラムから参照されます。また,設定ファイル(ugpsm.conf)で設定したDISTRIBUTE_DIRパラメータおよびSORT_TMPDIRパラメータの値も同様に,ジョブマネージャデーモンがそれぞれUGPSM_DDIR環境変数,UGPSM_SDIR環境変数として設定し,グリッドジョブ前処理プログラムから参照されます。

入力ファイルが存在しない,またはジョブ実行ユーザに対して入力ファイルへの参照権限がない場合は,SORT EEコマンドがエラーとなります。このとき,デフォルトのグリッドジョブ前処理プログラムの終了コードは,コマンドの終了コードと同じ値となります。エラー発生時は,グリッドジョブ識別子ごとに出力する一時エラーメッセージファイル,またはSORT EEのログファイルを確認して対処してください。また,SORT EEコマンドがエラーとなった場合は,分割ファイルの格納先ディレクトリは,自動分散用のグリッドジョブ前処理プログラムのスクリプトによって,分割ファイル格納ディレクトリの削除コマンドを実行して削除することを推奨します。

指定した分割数が入力ファイルのレコード数より少ない場合は,指定した分割数よりも少ないファイル数に分割されます。例えば,100レコードの入力ファイルに対して分割数を120と指定した場合,分割後のファイル数は100となります。

分割したファイルは,DISTRIBUTE_DIRパラメータで設定した分割ファイル格納ディレクトリに保存されます。このとき,ファイル名は,データ配置情報のデータ識別子として使用できるよう,「グリッドプロパティ識別子+SORT EEが付与する8桁の追番」となります。

データ分割処理で使用するSORT EEコマンドのパラメータを次の表に示します。

表A‒2 データ分割処理で使用するSORT EEコマンドのパラメータ

コマンド名

パラメータ

オペランド

指定値

説明

exsort64

-function

copy

コピー処理を使用します。

-splitfile

fileno

${UGPSM_DIVCNT}

分割するファイル数を指定します。uGPS - Viewの[自動分散定義]ダイアログボックスで指定した分割数を設定します。

指定値

2〜99999の範囲の,10進数で指定します。

注意事項
  • 分割後のファイルサイズが入力ファイルのレコード長より小さい場合,指定したファイル数よりも少ないファイル数が作成されます。

  • 行単位で分割されます。

method

filesize

分割基準として,入力ファイルのファイルサイズを使用します。

-splitinp

fileorg

C

入力ファイルのファイル編成として,CSVファイルを使用します。ただし,テキストファイルも使用できます。

file

${UGPSM_DIVIN}

入力ファイル名を指定する。uGPS - Viewの[自動分散定義]ダイアログボックスで指定した入力ファイル名を設定します。

-splitout

prefix

${UGPSM_DDIR}/${UGPSM_GRIDPROPID}/IN/${UGPSM_GRIDPROPID}

分割後の出力ファイルおよび出力ファイル名の接頭字を格納するディレクトリ名を指定します。DISTRIBUTE_DIRパラメータで指定したパス名に,「/${UGPSM_GRIDPROPID}/IN/${UGPSM_GRIDPROPID}」を追加した値を設定します。

-splittmpdir

${UGPSM_SDIR}

ファイル分割用一時ファイルのディレクトリを指定します。SORT_TMPDIRパラメータで指定した値を設定します。

(凡例)−:該当しません。

注※ 生成されるファイル名は,「グリッドプロパティ識別子_8桁の固定長の数字」となります。ファイル名をデータ識別子に使用するため,グリッドプロパティ識別子を接頭字として使用します。

データ分割処理で使用する,SORT EEの環境変数を次の表に示します。

表A‒3 データ分割処理で使用するSORT EEの環境変数

環境変数名

対応するコマンドのパラメータ

説明

対応

EXSORT64MSGOPT

コマンド実行時のメッセージ抑止オプションを指定します。

「8」を設定します。

EXSORT64MGTOPT

-cmdopt NOLOCK

チェック機能の緩和に関するオプションを指定します。

SORT,SORT EE,COBOL,ISAMプログラムの処理間での,入出力ファイルのオープンモードを指定できます(NOLOCK/EXC)。

無効化します。

EXSORT64SUPPRESSSPLITMSG

ファイル分割終了時,KBLS1010-Iメッセージの出力を抑止します。

「YES」を設定します。

EXSORT64NOCREATEZEROFILE

ファイル分割後の出力ファイルに格納するレコード件数が0件の場合,出力ファイルの作成を抑止します。

無効化します。

EXSORT64FILESPLITNUMB

ファイル分割時,出力ファイル名に付加する追番の桁数を指定します。

無効化します。

EXSORT64SPLITTMPDIR

-splittmpdir

ファイル分割用一時ファイルのディレクトリを指定します。

無効化します。

EXSORT64SPLITTMPIOSIZE

-iosize splittmpiosize

ファイル分割用一時ファイルに対する1回のI/Oサイズを指定します。

無効化します。

(凡例)−:該当しません。

注※ コマンド実行時のメッセージ抑止オプションの設定値と意味を次の表に示します。

設定値

意味

2

メッセージを出力しない

3

EXSORT64MGTOPTで指定したファイルに全メッセージを出力する

4

EXSORT64MGTOPTで指定したファイルにエラーメッセージを出力する

7

標準エラー出力に全メッセージを出力する

8

標準エラー出力にエラーメッセージを出力する

9

標準出力に全メッセージを出力する

10

標準出力にエラーメッセージを出力する

11

標準出力に正常終了メッセージを出力する

13

EXSORT64MGTOPTで指定したファイルに正常終了メッセージを出力する

15

標準エラー出力に正常終了メッセージを出力する

16

標準出力に正常終了メッセージ,標準エラー出力にエラーメッセージを出力する

(3) データ配置情報の生成

SORT EEコマンドで分割したファイルの一覧を取得し,データ配置情報を生成します。デフォルトのスクリプト(グリッドジョブ前処理プログラム)を使用したデータ配置情報の生成処理の概要を次の図に示します。

図A‒2 グリッドジョブ前処理プログラムを使用したデータ配置情報の生成処理の概要

[図データ]

図に従い,データ配置情報の生成処理を説明します。

GUIで設定した自動分散の定義

実行ノード名:node1,node2

データ識別子は分割ファイル名となり,分割したファイルを格納したパスの一部(DISTRIBUTE_DIR パラメータの指定値/グリッドプロパティ識別子)がデータ識別情報となります。この分割ファイルにアクセスする場合は,${UGPSM_DATAINFO}/IN/${UGPSM_DATAID}と指定します。

実行ノードは,GUIで設定した実行ノード名(ここではnode1,node2),または設定ファイル(ugpsm.conf)のNODE_GROUPパラメータの設定値が,実行ノードグループとして設定されます。両方に値が設定されている場合は,GUIで設定した実行ノード名が優先されます。

データ配置情報に設定する項目について次の表に示します。

表A‒4 データ配置情報に設定する項目

項目

指定値

説明

フォーマット識別子

FORMATID=0101

0101を設定します。なお,0102を指定した場合,フォーマット識別子不正のエラーになります。

データ識別子

分割した入力ファイル名

「グリッドプロパティ識別子_8桁の固定長の数字」を設定します。

実行ノード名

*

実行ノードグループを設定します。

データ識別情報

${UGPSM_DDIR}/${UGPSM_GRIDPROPID}

グリッドプロパティ識別子ごとの分割ファイルを格納する作業用ディレクトリを設定します。DISTRIBUTE_DIRパラメータで指定したパス名/グリッドプロパティ識別子が設定されます。

実行ノードグループ

${UGPSM_NODEGRP}

実行ノードグループを設定します。GUIの実行ノード名として設定した値,または設定ファイルのNODE_GROUPパラメータの指定値が設定されます。両方に設定がある場合は,GUIの設定値が優先されます。

(4) デフォルトのスクリプト(グリッドジョブ前処理プログラム)

グリッドジョブ前処理プログラムは,JP1/ASを使用して実行します。uGPS - Managerでは,GUIで指定した自動分散の設定内容を${UGPSM_DIVUAP}環境変数で受け取り,ジョブマネージャデーモンまで渡します。この${UGPSM_DIVUAP}環境変数を使ってグリッドジョブを実行するため,次のジョブ定義スクリプトファイル(gpautogs.ash)を提供します。このスクリプトはJP1/ASが作成する一時ファイルを使用します。そのため,JP1/AS以外の/bin/shなどでは動作しません。また,uGPS - ManagerがWindows環境の場合は,PATH環境変数にSORT EEやJP1/ASのパス名を登録しておく必要があります。

uGPS - Viewが提供するデフォルトのグリッドジョブ前処理プログラムのメイン処理を次に示します。処理内の(n)は行番号を意味します。

このスクリプトを次に示すコマンドで実行することで,JP1/ASの標準エラー出力をSORT_TMPDIRパラメータ指定値/グリッドプロパティ識別子_1に,各コマンドの標準エラー出力をSORT_TMPDIRパラメータ指定値/グリッドプロパティ識別子_2に出力します。これらのファイルは,スクリプトが正常終了すれば削除され,エラー終了すれば削除されないで残ります。そのため,定期的にファイルを削除する運用を推奨します。

コマンドの実行例
  • uGPS - ManagerがLinuxまたはAIX環境の場合

    /opt/jp1as/bin/adshexec /opt/hitachi/ugpsm/bin/gpautogs.ash 2>> ${UGPSM_SDIR}/${UGPSM_GRIDPROPID}_1

  • uGPS - ManagerがWindows環境の場合

    <JP1/ASのインストール先ディレクトリ>\bin\adshexec <uGPS - Managerのインストール先ディレクトリ>\\bin\\gpautogs.ash 2>> ${UGPSM_SDIR}\\${UGPSM_GRIDPROPID}_1

このスクリプトをカスタマイズする場合のポイントを次の表に示します。

表A‒5 グリッドジョブ前処理プログラムをカスタマイズする場合のポイント

行番号

処理内容

カスタマイズのポイント

1

JP1/ASジョブ名の宣言

2

JP1/ASを常に正常終了するコマンドの定義

スクリプト実行時に未定義のSORT EE環境変数を無効化する際に,コマンドをエラー扱いにしないために必ず「unset」を定義します。ほかにも正常終了させたいコマンドを使う場合に追加します。

3〜9

SORT EE環境変数の設定

カスタマイズ不要ですが,使用したい機能などがある場合は,マニュアル「ソートマージ SORT Version9,SORT Version9 - Extended Edition」を参照してカスタマイズしてください。

11,12

JP1/AS一時エラーファイルの割り当て

カスタマイズ不要ですが,一時エラーファイルの出力先を変更したい場合は,カスタマイズしてもかまいません。

uGPS - ManagerがWindows環境の場合は,${UGPSM_SDIR}は設定ファイルのSORT_TMPDIRパラメータの設定値を指定する必要があります。また,パス名の区切り文字として「\\\\」を指定する必要があります。UNC形式の場合,先頭は「\\\\\\\\」と指定してください。

14,35

JP1/ASジョブステップの宣言

16

分割ファイル格納ディレクトリの作成

19〜24

SORT EEファイル分割

SORT EEは,分割数で指定した複数の出力ファイルを同時にオープンします。そのため,分割数に大きな値を指定した場合,OSで設定したプロセスごとのファイルディスクリプタ数を超えてエラーになることがあります。この場合は,コマンドオプションに「-cmdopt SEQOPNCLS」を追加して,ファイル逐次OPEN/CLOSE機能を有効にしてください。また,キー分割など高度な使い方をしたい場合は,マニュアル「ソートマージ SORT Version9,SORT Version9 - Extended Edition」を参照してカスタマイズしてください。

uGPS - ManagerがWindows環境の場合は,${UGPSM_DDIR}は設定ファイルのDISTRIBUTE_DIRパラメータの設定値を指定する必要があります。また,パス名の区切り文字として「\\\\」を指定する必要があります。UNC形式の場合,先頭は「\\\\\\\\」と指定してください。

27〜29

データ配置情報の生成

uGPS - ManagerがWindows環境の場合は,${UGPSM_DDIR}は設定ファイルのDISTRIBUTE_DIRパラメータの設定値を指定する必要があります。また,lsコマンドで指定するパス名の区切り文字として「\\\\」,sedコマンドで指定するパス名の区切り文字として「\\\\\\\\」を指定する必要があります。UNC形式の場合,先頭はそれぞれlsコマンドでは「\\\\\\\\」,sedコマンドでは「\\\\\\\\\\\\\\\\」と指定してください。

31〜34

エラー時の後処理

(凡例)−:カスタマイズは不要です。