Ubuntu22.04下安裝Spark2.4.0(Local模式)

一、版本信息

虛擬機產品:VMware? Workstation 17 Pro ? 虛擬機版本:17.0.0 build-20800274

ISO映像文件:ubuntukylin-22.04-pro-amd64.iso

Hadoop版本:Hadoop 3.1.3

JDK版本:Java JDK 1.8

Spark版本:Spark 2.4.0

這里有我放的百度網盤下載鏈接,讀者可以自行下載:

鏈接:https://pan.baidu.com/s/121zVsgc4muSt9rgCWnJZmw?
提取碼:wkk6

注意:其中的ISO映像文件為ubuntukylin-16.04.7版本的而不是22.04版本,22.04版本內存過大無法上傳,見諒!!!

也可去Spark官網進行下載:Spark官方下載地址

二、安裝Hadoop(偽分布式)

Spark的安裝過程較為簡單,在已安裝好 Hadoop 的前提下,經過簡單配置即可使用。

如果讀者沒有安裝Hadoop3.1.3(偽分布式),請訪問林子雨老師的Hadoop3.1.3安裝教程進行Hadoop的偽分布式安裝:Hadoop3.1.3安裝教程_單機/偽分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)_廈大數據庫實驗室博客icon-default.png?t=N7T8https://dblab.xmu.edu.cn/blog/2441-2/

三、安裝JAVA JDK

安裝Hadoop3.1.3的過程就已經要求安裝JAVA JDK1.8了。如果沒有,請參考林子雨老師的Hadoop安裝教程_單機/偽分布式配置_Hadoop3.1.3/Ubuntu18.04進行安裝配置。

四、安裝Spark(Local模式)

在安裝Spark之前默認讀者已經在虛擬機軟件上安裝VMware Tools,若沒有安裝請移步于本人的另一篇文章:真·保姆級——在VMware的Ubuntukylin上進行Hadoop單機/偽分布式安裝時安裝VMware Tools后虛擬機與物理機之間無法傳輸文件和復制粘貼的問題(附Ubuntu更改默認登錄用戶)-CSDN博客

1.將Spark安裝包移到下載目錄中

將物理機上下載的Spark安裝包拖拽到讀者虛擬機Ubuntu系統家目錄中的下載目錄中:

2.下載Spark并確保hadoop用戶對Spark目錄有操作權限

sudo tar -zxf ~/下載/spark-2.4.0-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.4.0-bin-without-hadoop/ ./spark
sudo chown -R hadoop:hadoop ./spark          # 此處的 hadoop 為你的用戶名
  • 將Apache Spark壓縮包解壓到/usr/local/目錄下
  • 切換當前工作目錄到/usr/local
  • 將解壓出來的Spark目錄重命名為spark,以便于記憶和管理
  • /usr/local/spark目錄及其子目錄和文件的所有權更改為用戶hadoop,確保該用戶對Spark目錄有操作權限,便于后續的配置和使用

五、修改Spark的配置文件

安裝Spark后,還需要修改Spark的配置文件spark-env.sh

cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
  • 切換當前工作目錄到/usr/local/spark。這個目錄是Apache Spark的安裝目錄,之前的步驟中已經將Spark解壓并重命名到這個位置
  • 創建一個可編輯的環境配置文件spark-env.sh,基于模板文件spark-env.sh.template。通過編輯這個文件,可以自定義Spark的運行環境,例如設置JVM選項、Spark的工作節點內存限制、日志配置等

編輯spark-env.sh文件:

vim ./conf/spark-env.sh

在第一行添加以下配置信息并保存:

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

配置完成后就可以直接使用,不需要像Hadoop運行啟動命令。

六、驗證Spark是否安裝成功

通過運行Spark自帶的示例,驗證Spark是否安裝成功。

cd /usr/local/spark
bin/run-example SparkPi

運行Apache Spark自帶的一個示例程序 —— SparkPi。

這個示例程序計算π的值,是一個經典的計算密集型任務,常用來測試Spark集群的安裝是否成功以及其基本的運行情況

下面詳細解釋這些命令的作用:

  1. cd /usr/local/spark:這條命令將當前的工作目錄切換到Apache Spark的安裝目錄。前提是讀者已經按照之前的指導安裝并配置了Spark,并且將其安裝在了/usr/local/spark目錄下。

  2. bin/run-example SparkPi:這條命令實際上是運行Spark自帶的一個示例程序。?

  • bin/run-example?是一個腳本,位于Spark安裝目錄下的bin文件夾中。它用于運行Spark自帶的示例程序。
  • SparkPi?是要運行的示例程序的名稱。這個程序通過蒙特卡洛方法計算π的值。

