一般
什麼是 Dataproc?
Dataproc 是快速、易用且費用低廉的全代管服務,可讓您在 Google Cloud Platform 上執行 Apache Spark 和 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。另外,您也能與叢集中的主要或 worker 節點進行 SSH 連線。
Dataproc 如何運作?
Dataproc 是在 Google Cloud Platform 上執行的代管框架,整合了包括 Apache Hadoop、Spark、Hive 和 Pig 等數種常見的資料處理工具,並具備一系列控管及整合機制,可統籌叢集的生命週期、管理和協調作業。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 或指令列來重新調整大小。調整作業會增減叢集的 worker 數量。新增至叢集的工作站,其類型和大小都會與現有的工作站相同。除了特殊的情況例如將工作站數量減少到一個,或將 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 有一套符合 REST 樣式的 API,您可以透過程式輔助與叢集和工作互動。
可以透過 SSH 連線至叢集嗎?
可以,您可以透過 SSH 連線至叢集中的每一台機器 (主要或 worker 節點)。 SSH 連線可以透過瀏覽器或指令列進行。
我可以存取 Spark/Hadoop 網頁版 UI 嗎?
可以,您可以在叢集中存取 Hadoop 和 Spark UI (Spark、Hadoop、YARN UI)。相較於為 UI 開啟的通訊埠,我們比較建議使用能夠將來自叢集的流量安全地透過 SSH 連線轉送的 SSH 通道。
我可以在叢集上安裝或管理軟體嗎?
可以,您可以在 Dataproc 叢集上安裝和管理軟體,就跟在 Hadoop 叢集/伺服器上一樣。
預設的複製係數是多少?
基於效能考量及 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) 儲存資料,另外也會自動安裝與 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 服務。您可以用這兩項服務輕鬆取得有關 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 所有區域和可用區都能使用。