概述
Apache Beam Prism Runner 可用於使用 Beam 可攜性 在本機執行 Beam Pipeline。
Prism 執行器適用於小規模本機測試,並提供:
- 一個靜態編譯的單一二進制檔案,用於簡單部署,無需額外設定。
- 在獨立模式下執行時的網頁 UI。
- Beam 執行語意的直接實作。
- 一個以串流優先的執行時環境,支援批次處理和資料串流程式。
- 快速的記憶體執行,以簡化 SDK、轉換和 Pipeline 開發。
- 跨語言轉換支援。
以 Go 撰寫,它是 Go SDK 的預設執行器,但也可以在其他 SDK 中使用(請參閱下文)。
功能
雖然 Prism 已經支援大量的 Beam 功能,但它還沒有支援所有功能。Prism 正在積極開發中,以彌補這些差距。
除了計時器問題外,使用不支援的功能應在工作提交時使 Pipeline 失敗。
在 2.59.0 版本中,Prism 通過了大多數執行器驗證測試,但使用以下功能的 Pipeline 除外:
OrderedListState、OnWindowExpiry(例如 GroupIntoBatches)、CustomWindows、MergingWindowFns、與 Trigger 和 WindowingStrategy 相關的功能、Bundle Finalization、Lopping Timers,以及一些與 Coder 相關的問題,例如使用 Python combiner 封裝、Java Schema 轉換和異質扁平化 Coder。處理時間計時器尚未提供即時支援。
請參閱路線圖,了解如何查找目前的進度。具體的功能支援資訊將很快遷移到執行器功能矩陣。
使用 Prism Runner
- Go SDK
- Java SDK
- Python SDK
Prism 是 Go SDK 的預設執行器,會自動使用。使用標誌 --runner=PrismRunner
設定執行器。 將執行器設定為 PrismRunner
。 將執行器設定為 PrismRunner
。
對於其他 SDK,Prism 作為 Beam Github Releases 上的資源提供下載和獨立使用。
以下是一些資源,其中包含有關如何測試您的 Pipeline 的資訊。
- 測試您的 Pipeline
- Apache Beam WordCount 逐步解說包含使用斷言記錄和測試 Pipeline 的範例。
- 在 Apache Beam 中測試無邊界 Pipeline討論了使用 Java 類別 PAssert 和 TestStream 來測試您的 Pipeline。
指定您的依賴關係
使用 Java 時,您必須在您的 pom.xml
中指定您對 Direct Runner 的依賴關係。
本節不適用於 Beam SDK for Python。Prism 已內建。 本節不適用於 Beam SDK for Go。Prism 已內建。
除了 Go SDK 之外,Prism 作為 Beam Github Releases 上的資源提供,用於在 SDK 上自動下載、啟動和關閉。該二進制檔案會在本機快取,以供後續執行。
Prism Runner 的 Pipeline 選項
Prism 的目標是盡量減少所需的設定,並且目前不提供使用者 Pipeline 選項。
執行獨立的 Prism
Prism 可以作為獨立的二進制檔案執行,並會提供一個基本 UI,用於列出工作和工作狀態。這是 Prism 的一個可選模式,對於演示或快速迭代很有用。它不是在 Java 或 Python SDK 中使用 Prism 的必要條件。
這可以透過兩種方式完成,從 github 發佈版本下載資源,或使用已安裝的 Go 在本機建置二進制檔案。
無論哪種方式,Prism 都會在本地提供 JobManagement API 端點和網頁 UI。可以使用 --runner=PortableRunner --endpoint=<端點位址>
提交工作,並使用網頁 UI 監控工作。
Prism 二進制檔案的範例輸出
2024/09/30 09:56:42 INFO Serving JobManagement endpoint=localhost:8073
2024/09/30 09:56:42 INFO Serving WebUI endpoint=https://127.0.0.1:8074
該二進制檔案具有以下可選標誌:
--job_port
設定工作管理伺服器的連接埠(預設為 8073)--web_port
設定網頁 UI 的連接埠(預設為 8074)--serve_http
啟用或停用網頁 UI(預設為 true)---idle_shutdown_timeout
設定 Prism 在自動關閉自身之前等待新工作的持續時間。使用類似10s
、5m
、2h
的持續時間格式。預設為不關閉。
下載發佈的資源
此方法不需要安裝其他依賴關係或執行時環境。如果您想要在其他機器上部署 Prism,建議使用此方法。
導覽至最新的 Beam 發佈 Github 頁面,捲動到底部,並下載您想要執行 Prism 的正確資源。
例如,如果您想要在較新的 MacBook 上執行 Prism,您會下載 darwin-arm64
資源。對於在許多雲端機器上執行,您會下載 linux-amd64
資源。
這需要為 Prism 將在其上執行的機器下載正確的資源,例如您的開發機器。
只需解壓縮並執行即可。
使用 Go 從發佈版本建置。
此方法需要安裝最新版本的 Go。如果您只想在本機執行 Prism,建議使用此方法。
您可以使用 go install
安裝 Prism
go install github.com/apache/beam/sdks/v2/go/cmd/prism@latest
prism
或者直接使用 go run
建置並立即執行該二進制檔案
go run github.com/apache/beam/sdks/v2/go/cmd/prism@latest
上次更新時間:2024/10/31
您是否找到了您要找的所有內容?
所有內容都實用且清楚嗎?是否有任何您想要變更的內容?請告訴我們!