高速学習-Saturn FAQ

よくある質問

Q:エグゼキューターが起動しない場合はどうすればよいですか?

A:エグゼキューターが起動に失敗します。まず、プロンプトがパラメーターの問題かどうか、ポートが再利用されているかどうかを確認し、そうでない場合は、コンソールでプロンプトされたパスに従ってsaturn-nohup.outのログを確認してください。

日志报「zk接続文字列を検出できません!Saturnコンソールにネームスペースを追加したことを確認してください」の場合:

コンソールがドメインを登録しているかどうかを確認してください。

日志报「ジョブサーバーとレジスタセンターの時間差が[60]秒を超えています」;

これは、マシンの時刻と飼育係の時刻の時間差が大きすぎて、時計を同期させる必要があるためです。

日志报「エグゼキューター名(xx)が実行されています。インスタンスを2回実行することはできません」;

これは通常、スクリプトストップが使用されないためですが、プロセスはkill -9で直接プロセスを強制終了した直後に開始され、20秒の開始を待っても問題ありません。

日志报「スレッド「メイン」の例外java.lang.UnsupportedClassVersionError:com / vip / saturn / job / executor / Main:Unsupported major.minor version 51.0」:

これは通常、jdkバージョンが間違っている(saturnはjdkバージョン1.7および1.8をサポートしています)。

Q:ロードとはどういう意味ですか?目的は何ですか?

** A:** Saturnは負荷を使用して、ジョブフラグメントの均一な分布を決定します。

次に例を示します。

ドメインAには2つのエグゼキューター、e1とe2があります。

新しいジョブjob1を追加します。job1はフラグメントの数を2に、負荷を1に設定します。実行中、e1とe2はそれぞれフラグメントを取得するため、e1の負荷は1、e2の負荷は1です。

別のジョブjob2を追加します。job2はシャードの数を1に設定し、負荷は10です。実行すると、e1はjob2のシャードを取得するため、e1の負荷は1 + 10 = 11になり、e2の負荷は変わりません。

別のジョブjob3を追加し、フラグメントの数を1に設定し、ロードを5に設定します。実行時に、saturnはe2のロードが最小であると判断し、job3のフラグメントを割り当てます。次に、e2の負荷は1 + 5 = 6になり、e1の負荷は11のまま変化しません。

Q:ローカルモードの目的は何ですか?

** A:**ローカルモードジョブのエグゼキューターと同じ数のシャードがあり、各エグゼキューターには1つのシャードしかありません。構成時にローカルモードが最初にチェックされた場合、シャードの数は無効です。Saturnはエグゼキューターの数を決定し、それぞれにシャードを生成します。ローカルモードジョブは、エグゼキューターが追加されると自動的に実行され、エグゼキューターが終了してもフェイルオーバーしません。一般的なシナリオは、ローカルマシンのログファイルを定期的にクリーンアップすることです。これにより、マシンが増加または減少したときに、ジョブ構成を変更する必要がなくなります。

Q:ログファイルが生成されない場合はどうすればよいですか?

A:エグゼキューターの起動ログを確認します(3.0.0より前のバージョンの場合はsaturn-executor.logを確認し、3.0.0より後のバージョンの場合はsaturn-nohup.outを確認してください)。特に、ログバック構成のロード部分が言っていることを確認します。

エグゼキューターのログが出力されない場合は、組み込みのスタートアップメソッドを使用している可能性がありますので、自分でデバッグする必要があります。

エグゼキューターログはあるがビジネスログが出力できない場合、以下の理由が考えられます。

  • ジョブコードが依存するlogback / log4j / slf4jパッケージには、欠落、バージョンの競合などの問題があります。
  • ログ構成に問題があります。
  • 同じlibの下にlog4jとlogbackの両方の実装があります。
  • もっと

おすすめ

転載: blog.csdn.net/weixin_42528266/article/details/108602989