すべてのプロダクト
Search
ドキュメントセンター

Batch Compute:コンソール クイックスタート

最終更新日:Dec 28, 2024

このセクションでは、コンソールを使用してジョブを送信する方法について説明します。ジョブの目的は、ログファイルに INFO、WARN、ERROR、および DEBUG が出現する回数をカウントすることです。

説明

事前に Batch Compute サービスにサインアップしていることを確認してください。

内容:

  1. ジョブを準備します。

    1.1. データファイルを OSS にアップロードします。

    1.2. タスクプログラムを OSS にアップロードします。

  2. コンソールを使用してジョブを送信します。

  3. ジョブステータスを確認します。

  4. 結果を確認します。

1. ジョブを準備する

ジョブの目的は、ログファイルに INFOWARNERROR、および DEBUG が出現する回数をカウントすることです。

このジョブには、次のタスクが含まれています。

  • 分割タスクは、ログファイルを3つの部分に分割するために使用されます。

  • カウントタスクは、ログファイルの各部分に INFOWARNERROR、および DEBUG が出現する回数をカウントするために使用されます。カウントタスクでは、InstanceCount を 3 に設定する必要があります。これは、3 つのカウントタスクが同時に開始されることを示します。

  • マージタスクは、すべてのカウント結果をマージするために使用されます。

DAG:

DAG

1.1 データファイルを OSS にアップロードする

この例で使用されるデータファイルをダウンロードします: log-count-data.txt

log-count-data.txt ファイルを次の場所にアップロードします:

oss://your-bucket/log-count/log-count-data.txt

1.2 タスクプログラムを OSS にアップロードする

この例で使用されるジョブプログラムは、Python を使用してコンパイルされています。プログラム log-count.tar.gz をダウンロードします。

この例では、サンプルコードを変更する必要はありません。 log-count.tar.gz を OSS に直接アップロードできます。例:

説明

oss://your-bucket/log-count/log-count.tar.gz.

アップロード方法は既に説明しました。

  • Batch Compute は、拡張子が tar.gz の圧縮パッケージのみをサポートしています。必ず上記の方法 (gzip) を使用してパッケージ化してください。そうしないと、パッケージを解析できません。

  • コードを変更する必要がある場合は、ファイルを解凍し、コードを変更してから、次の手順に従って変更されたコードをパックします。

コマンドは次のとおりです。

> cd log-count  # ディレクトリに切り替えます。
> tar -czf log-count.tar.gz * # このディレクトリ以下のすべてのファイルを log-count.tar.gz にパックします。

次のコマンドを実行して、圧縮パッケージの内容を確認できます。

$ tar -tvf log-count.tar.gz

次のリストが表示されます。

conf.py
count.py
merge.py
split.py

