本文將討論 Dataproc 最佳做法,協助您在實際工作環境的 Dataproc 叢集上,執行可靠、有效率且深入的資料處理工作。
指定叢集映像檔版本
Dataproc 會使用映像檔版本,將作業系統、大數據元件和 Google Cloud 連接器整合成一個可於叢集部署的套件。如果您在建立叢集時未指定映像檔版本,Dataproc 預設會使用最新的穩定版映像檔版本。
在正式環境中,請將叢集與特定 major.minor
Dataproc 映像檔版本建立關聯,如下列 gcloud CLI 指令所示。
gcloud dataproc clusters create CLUSTER_NAME \ --region=region \ --image-version=2.0
Dataproc 會將 major.minor
版本解析為最新的副次要版本 (2.0
會解析為 2.0.x
)。注意:如需依賴特定副次要版本來建立叢集,可以指定該版本,例如 --image-version=2.0.x
。詳情請參閱「版本管理的運作方式」。
Dataproc 預先發布版映像檔版本
Dataproc 映像檔的新次要版本會在標準次要映像檔版本軌中發布,但您可以在發布前透過 preview
版本使用。在實際工作環境中採用標準次要映像檔版本之前,請先使用預先發布版映像檔,針對新的次要映像檔版本測試及驗證工作。詳情請參閱「Dataproc 版本管理」。
視需要使用自訂圖片
如果需要將依附元件新增至叢集 (例如原生 Python 程式庫,或是安全性強化或防毒軟體),請從目標次要映像檔版本軌中的最新映像檔建立自訂映像檔。這樣一來,您就能在使用自訂映像檔建立叢集時,滿足依附元件需求。如要重建自訂映像檔來更新依附元件需求,請使用次要映像檔軌中最新可用的次要映像檔版本。
將工作提交至 Dataproc 服務
使用 gcloud CLI 或 Google Cloud 控制台,透過 jobs.submit 呼叫將工作提交至 Dataproc 服務。授予 Dataproc 角色,設定工作和叢集權限。使用自訂角色將叢集存取權與工作提交權限分開。
將工作提交至 Dataproc 服務的優點:
- 不需要複雜的網路設定,API 適用範圍廣泛
- 輕鬆管理 IAM 權限和角色
- 輕鬆追蹤工作狀態,不必使用 Dataproc 工作中繼資料,以免結果過於複雜。
在實際工作環境中,請以固定的次要映像檔版本 (例如 --image-version=2.0
),執行只依附於叢集層級依附元件的工作。提交工作時,請將依附元件與工作一併封裝。將 uber JAR 提交至 Spark 或 MapReduce,是常見的做法。
- 範例:如果工作 JAR 檔案依附於
args4j
和spark-sql
,其中args4j
專屬於工作,而spark-sql
是叢集層級的依附元件,請將args4j
併入工作的大型 JAR 檔案。
控管初始化動作位置
初始化動作可讓您在建立 Dataproc 叢集時,自動執行指令碼或安裝元件 (如需常見的 Dataproc 初始化動作,請參閱 dataproc-initialization-actions GitHub 存放區)。在正式環境中使用叢集初始化動作時,請將初始化指令碼複製到 Cloud Storage,而不是從公開存放區取得。這麼做可避免執行會遭他人修改的初始化指令碼。
監控 Dataproc 版本資訊
Dataproc 會定期發布新的次要子版本映像檔。查看或訂閱 Dataproc 版本資訊,掌握最新 Dataproc 映像檔版本發布情形,以及其他公告、異動和修正。
查看暫存 bucket,調查失敗原因
查看叢集的暫存值區,調查叢集和工作錯誤訊息。通常錯誤訊息會顯示暫存值區的 Cloud Storage 位置,如下列範例錯誤訊息中的粗體文字所示:
ERROR: (gcloud.dataproc.clusters.create) Operation ... failed: ... - Initialization action failed. Failed action ... see output in: gs://dataproc-<BUCKETID>-us-central1/google-cloud-dataproc-metainfo/CLUSTERID/<CLUSTER_ID>\dataproc-initialization-script-0_output
使用 gcloud CLI 查看暫存 bucket 內容:
輸出範例:gcloud storage cat gs://STAGING_BUCKET
+ readonly RANGER_VERSION=1.2.0 ... Ranger admin password not set. Please use metadata flag - default-password
取得支援
Google Cloud 支援您的實際工作 OSS 負載,並透過支援層級協助您達成業務服務水準協議。此外, Google Cloud 顧問服務可為團隊的生產部署提供最佳做法指引。
瞭解詳情
請參閱 Google Cloud 這篇網誌文章,瞭解 Dataproc 最佳做法指南。
在 YouTube 上觀看「讓 Dataproc 更加普及」。