一般
什麼是 Dataproc?
Dataproc 是一項快速、易用且費用低廉的全代管服務,可讓您在 Google Cloud Platform 上執行 Apache Spark 和 Apache Hadoop 生態系統。Dataproc 能夠快速地佈建任何大型或小型叢集,支援多種常用的工作類型,並且整合其他 Google Cloud Platform 服務 (如 Cloud Storage 和 Cloud Logging),可有效降低您的總持有成本。
Dataproc 與傳統 Hadoop 叢集有何不同?
Dataproc 是一項代管 Spark/Hadoop 服務,目的是讓 Spark 和 Hadoop 變得更簡易、快速及強大。在傳統的 Hadoop 部署中,即使部署是以雲端為基礎,您仍必須在叢集上進行安裝、設定、管理和自動化調度管理等工作。相反地,Dataproc 可為您包辦叢集建立、管理、監控和工作自動化調度管理等一切事宜。
如何使用 Dataproc?
您可以根據需求和功能,透過多種方式使用 Dataproc 叢集。您可以透過以瀏覽器為基礎的Google Cloud console 與 Dataproc 互動。另外,由於 Dataproc 已和 Google Cloud CLI 整合,所以您也可以透過 Google Cloud CLI 來使用。如要以程式方式存取叢集,請使用 Dataproc REST API。另外還可以與叢集中的主要節點或工作站節點進行 SSH 連線。
Dataproc 的運作方式
Dataproc 是一個在 Google Cloud Platform 上執行的代管架構,整合了包括 Apache Hadoop、Spark、Hive 和 Pig 等幾種常見的資料處理工具。Dataproc 具有一系列控管及整合機制,可統籌叢集的生命週期、管理和協調作業。Dataproc 整合了 YARN 應用程式管理員,可讓您更輕鬆地管理及使用叢集。
可以執行哪些類型的工作?
Dataproc 為許多最常見的工作類型 (包括 Spark、Spark SQL、PySpark、MapReduce、Hive 和 Pig 工作) 提供現成的端對端支援。
Dataproc 透過哪種叢集管理員來執行 Spark 工作?
Dataproc 在 YARN 上執行 Spark。
Dataproc 中的元件更新頻率如何?
每當基礎元件 (Hadoop、Spark、Hive、Pig) 發行主要版本時,Dataproc 就會更新。每個主要的 Dataproc 版本都會支援特定版本的元件 (請參閱「支援的 Dataproc 版本」)。
Dataproc 是否與其他 Google Cloud Platform 產品整合在一起?
是的,Dataproc 已自動與 Compute Engine、Cloud Storage、Bigtable、BigQuery、Logging 和 Cloud Monitoring 等產品原生整合在一起。此外,Dataproc 也已整合至與 Cloud Platform 互動的工具中,包括 gcloud CLI 和 Google Cloud console。
可以執行永久叢集嗎?
啟動後,Dataproc 叢集就會持續運作,直到您關閉為止。您可以依照需求持續執行 Dataproc 叢集,多久都可以。
叢集管理
可以一次執行多個叢集嗎?
可以,您可以同時為每個專案執行多個 Dataproc 叢集。根據預設,所有專案都有其 Google Cloud 資源配額限制。您可以輕鬆查看配額用量,並要求增加配額。詳情請參閱「Dataproc 資源配額」。
如何建立或刪除叢集?
您可以用幾種方法建立及刪除叢集。您可以使用 Google Cloud console 中的 Dataproc 部分,透過瀏覽器輕鬆管理叢集。另外還可以透過 gcloud CLI 使用指令列來管理叢集。對於較複雜或進階的應用情況,您可以使用 Cloud Dataproc REST API 以程式方式管理叢集。
可以在建立叢集時套用自訂設定嗎?
Dataproc 支援在建立叢集時執行的初始化動作。這些初始化動作可以是 Dataproc 在佈建叢集時為了自訂設定、安裝應用程式或對叢集進行其他修改而執行的指令碼或執行檔。
如何按照需求調整叢集大小?
您可能會因為要執行的工作類型、成本限制、速度要求和資源配額等因素而需要調整叢集大小。由於 Dataproc 可以部署在各種機器類型上,因此您可以按照需求靈活選擇要使用的資源。
可以重新調整叢集的大小嗎?
可以,您可以輕鬆調整叢集大小,即使在工作處理期間也不例外。您可以透過 Google Cloud console 或指令列來重新調整叢集的大小。調整作業會增加或減少叢集中的工作站數量。新增至叢集的工作站,其類型和大小都會與現有的工作站相同。除了特殊的情況例如將工作站數量減少到一個,或將 HDFS 容量減少到低於完成工作所需的量之外,一般來說都能接受及支援重新調整叢集大小。
工作和工作流程管理
如何在叢集上提交工作?
您可以在 Dataproc 叢集上透過多種方式提交工作。最簡單的方法是使用 Google Cloud 主控台上的 Dataproc 「Submit a job」(提交工作) 頁面,或使用 gcloud CLI gcloud dataproc jobs submit 指令。如要透過程式提交工作,請參閱 Dataproc API 參考資料。
可以一次執行多個工作嗎?
可以,您可以在 Dataproc 叢集上一次執行多個工作。Cloud Dataproc 利用資源管理員 (YARN) 和應用程式特定設定 (例如 Spark 的資源調度),最佳化叢集上的資源使用。工作效能將隨著叢集大小和執行中的工作數量而變化。
可以取消叢集上的工作嗎?
當然可以。您可以透過 Google Cloud console網頁介面或指令列取消工作。Dataproc 會利用 YARN 應用程式取消功能,因應要求停止工作。
可以在叢集上自動化執行工作嗎?
您可以透過幾種方法在叢集上自動化執行工作。您可以使用 gcloud CLI Google Cloud CLI 或 Dataproc REST API,自動管理叢集和工作,以及自動執行工作流程。
開發
支援哪些開發語言?
您可以使用 Spark/Hadoop 生態系統支援的語言,包括 Java、Scala、Python 和 R。
Dataproc 是否有 API?
是,Dataproc 有一套可讓您以程式方式與叢集和工作進行互動的 RESTful API。
可以透過 SSH 連線至叢集嗎?
可以,您可以透過 SSH 連線至叢集中的每一台機器 (主要節點或工作站節點)。您可以使用瀏覽器或指令列進行 SSH 連線。
可以存取 Spark/Hadoop 網路 UI 嗎?
可以,您可以在叢集中存取 Hadoop 和 Spark UI (Spark、Hadoop、YARN UI)。相較於為 UI 開啟的通訊埠,我們比較建議使用能夠將來自叢集的流量安全地透過 SSH 連線轉送的 SSH 通道。
可以在叢集上安裝或管理軟體嗎?
可以,正如您可以在 Hadoop 叢集或伺服器上安裝及管理軟體,您也可以對 Dataproc 叢集執行這兩項作業。
預設的複寫因數是多少?
基於效能考量及 Dataproc 叢集附加儲存空間的高可靠性,預設的複寫因數為 2。
Dataproc 使用什麼作業系統 (OS)?
Dataproc 是以 Debian 和 Ubuntu 為基礎的服務。最新版映像檔是以 Debian 10 Buster 和 Ubuntu 18.04 LTS 為基礎。
我可以在哪裡瞭解 Hadoop 串流的資訊?
您可以參閱 Apache 專案說明文件。
如何安裝 gcloud dataproc 指令?
安裝 gcloud CLI 時,標準 gcloud
指令列工具也會一起安裝,包括 gcloud dataproc
指令。
資料存取權和可用性
如何將資料移入或移出叢集?
Dataproc 會使用 Hadoop 分散式檔案系統 (HDFS) 進行儲存作業。 此外,Dataproc 會自動安裝與 HDFS 相容的 Google Cloud Storage 連接器,讓 Cloud Storage 能夠與 HDFS 並行使用。您可以透過 HDFS 或 Cloud Storage 的資料上傳/下載作業,將資料移入或移出叢集。
可以一起使用 Cloud Storage 與 Dataproc 嗎?
可以,Dataproc 叢集會自動安裝 Cloud Storage 連接器。與傳統 HDFS 相比,選用 Cloud Storage 有許多好處,包括資料永續性、可靠性和效能上的優勢。
我可以獲得 Cloud Storage 連接器的支援嗎?
可以,當您搭配 Dataproc 使用時,Cloud Storage 連接器可獲得與 Dataproc 同等級的支援 (請參閱「取得支援」)。所有連接器使用者都可以在 Stack Overflow 上使用 google-cloud-dataproc
標記提出問題和尋找解答。
HDFS 和 Cloud Storage 中資料集的理想檔案大小是多少?
為提升效能,請儲存較大的檔案,例如 256 MB 至 512 MB 範圍內的檔案。
Dataproc 有多可靠?
由於 Dataproc 是以可靠且經過檢驗的 Google Cloud Platform 技術 (包括 Compute Engine、Cloud Storage 和 Monitoring) 建構的服務,因此具有高度的可用性及可靠性。這項產品已全面開放使用,相關資訊已於 Dataproc 服務水準協議中載明,歡迎查閱。
叢集關閉時,資料會受到什麼影響?
叢集關閉後,Cloud Storage 中的所有資料都會保留下來。這也是為何要選擇 Cloud Storage 而不用 HDFS 的原因之一,因為 HDFS 資料會在叢集關閉後遭到移除 (除非在關閉前將資料轉移到可永久存放的位置)。
記錄、監控與除錯
有哪些記錄和監控服務可以使用?
根據預設,Dataproc 叢集會整合 Monitoring 和 Logging。Monitoring 和 Logging 可讓您輕鬆取得有關 Dataproc 叢集的詳細健康、效能和狀態資訊。兩個應用程式 (YARN、Spark 等) 和系統記錄都會轉送至 Logging。
如何查看 Dataproc 的記錄?
您可以透過幾種方式查看 Dataproc 記錄。您可以造訪 Logging 並在網路瀏覽器中查看匯總叢集記錄。此外,您也可以使用指令列 (SSH) 手動查看記錄或監控應用程式輸出。最後,Hadoop 應用程式網路 UI (如 YARN 網路介面) 也會提供這類詳細資料。
如何監控叢集?
透過 Monitoring 或 Google Cloud console的 Cloud Dataproc 部分即可輕鬆監控叢集。您也可以透過指令列 (SSH) 存取或應用程式 (Spark、YARN 等) 網路介面來監控叢集。
安全性與存取權
如何保障資料安全?
Google Cloud Platform 採用多樣化的安全防護模式,這些模式也適用於 Cloud Dataproc。Dataproc 提供驗證、授權和加密機制 (如安全資料傳輸層 (SSL)) 來保障資料的安全性。使用者可以在叢集建立或工作提交時,對往返叢集的傳輸資料進行加密。
如何控管 Dataproc 叢集的存取權?
Google Cloud Platform 提供驗證機制,您可將其與 Dataproc 一同使用。您可以在專案層級授予使用者存取 Dataproc 叢集和工作的權限。
帳單
Dataproc 的計費方式為何?
Dataproc 會依據叢集的大小和叢集運作的時間長度,以秒計費。在叢集元件的費用計算方面,Dataproc 會按照叢集中虛擬 CPU (vCPU) 的數量收取固定費用。此固定費用都是一樣的,不會因使用的 Compute Engine 資源機器類型或大小而有不同。
我需要支付其他 Google Cloud 資源的費用嗎?
需要,Dataproc 叢集在運作時,也會使用到其他的 Google Cloud 資源 (如 Compute Engine 和 Cloud Storage),因而衍生相關費用。帳單中會單獨列出每個項目的費用,讓您確切瞭解成本的計算及分配方式。
是否有任何計費時間下限或上限?
Google Cloud 是以秒計費,而非以小時計費。目前,Compute Engine 以 1 分鐘為最低計費單位。因此,Dataproc 也同樣以 1 分鐘為最低計費單位。
可用性
誰可以建立 Dataproc 叢集?
Dataproc 已全面開放使用,也就是說所有 Google Cloud Platform 的客戶都可以使用。
Dataproc 可以在哪些地區使用?
Dataproc 在 Google Cloud Platform 的所有地區和區域都可以使用。