<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hive - 東東 GCP 教學 - GCP 實戰講師</title>
	<atom:link href="https://dongdonggcp.com/tag/hive/feed/" rel="self" type="application/rss+xml" />
	<link>https://dongdonggcp.com</link>
	<description>助你考取證照，轉職成功</description>
	<lastBuildDate>Wed, 23 Apr 2025 10:26:22 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://dongdonggcp.com/wp-content/uploads/2025/04/cropped-340838097_121391010914395_5443948698124160121_n-32x32.jpg</url>
	<title>Hive - 東東 GCP 教學 - GCP 實戰講師</title>
	<link>https://dongdonggcp.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">243235092</site>	<item>
		<title>Dataproc 是什麼？四大優勢與使用方法介紹</title>
		<link>https://dongdonggcp.com/2025/04/23/whai-is-dataproc-architecture-and-usage-introduction/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=whai-is-dataproc-architecture-and-usage-introduction</link>
					<comments>https://dongdonggcp.com/2025/04/23/whai-is-dataproc-architecture-and-usage-introduction/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 23 Apr 2025 10:13:24 +0000</pubDate>
				<category><![CDATA[大數據處理和分析]]></category>
		<category><![CDATA[Dataproc]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[HDFS]]></category>
		<category><![CDATA[Hive]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[大數據]]></category>
		<guid isPermaLink="false">https://dongdonggcp.com/?p=10584</guid>

					<description><![CDATA[<p>Dataproc 是 GCP 上的全代管的大數據處理服務，它支援大數據工具如 Apache Spark、Hadoop、Hive 等，不用自行安裝環境。<br />
你可以直接進入 Comman Line 視窗，下達指令來探索和處理資料。你也可以撰寫 Spark 腳本，提交給 Dataproc 自動執行。</p>
<p>The post <a href="https://dongdonggcp.com/2025/04/23/whai-is-dataproc-architecture-and-usage-introduction/">Dataproc 是什麼？四大優勢與使用方法介紹</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></description>
										<content:encoded><![CDATA[<h1 class="wp-block-heading">認識 Google Cloud Dataproc</h1>



<h2 class="wp-block-heading">Dataproc 是什麼？</h2>



<p><a href="https://cloud.google.com/dataproc?hl=zh-TW" target="_blank" rel="noopener" title="">Dataproc</a> 是 GCP 的一個全代管的大數據處理服務，它支援開源的大數據生態系統工具，如 <a href="https://cloud.google.com/learn/what-is-apache-spark?hl=zh-TW" target="_blank" rel="noopener" title="">Apache Spark</a>、<a href="https://cloud.google.com/learn/what-is-hadoop?hl=zh-TW" target="_blank" rel="noopener" title="">Hadoop</a>、<a href="https://hive.apache.org/" target="_blank" rel="noopener" title="">Hive</a> 等。</p>



<p>簡單說，Dataproc 幫你把資料處理這件事，變得又快又簡單，就像把一座沉重的工廠裝進自動販賣機，按一下就能開工。</p>



<h2 class="wp-block-heading">為什麼選擇 Dataproc？四大優勢</h2>



<p><strong>1.  快速啟動與彈性擴展</strong>：只需幾分鐘就能啟動叢集，根據工作負載自動擴縮。</p>



<p><strong>2. 與 GCP 生態系整合</strong>：無縫串接 <a href="https://dongdonggcp.com/2024/11/23/what-is-bigquery-functions-advantages/" target="_blank" rel="noopener" title="">BigQuery</a>、<a href="https://dongdonggcp.com/2024/11/27/what-is-google-cloud-storage/" target="_blank" rel="noopener" title="">Cloud Storage</a>、<a href="https://dongdonggcp.com/2025/04/14/vertex-ai-functions-agent-builder-model-builder-model-garden-introduction/" target="_blank" rel="noopener" title="">Vertex AI</a> 等工具。</p>



<p>3. 精準付費、節省成本：按秒計費、支援自動關閉機制，有效降低閒置成本。</p>



<p>4. 使用你本來就會的技能： Dataproc 包含 Hadoop、Spark、Hive、Pig 等 Open Source 的工具，不用重新學習。</p>



<h1 class="wp-block-heading">Dataproc 的應用場景</h1>



<h2 class="wp-block-heading">大數據處理</h2>



<p>無論是 ETL（Extract, Transform, Load）處理，還是資料清洗、彙整，都可以用 Dataproc。</p>



<h2 class="wp-block-heading">結合 Spark 進行機器學習訓練</h2>



<p>Dataproc 支援 <a href="https://spark.apache.org/mllib/" target="_blank" rel="noopener" title="">Spark MLlib</a>，你可以直接在叢集上進行分散式訓練，大幅提升訓練速度與模型精度。</p>



<h2 class="wp-block-heading">搭配 Jupyter Notebook 做互動分析</h2>



<p>開發者可透過 <a href="https://cloud.google.com/dataproc/docs/concepts/components/jupyter" target="_blank" rel="noopener" title="">Jypyter Notebook</a> 與叢集互動，實現即時查詢與分析，彷彿在大型資料倉庫裡漫步，探索資料的可能性。</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="569" src="https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc-Architecture-1024x569.png" alt="" class="wp-image-10585" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc-Architecture-1024x569.png 1024w, https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc-Architecture-300x167.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc-Architecture-768x427.png 768w, https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc-Architecture-1536x854.png 1536w, https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc-Architecture.png 1702w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h1 class="wp-block-heading">Dataproc 的架構設計概念</h1>



<h2 class="wp-block-heading"><strong>叢集（Cluster）與節點角色說明</strong></h2>



<p>Dataproc 叢集主要包含兩種節點角色：Master 與 Worker。就像一個工廠，Master 是主管，Worker 是執行員工。</p>



<p>而節點其實就是 Compute Engine 的虛擬機器，因為我們是對整個 Cluster 操作，不針對某一台 VM，所以我們才稱它們叫 Node。</p>



<h3 class="wp-block-heading">Master 節點與 Worker 節點的差異</h3>



<ul class="wp-block-list">
<li><strong>Master</strong>：負責指派任務、監控進度、管理資源。</li>
</ul>



<ul class="wp-block-list">
<li><strong>Worker</strong>：實際執行 Spark Job 與 Hadoop Task。</li>
</ul>



<h3 class="wp-block-heading">如何選擇正確的 VM 類型？</h3>



<p><strong>n2-standard</strong> 適合大多數應用。</p>



<p><strong>e2-medium</strong> 適合成本敏感的小型專案。</p>



<p>可依工作負載選擇是否搭配 GPU 或高記憶體，但如果是初學者，建議不要開太大的機器喔！</p>



<h2 class="wp-block-heading">Spark、Hadoop、Hive 在架構中的定位</h2>



<ul class="wp-block-list">
<li><strong>Spark</strong>：主力計算框架，支援即時與批次任務。</li>
</ul>



<ul class="wp-block-list">
<li><strong>Hadoop HDFS</strong>：用於資料儲存與分散處理。</li>
</ul>



<ul class="wp-block-list">
<li><strong>Hive</strong>：提供 SQL 介面查詢 HDFS 中的資料。</li>
</ul>



<h1 class="wp-block-heading">實際操作：如何建立一個 Dataproc Cluster (叢集)</h1>



<h2 class="wp-block-heading">在 GCP Console 上建立步驟</h2>



<p>進入 Dataproc =&gt; Cluster。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="753" height="488" src="https://dongdonggcp.com/wp-content/uploads/2025/04/click_create_dataproc_cluster.png" alt="" class="wp-image-10586" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/click_create_dataproc_cluster.png 753w, https://dongdonggcp.com/wp-content/uploads/2025/04/click_create_dataproc_cluster-300x194.png 300w" sizes="(max-width: 753px) 100vw, 753px" /></figure>



<p>選擇 Compute Engine。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="527" height="377" src="https://dongdonggcp.com/wp-content/uploads/2025/04/cluster_on_compute_engine.png" alt="" class="wp-image-10587" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/cluster_on_compute_engine.png 527w, https://dongdonggcp.com/wp-content/uploads/2025/04/cluster_on_compute_engine-300x215.png 300w" sizes="(max-width: 527px) 100vw, 527px" /></figure>



<p>給 Cluster 命名，選擇 Region 和 Zone，我是照 <a href="https://www.cloudskillsboost.google/focuses/586?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A1%2C%22has_search%22%3Atrue%7D&amp;parent=catalog&amp;search_id=44571046" target="_blank" rel="noopener" title="">《Dataproc: Qwik Start &#8211; Console》</a> 這個 Lab 做的，所以就跟它一模一樣，你也可以選擇台灣 asia-east1 喔！</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="926" height="542" src="https://dongdonggcp.com/wp-content/uploads/2025/04/cluster_region_zone.png" alt="" class="wp-image-10588" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/cluster_region_zone.png 926w, https://dongdonggcp.com/wp-content/uploads/2025/04/cluster_region_zone-300x176.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/cluster_region_zone-768x450.png 768w" sizes="(max-width: 926px) 100vw, 926px" /></figure>



<p>先設定 Manager Node，我還是習慣叫 Master Node。</p>



<p>這裡要注意，剛開始你可能會找不到 N1、N2 或 E2 的主機，你要先把 Disk 改成 Standard 的，這幾個型號就會出現了。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="914" height="580" src="https://dongdonggcp.com/wp-content/uploads/2025/04/Master-Node.png" alt="" class="wp-image-10589" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/Master-Node.png 914w, https://dongdonggcp.com/wp-content/uploads/2025/04/Master-Node-300x190.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/Master-Node-768x487.png 768w" sizes="(max-width: 914px) 100vw, 914px" /></figure>



<p>一樣的做法再設定 Worker Node。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="918" height="700" src="https://dongdonggcp.com/wp-content/uploads/2025/04/Worker-Node.png" alt="" class="wp-image-10590" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/Worker-Node.png 918w, https://dongdonggcp.com/wp-content/uploads/2025/04/Worker-Node-300x229.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/Worker-Node-768x586.png 768w" sizes="(max-width: 918px) 100vw, 918px" /></figure>



<p>在 IP 的部分，原本 「Internal IP only」是有勾選的，要把它取消喔，</p>



<p>如果只有內部 IP，是不容易從部外連進去的，</p>



<p>它會先勾選，我想是為了安全性的問題，怕任何人都可以連到 Dataproc，</p>



<p>但我們是初學者，玩一下就會馬上把它刪掉(記得喔)，所以沒關係！</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="925" height="488" src="https://dongdonggcp.com/wp-content/uploads/2025/04/use-external-IP.png" alt="" class="wp-image-10591" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/use-external-IP.png 925w, https://dongdonggcp.com/wp-content/uploads/2025/04/use-external-IP-300x158.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/use-external-IP-768x405.png 768w" sizes="(max-width: 925px) 100vw, 925px" /></figure>



<p>接下來等大概五分鐘左右，它就準備好了。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="897" height="452" src="https://dongdonggcp.com/wp-content/uploads/2025/04/截圖-2025-04-21-下午5.49.01.png" alt="" class="wp-image-10593" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/截圖-2025-04-21-下午5.49.01.png 897w, https://dongdonggcp.com/wp-content/uploads/2025/04/截圖-2025-04-21-下午5.49.01-300x151.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/截圖-2025-04-21-下午5.49.01-768x387.png 768w" sizes="(max-width: 897px) 100vw, 897px" /></figure>



<p>同時你也可以在 Compute Engine 頁面上看到真的有機器開出來，一台 Master Node，兩台 Worker Node。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="932" height="378" src="https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc_Cluster_Nodes.png" alt="" class="wp-image-10604" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc_Cluster_Nodes.png 932w, https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc_Cluster_Nodes-300x122.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/Dataproc_Cluster_Nodes-768x311.png 768w" sizes="(max-width: 932px) 100vw, 932px" /></figure>



<p>接下來有兩種操作場景。</p>



<h2 class="wp-block-heading">第一種是直接連到 Dataproc Master Node 的 Command Line</h2>



<p>(本部份取自網路上的 YouTube 影片：<a href="https://www.youtube.com/watch?v=ED9emgRK48Q" target="_blank" rel="noopener" title="">GCP Dataproc Cluster creation | HDFS and Hive</a>)</p>



<p>先 SSH 連到 Master Node，然後上傳一個要分析的檔案。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="267" src="https://dongdonggcp.com/wp-content/uploads/2025/04/Upload_Hadoop_File-1024x267.png" alt="" class="wp-image-10596" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/Upload_Hadoop_File-1024x267.png 1024w, https://dongdonggcp.com/wp-content/uploads/2025/04/Upload_Hadoop_File-300x78.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/Upload_Hadoop_File-768x201.png 768w, https://dongdonggcp.com/wp-content/uploads/2025/04/Upload_Hadoop_File-1536x401.png 1536w, https://dongdonggcp.com/wp-content/uploads/2025/04/Upload_Hadoop_File.png 1742w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>進入 Hive 建立資料庫名叫 “vehicle”。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="253" src="https://dongdonggcp.com/wp-content/uploads/2025/04/create_hive_database-1024x253.png" alt="" class="wp-image-10597" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/create_hive_database-1024x253.png 1024w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_hive_database-300x74.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_hive_database-768x189.png 768w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_hive_database-1536x379.png 1536w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_hive_database.png 1829w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>建立表格 “vehicle_sold”，並查詢表格結構。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="306" src="https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select_schema-1024x306.png" alt="" class="wp-image-10606" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select_schema-1024x306.png 1024w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select_schema-300x90.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select_schema-768x230.png 768w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select_schema-1536x460.png 1536w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select_schema.png 1855w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>接下來使用語法來查詢資料，看到能正常顯示剛上傳的資料。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="466" src="https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select-1024x466.png" alt="" class="wp-image-10598" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select-1024x466.png 1024w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select-300x137.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select-768x350.png 768w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select-1536x699.png 1536w, https://dongdonggcp.com/wp-content/uploads/2025/04/create_table_and_select.png 1729w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>你會在上半部看到效能數據，如果資料量很大，可以查看是否需要調整主機規格來優化效能。</p>



<p>其中 Map 1 是什麼意思？</p>



<p>“1” 是第一階段，Map 是映射任務，資料被分割成多個小塊，每個小塊由一個 Map 任務處理。</p>



<p>把資料轉成 key-value 格式，例如 (Venue, 302), (Ertiga, 123)。</p>



<p>最後來下一個加總語法，查詢各類汽車銷售數量。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="485" src="https://dongdonggcp.com/wp-content/uploads/2025/04/select_group_by-1024x485.png" alt="" class="wp-image-10601" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/select_group_by-1024x485.png 1024w, https://dongdonggcp.com/wp-content/uploads/2025/04/select_group_by-300x142.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/select_group_by-768x363.png 768w, https://dongdonggcp.com/wp-content/uploads/2025/04/select_group_by-1536x727.png 1536w, https://dongdonggcp.com/wp-content/uploads/2025/04/select_group_by.png 1665w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>“Reducer2” 是第二階段 &#8211; 歸納任務，Reducer 接收 Map 任務輸出的 key-value，然後將相同 key 的 value 合併。</p>



<p>例如相同 Creta 的 336 和 265 加總起來為 601。</p>



<p>以上是第一種使用場景，就是讓你可以用下指令的方式，跟 Dataproc 互動操作。</p>



<h2 class="wp-block-heading">第二種場景是提交你寫好的 Job 程式碼給 Dataproc 自動執行</h2>



<p>(本部分是我操作 Skillboost Lab：<a href="Dataproc: Qwik Start - Console" target="_blank" rel="noopener" title="">Dataproc: Qwik Start &#8211; Console</a> 的截圖)</p>



<p>接下來去 Jobs，我們要準備提交一個 Job。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="990" height="543" src="https://dongdonggcp.com/wp-content/uploads/2025/04/create-job.png" alt="" class="wp-image-10595" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/create-job.png 990w, https://dongdonggcp.com/wp-content/uploads/2025/04/create-job-300x165.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/create-job-768x421.png 768w" sizes="(max-width: 990px) 100vw, 990px" /></figure>



<p>在這個 Lab 我們要用一支程式去計算圓周率，所以要引入一個 org.apache.spark.examples.SparkPi 這個 Class，</p>



<p>然後再給它執行 Job 細節的程式碼檔案：file:///usr/lib/spark/examples/jars/spark-examples.jar</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="807" height="540" src="https://dongdonggcp.com/wp-content/uploads/2025/04/job_config_1.png" alt="" class="wp-image-10602" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/job_config_1.png 807w, https://dongdonggcp.com/wp-content/uploads/2025/04/job_config_1-300x201.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/job_config_1-768x514.png 768w" sizes="(max-width: 807px) 100vw, 807px" /></figure>



<p>這個程式使用<a href="https://zh.wikipedia.org/zh-tw/%E8%92%99%E5%9C%B0%E5%8D%A1%E7%BE%85%E6%96%B9%E6%B3%95" target="_blank" rel="noopener" title="">蒙地卡羅方法</a>（Monte Carlo Method）來估算圓周率（Pi）的值，</p>



<p>參數 1000 代表程式將生成的 x,y 座標點對的數量，生成的點對越多，估算的圓周率值就越精確。</p>



<p>所以，當你在 Arguments 欄位中輸入 1000 時，您實際上是在告訴 SparkPi 程式生成 1000 個隨機點來估算 Pi 值。</p>



<p>如果您輸入更大的數字（例如 10000 或 100000），估算會更精確，但計算時間也會更長。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="556" src="https://dongdonggcp.com/wp-content/uploads/2025/04/Pi-1024x556.png" alt="" class="wp-image-10603" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/Pi-1024x556.png 1024w, https://dongdonggcp.com/wp-content/uploads/2025/04/Pi-300x163.png 300w, https://dongdonggcp.com/wp-content/uploads/2025/04/Pi-768x417.png 768w, https://dongdonggcp.com/wp-content/uploads/2025/04/Pi.png 1204w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>最後我們會在 Job Details 看到它算出來的圓周率，你會看到它有點不準。</p>



<p>我們記得 Pi 是 3.1415926&#8230;&#8230;，但它算出來竟然是 3.14193&#8230;&#8230;.</p>



<p>因為它只算 1000 個點，所以沒那麼準，如果算更多個點，一定比我們記憶的還準。</p>



<h2 class="wp-block-heading">Dataproc 和 <a href="https://dongdonggcp.com/2024/11/23/what-is-dataflow-vs-apache-beam/" target="_blank" rel="noopener" title="">Dataflow</a> 很像？到底有何差異？</h2>



<p>當你在 Dataproc 上執行 Spark Job 時，確實會有一些操作方式上的相似點：</p>



<ul class="wp-block-list">
<li>兩者都能執行預先編譯好的程式（JAR 檔案、Python 腳本等）</li>



<li>兩者都能處理批次和串流資料</li>



<li>兩者都能自動分散工作負載到多個節點</li>
</ul>



<p>但根本差異仍然存在。</p>



<p><strong>Dataproc 執行 Spark 程式時：</strong></p>



<ul class="wp-block-list">
<li>你要先建立和維護 Dataproc Cluster</li>



<li>使用 <code>gcloud dataproc jobs submit spark</code> 或通過 Web UI 提交 JAR 檔</li>



<li>Spark 程式會在你開好的 Cluster 上執行</li>



<li>叢集資源是固定的（除非手動調整）</li>



<li>叢集在任務完成後繼續存在（除非配置為自動刪除）</li>
</ul>



<p><strong>Dataflow 執行 <a href="https://beam.apache.org/about/" target="_blank" rel="noopener" title="">Apache Beam</a> 程式時：</strong></p>



<ul class="wp-block-list">
<li>不用預先建立 Cluster</li>



<li>提交程式後，Dataflow 會自動建立和管理執行環境</li>



<li>資源會根據工作負載 Autoscale</li>



<li>任務完成後，所有資源會自動釋放 (刪除 Cluster)</li>
</ul>



<p>簡言之，Dataproc 執行 Spark 程式時，你仍需管理基礎架構 (Cluster)，而 Dataflow 則完全幫你管理這一層面。</p>



<p>這就是為什麼在某些使用案例中，兩者看起來很相似，</p>



<p>都是提交預先寫好的程式來處理資料，但底層的資源管理和架構哲學是不同的。</p>



<h3 class="wp-block-heading">Dataproc 和 Dataflow 比較表</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="756" height="611" src="https://dongdonggcp.com/wp-content/uploads/2025/04/截圖-2025-04-23-下午5.28.43.png" alt="" class="wp-image-10608" srcset="https://dongdonggcp.com/wp-content/uploads/2025/04/截圖-2025-04-23-下午5.28.43.png 756w, https://dongdonggcp.com/wp-content/uploads/2025/04/截圖-2025-04-23-下午5.28.43-300x242.png 300w" sizes="(max-width: 756px) 100vw, 756px" /></figure>



<h1 class="wp-block-heading">工作流程範本  Dataproc Workflow Template</h1>



<h2 class="wp-block-heading">自動化任務排程的關鍵利器</h2>



<p><a href="https://cloud.google.com/dataproc/docs/concepts/workflows/overview" target="_blank" rel="noopener" title="">Workflow Templates</a> 用來設定和管理一系列相依的 Dataproc 作業 (Job)，</p>



<p>例如 A Job 必須完成之後，再開始 B Job。</p>



<p>就像食譜，你只需設定好步驟與材料，系統會自動幫你依序完成資料處理任務。</p>



<p>注意建立範本後，Dataproc 不會建立 Cluster 或開始運作。只有在建立機器後才會開始工作。</p>



<h3 class="wp-block-heading">工作流程範本的種類</h3>



<p><strong>代管叢集 Managed Cluster</strong></p>



<p>當你手上沒有運作中的 Cluster，工作流程會建立一個「臨時」Cluster 來運行作業，完成時刪除該 Cluster。</p>



<p><strong>叢集選擇器 Cluster Selector</strong></p>



<p>當你手上有幾個運作中的 Cluster，你可以下標籤來指定做事的 Cluster，有點像 Kubernetes 那種管理方法。</p>



<p>每個 Cluster 都可以設標籤，是 key-value 的結構，例如你有 3 個 Cluster：</p>



<p>cluster-1 的標籤&nbsp; analytics=ig</p>



<p>cluster-2 的標籤&nbsp; analytics=fb</p>



<p>cluster-3 的標籤&nbsp; web=click</p>



<p>你指定 analytics=fb，cluster-2 就會開始做事。</p>



<p>它會選具有完全相同標籤的 cluster 來工作，而且會找具有最多 YARN 可用記憶體的叢集來運行所有工作流程作業。</p>



<p>但工作完，Cluster 會持續存在，不會把你的 Cluster 刪掉。</p>



<h1 class="wp-block-heading">Dataproc 與其他 GCP 工具整合</h1>



<h3 class="wp-block-heading"><strong>結合 BigQuery 快速查詢分析結果</strong></h3>



<p>Dataproc 可以使用 <a href="https://cloud.google.com/dataproc/docs/concepts/connectors/bigquery" target="_blank" rel="noopener" title="">BigQuery 連接器</a>在 Spark 或 Hadoop 作業中直接讀寫 BigQuery 資料。</p>



<p>處理完的結果可直接匯入 BigQuery，進行後續報表分析與視覺化。</p>



<p>如果經常使用 Dataproc、Cloud Storage 和 BigQuery，建議使用 Avro 格式的資料，因為完全相容。 </p>



<h3 class="wp-block-heading"><strong>與 Cloud Storage 無縫資料串接</strong></h3>



<p>傳統上 Hadoop 用 HDFS 在資料的永久儲存，確保資料在系統關閉或重啟後仍然存在。</p>



<p>在 Dataproc 上使用 <a href="https://cloud.google.com/dataproc/docs/concepts/connectors/cloud-storage" target="_blank" rel="noopener" title="">Cloud Storage 連接器</a>時，可以讓 Dataproc 直接讀寫儲存在 Cloud Storage 上的資料，</p>



<p>無需使用 HDFS。(因為 Dataproc 通常用完就會刪掉環境，上面的 Disk 跟著刪除)</p>



<p>而且 GCS 還比 Disk 便宜。</p>



<p>你可以再搭配 GCS 的物件生命週期管理 Object Lifecycle，有效控管儲存成本。</p>



<h1 class="wp-block-heading">成本管理與效能最佳化技巧</h1>



<h2 class="wp-block-heading">如何利用預留節點與自動關機功能省錢</h2>



<p>使用 Preemptible VM（可搶占節點）節省 80% 成本，但這種主機可能隨時被終止。</p>



<p>建議你用在容錯性高的批次處理工作（可以隨時停下來、即使失敗也可以重試、有備份機制），</p>



<p>也就是「不緊急不重要的工作」。</p>



<p>建議搭配重試機制和優雅停用 (Graceful Decommissioning) 設定，確保正在進行的工作在節點移除前完成。</p>



<h3 class="wp-block-heading"><strong>使用 Cloud Logging 監控資源與效能</strong></h3>



<p>透過指標追蹤 CPU、Memory 使用率，找出瓶頸，優化叢集配置。</p>



<h1 class="wp-block-heading"><strong>Dataproc 常見錯誤與排除方式</strong></h1>



<h2 class="wp-block-heading">排查任務失敗的三個關鍵檢查點</h2>



<ul class="wp-block-list">
<li>驗證 Cluster 資源是否足夠，像記憶體是不是快爆了。</li>



<li>檢查程式碼是否有錯誤。</li>



<li>檢查輸入資料路徑是否正確。</li>
</ul>



<h2 class="wp-block-heading">如何讀懂 Job Logs 與錯誤訊息</h2>



<p>進入 Job Logs，根據錯誤訊息回推失敗原因，例如記憶體不足、格式錯誤、路徑遺失等。</p>



<p>你也可以直接錯誤的 Log 拿去問 ChatGPT。</p>



<h1 class="wp-block-heading">適合導入 Dataproc 的企業情境</h1>



<h2 class="wp-block-heading">金融業：批次風險模型計算</h2>



<p>金融機構常需夜間批次執行大量風控模型，Dataproc 正好適合這種短時高負載任務。</p>



<h2 class="wp-block-heading">零售業：銷售資料彙總與推薦引擎訓練</h2>



<p>從 POS 資料中彙總趨勢、訓練推薦模型，Dataproc 可有效協助行銷與庫存預測。</p>



<p>當然，可以做批次處理的工具都可以，像上面提到的 Dataflow，取決於你對哪個比較熟悉。</p>



<h1 class="wp-block-heading">結語：Dataproc 是否適合你的團隊？</h1>



<p>如果你的團隊正在處理大量資料，需要彈性資源、自動化流程，</p>



<p>或正從傳統平台轉型到雲端，那麼 Dataproc 將會是你強而有力的幫手。</p>



<p>它不只是工具，更是未來資料基礎建設的基石。</p>



<h1 class="wp-block-heading">常見問答（FAQ）</h1>



<p><strong>Q1：Dataproc 可以不寫程式嗎？</strong><br>A：可以透過 Workflow Template 搭配 SQL、Hive 指令，降低程式依賴。（所以還是要拿下指令）</p>



<p>真的要不寫程式，可以考慮用 Dataprep，它是互動式並且視覺化的操作界面，可以設定資料處理規則讓它自動執行。</p>



<p><strong>Q2：Dataproc 和 BigQuery 哪個適合分析？</strong><br>A：BigQuery 適合即時分析，Dataproc 則擅長處理大量轉換、清洗、模型訓練等流程，Dataproc 的分析，主要是拿來探索用的，就是讓你大概看一下資料長怎樣，不方便做大規模而且複雜的分析。</p>



<p><strong>Q3：有支援 GPU 計算嗎？</strong><br>A：有，可以在 Worker 節點指定使用 GPU 運算資源。</p>



<p><strong>Q4：Dataproc 支援 Python 嗎？</strong><br>A：完全支援，Spark 任務可用 PySpark 寫成，也可整合 Notebook 開發環境。</p>



<p><strong>Q5：部署後多久能用？</strong><br>A：幾分鐘內即可建立好叢集，立即上線處理任務。</p>



<p></p>



<p></p>



<p></p><p>The post <a href="https://dongdonggcp.com/2025/04/23/whai-is-dataproc-architecture-and-usage-introduction/">Dataproc 是什麼？四大優勢與使用方法介紹</a> first appeared on <a href="https://dongdonggcp.com">東東 GCP 教學 - GCP 實戰講師</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://dongdonggcp.com/2025/04/23/whai-is-dataproc-architecture-and-usage-introduction/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10584</post-id>	</item>
	</channel>
</rss>
