SDK 執行緒配置
Beam 允許配置 SDK 執行緒,以適應不同的叢集設定。(以下選項適用於 Python,但大部分資訊也應適用於 Java 和 Go SDK。)
environment_type
決定使用者程式碼的執行位置。environment_config
根據environment_type
的值配置環境。DOCKER
(預設):使用者程式碼會在每個工作節點上啟動的容器內執行。這需要在工作節點上安裝 Docker。PROCESS
:使用者程式碼由執行器在每個工作節點上自動啟動的進程執行。environment_config
:JSON 格式為{"os": "<OS>", "arch": "<ARCHITECTURE>", "command": "<要執行的進程>", "env":{"<環境變數 1>": "<ENV_VAL>"} }
。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
您是否找到了您要找的所有內容?
所有內容都有用且清晰嗎?您想更改任何內容嗎?請告訴我們!