2. コンソールを使用してジョブを送信する

  1. Batch Compute コンソール にログオンします。

  2. ジョブリスト > ジョブの送信 を選択し、ジョブを送信します。適切なリージョンを選択してください。これは、バケットのリージョンと同じである必要があります。

    ここでは、AutoCluster を使用してジョブを送信します。 AutoCluster の場合は、少なくとも 2 つのパラメーターを設定する必要があります。これには以下が含まれます。

    • 使用可能なイメージ ID。システムが提供するイメージを使用するか、イメージをカスタマイズできます。イメージをカスタマイズする方法の詳細については、イメージの使用 を参照してください。

    • InstanceType。インスタンスタイプの詳細については、現在サポートされているインスタンスタイプ を参照してください。

    この例を実行するには、PackagePath (ジョブがパックされてアップロードされる OSS ディレクトリ。この例では oss://your-bucket/log-count/log-count.tar.gz です)、

    StdoutRedirectPath、および StderrRedirectPath (タスクの結果とエラーの出力アドレス) を対応する OSS ディレクトリ (oss://your-bucket/log-count/logs/) に変更する必要もあります。

    以下は、ジョブの JSON テンプレートです。パラメーターの詳細については、ここをクリック してください。

     {
       "DAG": {
         "Dependencies": {
           "split": [
             "count"
           ],
           "count": [
             "merge"
           ],
           "merge": []
         },
         "Tasks": {
           "split": {
             "InstanceCount": 1,
             "LogMapping": {},
             "AutoCluster": {
               "Configs": {
                 "Networks": {
                   "VPC": {
                     "CidrBlock": "192.168.0.0/16"
                   }
                 }
               },
               "ResourceType": "OnDemand",
               "InstanceType": "ecs.sn1ne.large",
               "ImageId": "img-ubuntu-vpc"
             },
             "Parameters": {
               "Command": {
                 "EnvVars": {},
                 "CommandLine": "python split.py",
                 "PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
               },
               "InputMappingConfig": {
                 "Lock": true
               },
               "StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
               "StderrRedirectPath": "oss://your-bucket/log-count/logs/"
             },
             "InputMapping": {
               "oss://your-bucket/log-count/": "/home/input/"
             },
             "OutputMapping": {
               "/home/output/": "oss://your-bucket/log-count/"
             },
             "MaxRetryCount": 0,
             "Timeout": 21600,
             "ClusterId": ""
           },
           "merge": {
             "InstanceCount": 1,
             "LogMapping": {},
             "AutoCluster": {
               "Configs": {
                 "Networks": {
                   "VPC": {
                     "CidrBlock": "192.168.0.0/16"
                   }
                 }
               },
               "ResourceType": "OnDemand",
               "InstanceType": "ecs.sn1ne.large",
               "ImageId": "img-ubuntu-vpc"
             },
             "Parameters": {
               "Command": {
                 "EnvVars": {},
                 "CommandLine": "python merge.py",
                 "PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
               },
               "InputMappingConfig": {
                 "Lock": true
               },
               "StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
               "StderrRedirectPath": "oss://your-bucket/log-count/logs/"
             },
             "InputMapping": {
               "oss://your-bucket/log-count/": "/home/input/"
             },
             "OutputMapping": {
               "/home/output/": "oss://your-bucket/log-count/"
             },
             "MaxRetryCount": 0,
             "Timeout": 21600,
             "ClusterId": ""
           },
           "count": {
             "InstanceCount": 3,
             "LogMapping": {},
             "AutoCluster": {
               "Configs": {
                 "Networks": {
                   "VPC": {
                     "CidrBlock": "192.168.0.0/16"
                   }
                 }
               },
               "ResourceType": "OnDemand",
               "InstanceType": "ecs.sn1ne.large",
               "ImageId": "img-ubuntu-vpc"
             },
             "Parameters": {
               "Command": {
                 "EnvVars": {},
                 "CommandLine": "python count.py",
                 "PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
               },
               "InputMappingConfig": {
                 "Lock": true
               },
               "StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
               "StderrRedirectPath": "oss://your-bucket/log-count/logs/"
             },
             "InputMapping": {
               "oss://your-bucket/log-count/": "/home/input/"
             },
             "OutputMapping": {
               "/home/output/": "oss://your-bucket/log-count/"
             },
             "MaxRetryCount": 0,
             "Timeout": 21600,
             "ClusterId": ""
           }
         }
       },
       "Description": "batchcompute job",
       "Priority": 0,
       "JobFailOnInstanceFail": true,
       "Type": "DAG",
       "Name": "log-count"
     }
    • すべてのパラメーターとディレクトリが正しいことを確認し、左下隅にある ジョブの送信 をクリックしてから、OK をクリックします。

3. ジョブステータスを確認する

  • ジョブリストで新しく送信されたジョブ log-count をクリックして、このジョブの詳細を表示します。

    Job details

  • タスク名 split をクリックして、このタスクの詳細を表示します。

    task details

  • 緑色のブロックをクリックして、インスタンスログを表示します。

    View the log

4. ジョブの実行結果を確認する

OSS コンソール にログオンし、バケットの下にある次のファイルを確認します: /log-count/merge_result.json.

期待される結果は次のとおりです。

{"INFO": 2460, "WARN": 2448, "DEBUG": 2509, "ERROR": 2583}