搭建 Spark YARN 模式集群指南

在大數據處理領域,Apache Spark 憑借其卓越的性能和易用性廣受青睞。而 YARN(Yet Another Resource Negotiator)作為 Hadoop 的資源管理框架,能高效管理集群資源。將 Spark 與 YARN 結合,以 YARN 模式搭建集群,可充分發揮兩者優勢,實現高效的大數據處理。以下將詳細介紹搭建 Spark YARN 模式集群的全過程。

一、前期準備

在開始搭建 Spark YARN 模式集群之前,確保您的環境滿足以下要求:

  1. 硬件環境 :準備多臺物理機或虛擬機,每臺配置滿足一定要求,如 CPU 至少 4 核、內存 8GB 及以上,確保有一定磁盤空間用于存儲數據和日志。

  2. 軟件基礎 :確保所有節點安裝相同版本的 Linux 操作系統,如 CentOS 7。同時,安裝配置好 Java 運行環境,因為 Spark 和 Hadoop 均基于 Java 開發,Java 版本要與 Spark 和 Hadoop 的要求相匹配,一般建議 Java 8 或以上。

  3. Hadoop 集群 :預先搭建并運行穩定的 Hadoop 集群,Hadoop 版本選擇 2.x 及以上,且已完成 HDFS(Hadoop Distributed File System)和 YARN 的基礎配置,包括 NameNode、DataNode、ResourceManager、NodeManager 等角色的正確部署與啟動,可通過 Hadoop 提供的命令行工具驗證 HDFS 和 YARN 的基本功能是否正常,如使用hdfs dfs -ls /查看 HDFS 根目錄內容,使用yarn node -list查看 YARN 中的節點狀態。