具體來說,這個命令的執行過程如下:

  • 當執行?bin/run-example SparkPi?命令時,Spark會啟動一個應用程序實例,并執行計算π值的任務。
  • 這個任務會被分解成多個小任務(task),并可能在一個或多個工作節點(如果讀者配置了Spark集群的話)上并行執行。
  • 執行完成后,程序會輸出計算得到的π值。

執行時會輸出非常多的運行信息,輸出結果不容易找到,bin/run-example SparkPi 2>&1 | grep "Pi is"這條命令的作用是運行SparkPi示例程序,然后搜索并顯示所有包含“Pi is”的輸出行,顯示程序計算出的π值的那一行,因此這個命令可以幫助用戶直接查看計算結果,而不必手動從可能很長的程序輸出中尋找相關信息。

bin/run-example SparkPi 2>&1 | grep "Pi is"

下面詳細解釋這些命令的作用:

  1. bin/run-example SparkPi:運行Spark自帶的示例程序SparkPi。這個程序計算π的值,是一個用來測試Spark安裝和配置是否正確的經典示例。

  2. 2>&1:這部分是重定向命令。2代表標準錯誤(stderr),1代表標準輸出(stdout)。2>&1的意思是將標準錯誤重定向到標準輸出,這樣錯誤信息和正常輸出信息都會被發送到同一個地方(即標準輸出)。

  3. | grep "Pi is":‘|'是管道符,它的作用是將前一個命令的輸出作為后一個命令的輸入。grep是一個文本搜索工具,可以根據指定的模式(pattern)搜索文本。這里,grep "Pi is"表示搜索包含“Pi is”的行。

過濾后的運行結果如下圖示:

至此,Spark安裝成功!!!

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

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

相關文章

[SUCTF 2019]EasyWeb --不會編程的崽

個人認為&#xff0c;這題還算有些東西。先來看源碼 <?php function get_the_flag(){// webadmin will remove your upload file every 20 min!!!! $userdir "upload/tmp_".md5($_SERVER[REMOTE_ADDR]);if(!file_exists($userdir)){mkdir($userdir);}if(!empty…

Slurm作業系統

1、什么是計算機集群 計算機集群是由多臺獨立的計算機&#xff08;節點&#xff09;通過網絡連接在一起&#xff0c;以共同完成任務的一種計算機系統結構。集群系統旨在提高性能、可用性和可擴展性。以下是計算機集群的一般結構和組成要素&#xff1a; 節點&#xff08;Nodes&…

android Service 與 activity 通信 并不斷傳數據

注&#xff1a;這只是個Demo 以下載為案例&#xff0c;實現開啟下載&#xff0c;暫停下載&#xff0c;下載進度不斷發送給activity class DownloadService : Service() {override fun onBind(intent: Intent?): IBinder? {return MyBinder()}inner class MyBinder : Binder…

分布式任務調度平臺XXL-JOB安裝及使用

簡介 XXL-JOB是一個分布式任務調度平臺&#xff0c;其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼并接入多家公司線上產品線&#xff0c;開箱即用。 源碼github地址 源碼gitee地址 中文文檔地址 中央倉庫地址 <!-- http://repo1.maven.org/ma…

云原生團隊如何實現加量不加價

隨著云原生技術的快速發展&#xff0c;越來越多的業務實現了上云&#xff0c;云原生團隊在工作量增大的同時也隨之變成了所有問題對接的入口&#xff0c;如何承擔這個保姆的角色成為了一道難題&#xff0c;故障的定界和問題證據的交接更是讓人頭疼的問題。在這種情況下需要有工…

Python Web開發記錄 Day5:jQuery(JavaScript庫)

名人說&#xff1a;莫道桑榆晚&#xff0c;為霞尚滿天。——劉禹錫&#xff08;劉夢得&#xff0c;詩豪&#xff09; 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 目錄 五、jQuery1、jQuery-選擇器和菜單案例①快速上…

水經微圖Web版1.6.0發布

讓每一個人都有自己的地圖&#xff01; 水經微圖&#xff08;簡稱“微圖”&#xff09;新版已上線&#xff0c;在該版本中主要新增了點線面圖層分組樣式設置、圖層排序并按序繪制、KML支持矢量符號的存儲、KML支持態勢標繪要素存儲和新增歷史地圖文本樣式等。 現在&#xff0…

Linux系統加固:限制用戶對資源的使用禁止IP源路由更改主機解析地址的順序設置umask值

Linux系統加固&#xff1a;限制用戶對資源的使用&禁止IP源路由&更改主機解析地址的順序&設置umask值 1.1 限制用戶對資源的使用1.2 禁止IP源路由1.3 更改主機解析地址的順序1.4 禁止ip路由轉發1.5 設置umask值 &#x1f496;The Begin&#x1f496;點點關注&#x…

