SDKハーネスの設定
Beamでは、さまざまなクラスタ設定に対応するために、SDKハーネスの設定が可能です。(以下のオプションはPython用ですが、この情報の多くはJavaおよびGo SDKにも適用されます。)
environment_type
は、ユーザーコードがどこで実行されるかを決定します。environment_config
は、environment_type
の値に応じて環境を設定します。DOCKER
(デフォルト):ユーザーコードは、各ワーカーノードで起動されたコンテナ内で実行されます。そのためには、ワーカーノードにDockerがインストールされている必要があります。PROCESS
:ユーザーコードは、ランナーによって各ワーカーノードで自動的に起動されるプロセスによって実行されます。environment_config
:{"os": "<OS>", "arch": "<アーキテクチャ>", "command": "<実行するプロセス>", "env":{"<環境変数1>": "<ENV_VAL>"} }
形式のJSON。JSONのすべてのフィールドは、command
を除いてオプションです。command
には、ブートローダー実行ファイルを使用することをお勧めします。これは、ソースから./gradlew :sdks:python:container:build
でビルドし、sdks/python/container/build/target/launcher/linux_amd64/boot
からワーカーマシンにコピーできます。Pythonブートローダーは、Pythonとapache_beam
モジュールが各ワーカーマシンにインストールされていることを前提としていることに注意してください。
EXTERNAL
:ユーザーコードは外部サービスにディスパッチされます。たとえば、docker run -p=50000:50000 apache/beam_python3.6_sdk --worker_pool
を実行することで、Pythonワーカーの外部サービスを起動できます。environment_config
:外部サービスのアドレス。例:localhost:50000
。- MacまたはWindowsクライアントからDocker化されたワーカープールサービスにアクセスするには、クライアントで
BEAM_WORKER_POOL_IN_DOCKER_VM
環境変数を設定します。export BEAM_WORKER_POOL_IN_DOCKER_VM=1
。
LOOPBACK
:ユーザーコードは、パイプラインを送信したのと同じプロセス内で実行されます。このオプションは、ローカルテストに役立ちます。ただし、ジョブが開始されたマシンで作業を実行するため、本番環境には適していません。environment_config
は、LOOPBACK
環境では使用されません。
sdk_worker_parallelism
は、各ワーカーノードで実行される SDK ワーカーの数を設定します。デフォルトは 1 です。0 の場合、ワーカーマシンの CPU コア数など、さまざまなパラメータを調べてランナーによって値が自動的に設定されます。Flink および Spark ランナーの Python パイプラインにのみ使用されます。
最終更新日:2024/10/31
お探しのものはすべて見つかりましたか?
すべて役に立ち、明確でしたか?変更したいことはありますか?お知らせください!