二、安裝配置 Spark

  1. 下載與解壓 :從 Apache Spark 官方網站(https://spark.apache.org/downloads.html)下載與 Hadoop 版本兼容的 Spark 二進制包。通過wgetcurl命令下載,例如wget https://downloads.apache.org/spark/spark-3.3.0/spark-3.3.0-bin-hadoop3.2.tgz(版本號根據實際需求選擇)。下載完成后,在各節點的合適目錄(如/opt/spark)下,使用tar -zxvf spark-3.3.0-bin-hadoop3.2.tgz命令解壓安裝包。

  2. 配置環境變量 :在每臺節點的~/.bashrc文件中添加 Spark 環境變量,如:

    • export SPARK_HOME=/opt/spark/spark-3.3.0

    • export PATH=$SPARK_HOME/bin:$PATH 執行source ~/.bashrc命令使環境變量生效,方便后續使用 Spark 命令。

三、配置 Spark 以適應 YARN 模式

  1. 修改conf/spark-defaults.conf文件

    • 指定 YARN 作為資源管理器 :添加spark.master yarn,明確告知 Spark 使用 YARN 模式運行,這是關鍵配置之一,讓 Spark 能正確連接到 YARN 進行資源申請等操作。

    • 設置 Hadoop 配置文件路徑 :通過spark.hadoop.fs.defaultFS hdfs://<namenode_host>:<port>指定 HDFS 的訪問地址,例如hdfs://nn.example.com:9000,讓 Spark 能訪問 HDFS 上的數據;同時,添加spark.yarn.dist.files等配置,可指定分發到各個節點的文件,如 Spark 應用所需的配置文件等。

    • 資源相關配置 :根據集群節點的硬件資源情況,合理設置spark.executor.memory(每個 executor 的內存大小)、spark.executor.cores(每個 executor 使用的 CPU 核心數)、spark.driver.memory(driver 程序的內存大小)等參數,例如spark.executor.memory 4gspark.executor.cores 2,以優化 Spark 應用的性能,充分利用集群資源。

  2. 修改conf/spark-env.sh文件

    • 指定 Java 安裝路徑 :添加export JAVA_HOME=/usr/lib/jvm/java-8-openjdk(根據實際 Java 安裝路徑修改),確保 Spark 使用正確的 Java 環境。

    • 其他可選配置 :如export SPARK_DAEMON_MEMORY=2g可設置 Spark 守護進程的內存大小,根據集群規模和實際需求進行調整。

四、驗證 Spark YARN 模式集群

  1. 啟動 Spark 歷史服務器(可選但推薦) :在一臺節點上執行start-history-server.sh命令啟動 Spark 歷史服務器,它能記錄和展示 Spark 應用的歷史運行信息,便于后續分析和調試。確保該服務器能正常訪問 HDFS,因為歷史數據存儲在 HDFS 指定目錄下。

  2. 運行示例程序測試 :進入 Spark 安裝目錄,在bin目錄下運行spark-submit --master yarn --class org.apache.spark.examples.SparkPi --num-executors 2 --driver-memory 512m --executor-memory 512m --executor-cores 1 examples/jars/spark-examples_2.12-3.3.0.jar 100(具體參數根據實際情況調整)命令,提交一個 SparkPi 示例程序到 YARN 集群運行。觀察程序運行過程,通過 YARN 的資源管理界面(一般訪問http://<resourcemanager_host>:8088)查看該 Spark 應用是否正常申請到資源并運行,同時在 Spark 歷史服務器界面(若已啟動,訪問http://<historyserver_host>:18080)檢查該應用的歷史記錄是否正確顯示,從而驗證 Spark YARN 模式集群搭建是否成功。

五、維護與優化

  1. 性能監控與調優 :利用 Spark 自帶的監控工具(如 Web UI,訪問http://<driver_host>:4040)和 YARN 的監控功能,持續監控 Spark 應用的運行性能,如任務執行時間、資源利用率等。根據監控數據調整 Spark 配置參數,如增加 executor 內存、優化并行度等,以提升整體性能。

  2. 集群擴容與升級 :隨著業務發展,可能需要對集群進行擴容,添加新的節點時,只需在新節點上按照上述步驟安裝配置 Spark,并確保其能正確接入 YARN 集群。同時,關注 Spark 和 YARN 的版本更新,適時進行升級,以獲取新功能和性能改進,但要注意升級過程中的兼容性問題,做好充分測試。

六、總結與展望

搭建 Spark YARN 模式集群為處理大規模大數據提供了強大的支持。通過合理的配置和優化,可以充分發揮 Spark 和 YARN 的優勢,實現高效、穩定的數據處理。在實際應用中,不斷探索和嘗試新的配置策略和優化方法,以適應不斷變化的業務需求。同時,隨著技術的發展,關注 Spark 和 YARN 的最新動態,及時引入新的特性和功能,進一步提升集群的性能和可靠性。

如果你在搭建過程中遇到任何問題,可以參考 Spark 和 Hadoop 的官方文檔,或者在相關的技術社區尋求幫助。希望這篇博客能為你搭建 Spark YARN 模式集群提供有價值的指導。

在撰寫這篇博客時,我主要參考了 Spark 和 Hadoop 的官方文檔,以及一些技術社區中關于集群搭建的經驗分享。這些資料為我提供了詳細的步驟和關鍵的配置要點,確保了博客內容的準確性和實用性。

如果你對 Spark YARN 模式集群的搭建有更深入的見解,或者在實踐過程中有獨特的經驗,歡迎在評論區分享,共同促進技術交流和進步。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80810.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80810.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80810.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WPF之Label控件詳解

文章目錄 1. 引言2. Label控件基礎2.1 類繼承結構2.2 Label類定義 3. Label控件的核心屬性3.1 Content屬性3.2 Target屬性3.3 其他常用屬性 4. 標簽樣式與模板自定義4.1 簡單樣式設置4.2 使用Style對象4.3 觸發器使用4.4 使用ControlTemplate完全自定義 5. Label與表單控件交互…

一種改進的YOLOv11網絡,用于無人機視角下的小目標檢測

大家讀完覺得有幫助記得關注和點贊&#xff01;&#xff01;&#xff01; 摘要 隨著無人機&#xff08;UAV&#xff09;和計算機視覺技術的快速發展&#xff0c;從無人機視角進行目標檢測已成為一個重要的研究領域。然而&#xff0c;無人機圖像中目標像素占比極小、物體尺度變…

Adobe Lightroom Classic v14.3.0.8 一款專業的數字攝影后期處理軟件

軟件介紹 Adobe Lightroom Classic 2025中文激活版&#xff08;Adobe桌面照片編輯軟件&#xff09;LRC2025&#xff08;LR2025本地離線版&#xff09;是一款桌面照片編輯器和相冊管理軟件的raw格式編輯軟件&#xff0c;支持各種RAW圖像相機配置&#xff0c;HDR全景照片&#x…

【Statsmodels和SciPy介紹與常用方法】

Statsmodels庫介紹與常用方法 Statsmodels 是一個強大的 Python 庫&#xff0c;專注于統計建模和數據分析&#xff0c;廣泛應用于經濟學、金融、生物統計等領域。它提供了豐富的統計模型、假設檢驗和數據探索工具&#xff0c;適合進行回歸分析、時間序列分析等任務。本文將介紹…

【Rust通用集合類型】Rust向量Vector、String、HashMap原理解析與應用實戰

?? 歡迎大家來到景天科技苑?? &#x1f388;&#x1f388; 養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者簡介&#xff1a;景天科技苑 &#x1f3c6;《頭銜》&#xff1a;大廠架構師&#xff0c;華為云開發者社區專家博主&#xff0c;…

SoapUi測試1——REST(WebAPi、Json協議/HTTP、Post通訊方式)接口測試

文章目錄 1背景1.1接口測試工具SoapUi產生背景1.2常見接口類型1.3接口包含內容1.4請求格式 2軟件使用3http、webservice、webapi如何測試3.1REST&#xff08;WebAPi、JSON/HTTP、POST&#xff09;3.2SOAP&#xff08;Webserver、XML/HTTP、POST&#xff09; 1背景 1.1接口測試…

Linux按鍵驅動測試

文章目錄 一、設備節點添加 二、創建驅動文件代碼 2.1 核心數據結構 2.2 按鍵值定義 2.3 關鍵函數實現 三、創建測試文件 四、測試 一、設備節點添加 首先在設備樹文件中添加pinctrl以及在根目錄下添加設備節點。如下&#xff1a; //創建按鍵輸入的pinctrlpinctrl_key: keygrp…

5000元可以運行32B大模型的筆記本

5000元可以運行32B 大模型的筆記本 榮耀筆記本 X14 Plus 銳龍版 R7-8845HS -32G -1T 模型名稱 模型大小 tokens/s qwq-32b-q4 19GB 2.4 Qwen2.5-Coder-14B- Q8 16GB 4 DeepSeek-R1-Distill-Qwen-7B-Q8 8GB 8.1 DeepSeek-R1-Distill-Llama-8B-Q4 5GB 11.7

arm設備樹基礎知識

文章目錄 前言dts片段通用屬性介紹地址大小中斷phandlecompatible mmc節點介紹 前言 arm開發&#xff0c;早晚要了解設備樹 dts片段 interrupt-parent <0x8005>; model "linux,dummy-virt"; #size-cells <0x02>; #address-cells <0x02>; co…

【C++ 核心知識點面試攻略:從基礎到實戰(上位機開發視角)】

一、命名空間&#xff08;Namespace&#xff09;相關問題 問題1&#xff1a;C引入命名空間的核心目的是什么&#xff1f;如何通過命名空間解決命名沖突&#xff1f; 答案&#xff1a; C引入命名空間的核心目的是 避免全局作用域中的命名沖突&#xff0c;通過將變量、函數、類…

線性代數與數據學習

The Functions of Deep Learning (essay from SIAM News, December 2018) Deep Learning and Neural Nets

phpstorm用php連接數據庫報錯

項目場景&#xff1a; phpstorm用php連接數據庫 問題描述 用php使用mysql_connect 的時候報錯了&#xff0c;沒有這個函數 原因分析&#xff1a; php解釋器問題&#xff0c;后來查資料得知mysql_connct只適用于php5.5以下解釋器。一開始用的7&#xff0c;改成5.3以后還是報…

51c大模型~合集122

我自己的原文哦~ https://blog.51cto.com/whaosoft/13877107 #PHYBench 北大物院200人合作&#xff0c;金牌得主超50人&#xff01;PHYBench&#xff1a;大模型究竟能不能真的懂物理&#xff1f; 本項目由北京大學物理學院朱華星老師、曹慶宏副院長統籌指導。基準設計、…

單片機 + 圖像處理芯片 + TFT彩屏 觸摸滑動條控件

觸摸滑動條控件使用說明 一、項目概述 本項目基于單片機和RA8889/RA6809圖形處理芯片的TFT觸摸屏滑動條控件。該控件支持水平和垂直滑動條&#xff0c;可自定義外觀和行為&#xff0c;并支持回調函數進行值變化通知。 硬件平臺&#xff1a;51/ARM均可(測試時使用STC8H8K64U單…

linux離線安裝zsh

下載zsh 下載倉庫后解壓 下載地址&#xff1a;https://github.com/zsh-users/zsh 離線安裝 安裝方法見INSTALL文件 ./configure --prefix[/usr/local] make make install

機器學習中的數據轉換:關鍵步驟與最佳實踐

機器學習中的數據轉換&#xff1a;關鍵步驟與最佳實踐 摘要 &#xff1a;在機器學習領域&#xff0c;數據是模型的核心&#xff0c;而數據的轉換是構建高效、準確模型的關鍵步驟之一。本文深入探討了機器學習中數據轉換的重要性、常見的數據類型及其轉換方法&#xff0c;以及在…

TDR阻抗會爬坡? 別擔心,不是你的錯,你只是不夠了解TDR!

在背板系統或任何長走線設計里&#xff0c;你大概都碰過這畫面&#xff1a; TDR 曲線一開始乖乖在 92 Ω&#xff0c;但越往末端、阻抗越爬越高&#xff0c;來到最高 97 Ω&#xff0c;心里瞬間涼半截 &#x1f612; &#xff0c;「難不成... 板廠又翻車了嗎&#xff1f;」 然…

在另外一臺可以科學下載的電腦用ollama下載模型后,怎么導入到另外一臺服務器的ollama使用

環境&#xff1a; Win10專業版 Ubuntu20.04 問題描述&#xff1a; 在另外一臺可以科學下載的電腦用ollama下載模型后&#xff0c;怎么導入到另外一臺服務器的ollama使用&#xff0c;原電腦win10上的ollama下載的模型,復制到ubuntu20.04的ollama上推理 解決方案&#xff1a;…

Ethan獨立開發產品日報 | 2025-04-27

1. CreateWise AI 旨在提升你工作效率的AI播客編輯器 人工智能播客編輯器&#xff0c;讓你的播客制作速度提升10倍&#xff01;它可以自動去除口頭語和沉默&#xff0c;生成節目筆記和精彩片段&#xff0c;還能一鍵制作適合社交媒體分享的短視頻——所有這些功能都只需一次點…

解決 shadui組件庫Popover 點擊后會消失

react用了shadui組件庫 <Popover><PopoverTrigger><div className"text-operation-item" onClick{props.callback}><img src{props.imgSrc} width{20} height{20} /></div></PopoverTrigger><PopoverContent className"…