Node 實現身份認證 token 的生成與應用

前后分離要用jwt進行認證&#xff0c;跨域 前后不分離要用session進行認證&#xff0c;不跨域 安裝 npm init npm install express npm install cors(解決跨域問題 ) npm install jsonwebtoken&#xff08;生成token字符串&#xff09; npm install express-jwt7(反轉成信…

數學建模的論文手應該如何準備?

數學建模的論文手應該如何準備&#xff1f; 寫論文的爭議點論文如何構建1. 文章結構1.1 摘要1.2 問題重述1.3 問題分析1.4 模型假設1.5 符號說明1.6 模型的建立與求解關于模型陳述問題和模型過程中模型求解 1.7 模型的檢驗分析1.8 模型評價和推廣1.9 參考文獻1.10 附錄 2. 常用…

AtCoder Beginner Contest 341

C - Takahashi Gets Lost 分析&#xff1a;數據小&#xff0c;暴力沒什么好說的 int h,w,n; string t; char c[505][505]; int dx[4]{1,-1,0,0}; int dy[4]{0,0,1,-1}; int get(char c){if(cL)return 3;if(cU)return 1;if(cR)return 2;return 0; } int check(int x,int y,int …

38.云原生之Istio安全-流量鑒權加密

云原生專欄大綱 文章目錄 TLS 和 mTLSTLS 和 mTLS使用場景TLS 加密通信的流程終止 TLS什么時候用 mTLS&#xff1f;什么時候不用 mTLS&#xff1f; 流量加密入口流量加密內部流量加密PeerAuthentication 為工作負載設置 mTLSDestinationRule 為工作負載設置 mTLS 安全最佳實戰…

OpenAI 中文文檔

模型&#xff08;Model&#xff09; https://openai.xiniushu.com/docs/modelsOpenAI 中文文檔

hive 中少量數據驗證函數的方法-stack

可以使用 stack 將少量數據直接寫在sql中,然后用于驗證是否正確 1、每個省累計銷量前1名的城市 t1(pro_name,city_name,sale_num,sale_date&#xff09; 源數據&#xff1a; ‘河北’,‘石家莊’,‘1’,‘2022-01-01’ ,‘河北’,‘石家莊’,‘2’,‘2022-01-02’ ,‘河北’,‘…

【vue3 路由使用與講解】vue-router : 超詳細全面介紹

# 核心內容介紹 路由跳轉有兩種方式&#xff1a; 聲明式導航&#xff1a;<router-link :to"...">編程式導航&#xff1a;router.push(...) 或 router.replace(...) &#xff1b;兩者的規則完全一致。 push(to: RouteLocationRaw): Promise<NavigationFailur…

Secure Boot(安全啟動)

Secure Boot&#xff08;安全啟動&#xff09;的原理基于鏈式驗證&#xff0c;這是一種確保計算機在啟動過程中只加載和執行經過認證的軟件的機制。這個過程涉及到硬件、固件和操作系統的多個層面。以下是Secure Boot的基本原理&#xff1a; 密鑰和證書&#xff1a;Secure Boot…

day07_分類管理EasyExcel品牌管理

文章目錄 1 分類管理1.1 菜單添加1.2 表結構介紹1.3 頁面制作1.4 列表查詢1.4.1 需求分析1.4.2 后端接口CategoryCategoryControllerCategoryServiceCategoryMapperCategoryMapper.xml 1.4.3 前端對接category.jscategory.vue 2 EasyExcel2.1 數據導入導出意義2.2 EasyExcel簡介…

ABAP - SALV教程 01- 開篇:打開SALV的三種方式之一

關于SALV&#xff0c;這里參考巨佬江正軍的文章講解&#xff0c;在做SAP開發的遇到困難和瓶頸的時候&#xff0c;每每讀到巨佬的文章都會靈感爆發、醍醐灌頂。https://www.cnblogs.com/jiangzhengjun/p/4291387.html 博主由于是由JAVA轉型的ABAP開發&#xff0c;剛接觸ABAP的時…

力扣細節題:判斷是否為平衡二叉樹

經典題&#xff0c;需要記憶&#xff0c;且注意fabs和fmax函數的使用 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/int deep(struct TreeNode*root){if(rootNULL){return 0;}r…

Unity3D 渲染隊列 ZTest與ZWrite詳解

前言 在Unity3D中&#xff0c;渲染隊列&#xff08;Rendering Queue&#xff09;是一個非常重要的概念&#xff0c;它決定了游戲中各個物體的渲染順序和優先級。而在渲染隊列中&#xff0c;ZTest和ZWrite又是兩個關鍵的參數&#xff0c;它們決定了物體在渲染的過程中如何處理深…