Translate

2021年6月30日水曜日

富岳上で実行したジョブの開始・終了・ステータスをSlackで受ける

富岳上でジョブを実行する際に pjsub コマンドを使います。


pjsub には様々なオプションがあるのですが、このなかに指定イベントごとにメールを送信するオプションがあります。


オプションの詳細は man pjsub を参照してください。たくさんあります。



これと SlackアプリのEmailを組み合わせれば、メールではなく直接Slackへのメッセージとして受け取ることができます。

Slack アプリ Email
https://slack.com/apps/A0F81496D-email?tab=more_info
 

Slackアプリサイトにてインストールボタンを押して、どのチャネルへ送信するかを指定すると、送信先メールアドレス(ex. hogehoge@workspace_name.slack.com)を受け取ることができます。

pjsub の引数に -m b,e,s --maillist "hogehoge@workspace_name.slack.com" と指定すればOK。

引数にいちいち指定するのが面倒くさい場合は、ジョブスクリプト上部のPJMオプション指定箇所に、以下のように指定すればOKです。

#!/bin/bash
:
#PJM -m b,e,s
#PJM --mail-list "
hogehoge@workspace_name.slack.com"
#PJM -S
:

-mの後ろがメール送信が発生するイベントを指定しています。ここでは開始、終了、ステータスを指定していますが、ほかのイベントについては man pjsub-m の箇所を読んでください(-Sは、ステータスを表示させるために必要)。

p.s.

実行ジョブ監視にログインノード上で watch pjstat -E している人も多いと思うのですが、おそらく私のネットワーク環境の問題だと思いますが、SSH接続がたまにぷつんと切れてしまうので..メールへ送ってましたが..ジョブスクリプト開発中はやたらめったらpjsubするので、ほぼスパムメール状態に..

 

あと、たくさんの種類のジョブを投げる人はジョブ名をつけたほうがよいとおもいます。

pjコマンドは宣言的な設計になっており、APIもあるのでIPリーチャブルな環境にあるCIサーバ(BLUE WATERのWebinerで紹介していたjenkinsみたいなやつ、スパコンの場合はslumというのがあるそうですが..よく知りません)があれば、CI管理画面上で完結できるので、たぶんそちらが正解なのかもしれませんが..


2021年6月29日火曜日

富岳でホームディレクトリの.sshを削除してしまった件

今回の情報は..役に立つ人がいるのか、わかりませんが、忘備録としてのこしておきます。



スーパーコンピュータ富岳上でいろんなジョブを実行していたのですが、
うっかりそのジョブの中で~/.sshを消してしまいました。

そうするとどうなるかというと..

次にSSH接続するときにエラーになって接続できなくなります。


でヘルプデスクへ問い合わせたところ公開鍵を再登録してくれという返事が..


富岳では、以下の2つの手順をおこないます。
・クライアントPC側のPuTTY Genなどで鍵ペアを作成
・利用者ポータルにて公開鍵登録


すでに鍵ペアは作成済みであるので、2番めの項目のみを実行します。

・クライアントPC側のブラウザから富岳ポータルを開く
・利用者ポータルリンクをふむ
・publickey registration リンクをふむ
・鍵ペア作成時に取得した公開鍵文字列をコピー&ペースト
・Registerボタン押下


これでホームディレクトリの.sshディレクトリ内に公開鍵に関する情報が登録されます。
あとは再度クライアントPCからユーザID、パスフレーズをつかってSSH接続しなおせばOKです。

 

ほかの公開鍵で接続する場合もにたようなポータルサイトのような機能をもつことがおおいので、富岳以外の場合もあせらずまずポータルに公開鍵登録機能がないかしらべてみてください。

AWS Glueジョブ(Python/Spark)にPythonパッケージを追加する方法

 AWS Glueジョブには2つの種類が存在します。 ETLジョブ(Spark) PySparkコードが実行できるジョブ。 最低でも10並列で実行するので、DynamicFrame/DataFrame操作以外の処理はPython Shellジョブを使ったほうがよい。 Python...