龍蜥8.10中spark各種集群及單機模式的搭建spark3.5.6(基于hadoop3.3.6集群)

先說最終的訪問端口,如我這里ip為172.20.94.37、172.20.94.38、172.20.94.39,主機名分別為:hadoop37、hadoop38、hadoop39.
最終訪問(默認端口):

hadoop webui 172.20.94.37:9870
hdfs 端口 8020
yarn 172.20.94.37:8088
historyserver 172.20.94.37:19888spark-master-port: 7077
spark-webui-port: 172.20.94.37:8080
spark-worker-webui-port: 172.20.94.37:8081
spark-historyserver: 172.20.94.37:18081

**

注意:如果要切換集群模式,一定要修改/etc/profile中SPARK_HOME的路徑到對應的目錄

**
1、去清華的鏡像源下載相關文件 https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.5.6/
2、解壓縮

tar zxvf spark-3.5.6-bin-hadoop3.tgz

3、移動到適當位置

mv spark-3.5.6-bin-hadoop3 /app/spark-3

4、下載scala
https://www.scala-lang.org/download/all.html
這個版本的spark用的是scala-2.12.20
https://www.scala-lang.org/download/2.12.20.html
linux下
https://downloads.lightbend.com/scala/2.12.20/scala-2.12.20.tgz

tar zxvf scala-2.12.20.tgz
mv scala-2.12.20 /app/scala-2

5、配置環境變量
nano /etc/profile
下面是完整的java、hadoop、scala、spark的配置環境

export JAVA_HOME=/app/openjdk-8
export HADOOP_HOME=/app/hadoop-3
export SCALA_HOME=/app/scala-2
export SPARK_HOME=/app/spark-3export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$SPARK_HOME/sbin:$SCALA_HOME/bin

source /etc/profile 環境變量生效

驗證:

scala -version
spark-shell
:quit 退出

單機模式:
6、配置
進到/app/spark-3/conf中,復制一個文件出來

cd /app/spark-3/conf
cp spark-env.sh.template spark-env.sh

nano spark-env.sh

export SCALA_HOME=/app/scala-3
export JAVA_HOME=/app/openjdk-8
export SPARK_MASTER_IP=hadoop37
export SPARK_WOKER_CORES=2
export SPARK_WOKER_MEMORY=2g
export HADOOP_CONF_DIR=/app/hadoop-3/etc/hadoop
#export SPARK_MASTER_WEBUI_PORT=8080
#export SPARK_MASTER_PORT=7070

7、配置spark-defaults.conf

cd /app/spark-3/conf
cp spark-defaults.conf.template spark-defaults.conf
nano spark-defaults.conf
spark.master                     yarn
spark.hadoop.fs.defaultFS        hdfs://hadoop37:8020
spark.yarn.jars                  hdfs://hadoop37:8020/spark-jars/*.jar

可以啟動了

cd /app/spark-3
sbin/start-all.sh

8、查看spark版本

spark-submit --version

9、啟動spark

cd /app/spark-3
sbin/start-all.sh

停止所有:

sbin/stop-all.sh

10、jps 查看是否安裝成功,比如我的是這樣,Worker、Master啟動完,證明spark和scala安裝啟動成功了,這是主節點:

19136 JobHistoryServer
18533 ResourceManager
18039 DataNode
18727 NodeManager
20584 Worker
18233 SecondaryNameNode
20681 Jps
17900 NameNode
20479 Master

11、子節點:
jps執行后:

1559 DataNode
1687 NodeManager
1853 Jps

12、ip:8080 ,如 172.20.94.37:8080 來查看驗證集群的情況。

——————————————————————————————————
spark on yarn集群模式

我是先裝一個docker,在此基礎上安裝zookeeer3.6.4,然后搭建集群。

容器化安裝:
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/zookeeper:3.6.4
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/zookeeper:3.6.4  docker.io/zookeeper:3.6.4docker run --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name zookeeper -p 2181:2181 -p 8090:8080 -v /etc/localtime:/etc/localtime -d docker.io/zookeeper:3.6.4
啟動了一個新的端口,可以查看相關命令,如類似下面的路徑:
http://172.20.94.33:8090/commands

1、解壓縮

tar zxvf spark-3.5.6-bin-hadoop3.tgz

2、移動到適當位置

mv spark-3.5.6-bin-hadoop3 /app/spark3-yarn

3、配置

cd /app/spark3-yarn/conf
cp spark-env.sh.template spark-env.sh

4、nano spark-env.sh

默認增加:

export JAVA_HOME=/app/openjdk-8
HADOOP_CONF_DIR=/app/hadoop-3/etc/hadoop
YARN_CONF_DIR=/app/hadoop-3/etc/hadoop

——————————————————————————————————

spark standalone集群模式 -------------

1、解壓縮

tar zxvf spark-3.5.6-bin-hadoop3.tgz

2、移動到適當位置

mv spark-3.5.6-bin-hadoop3 /app/spark3-standalone

3、配置

cd /app/spark3-standalone/conf
cp spark-env.sh.template spark-env.sh

4、nano spark-env.sh
默認增加:

export JAVA_HOME=/app/openjdk-8
export SPARK_MASTER_HOST=hadoop37
export SPARK_MASTER_IP=hadoop37
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_WOKER_MEMORY=2g
export SPARK_WOKER_WEBUI_PORT=8081
export SPARK_HISTORY_OPTS="
-Dspark.history.fs.cleaner.enabled=true
-Dspark.history.fs.logDirectory=hdfs://hadoop37:8020/spark/logs
-Dspark.history.ui.port=18081"

5、cd /app/spark3-standalone/conf

cp spark-defaults.conf.template spark-defaults.conf
nano spark-defaults.conf

增加內容:

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://hadoop37:8020/spark/logs

6、cp workers.template workers
nano workers
增加內容:

hadoop37
hadoop38
hadoop39

7、創建spark/logs目錄

hdfs dfs -mkdir -p /spark/logs

8、文件分發

scp -r /app/spark3-standalone/ hadoop38:/app/
scp -r /app/spark3-standalone/ hadoop39:/app/

9、啟動spark

cd /app/spark3-standalone
./sbin/start-all.sh

停止所有:

./sbin/stop-all.sh

————————————————————————————————

spark ha 集群模式 -------------

1、解壓縮

tar zxvf spark-3.5.6-bin-hadoop3.tgz

2、移動到適當位置

mv spark-3.5.6-bin-hadoop3 /app/spark3-ha

3、配置

cd /app/spark3-ha/conf
cp spark-env.sh.template spark-env.sh

4、nano spark-env.sh

默認增加:

export JAVA_HOME=/app/openjdk-8
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_HISTORY_OPTS="
-Dspark.history.fs.cleaner.enabled=true
-Dspark.history.fs.logDirectory=hdfs://hadoop37:8020/spark/logs
-Dspark.history.ui.port=18081"
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=172.20.94.33:2181,172.20.94.33:2181
-Dspark.deploy.zookeeper.dir=/app/spark3-ha"

5、cd /app/spark3-ha/conf

cp spark-defaults.conf.template spark-defaults.conf

nano spark-defaults.conf
增加內容:

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://hadoop37:8020/spark/logs

6、cp workers.template workers
nano workers
增加內容:

hadoop37
hadoop38
hadoop39

7、創建spark/logs目錄

hdfs dfs -mkdir -p /spark/logs

8、文件分發

scp -r /app/spark3-ha/ hadoop38:/app/
scp -r /app/spark3-ha/ hadoop39:/app/

9、啟動spark

cd /app/spark3-ha
./sbin/start-all.sh

停止所有:

./sbin/stop-all.sh

10、啟動standby狀態的Master
比如在hadoop38

cd /app/spark3-ha
sbin/start-master.sh

11、啟動歷史服務器

cd /app/spark3-ha
sbin/start-history-server.sh

————————————————————————————
部署及運行的例子:
不指定模式,使用本地模式

cd /app/spark3-standalone
bin/spark-submit --class org.apache.spark.examples.SparkPi --deploy-mode client --executor-memory 1G --executor-cores 1 --num-executors 1 examples/jars/spark-examples_2.12-3.5.6.jar 5

指定運行模式 yarn:

cd /app/spark3-yarn
bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client --executor-memory 1G --executor-cores 1 --num-executors 1 examples/jars/spark-examples_2.12-3.5.6.jar 5

上傳文件:

hdfs dfs -put /app/word.txt /

刪除輸出目錄

hdfs dfs -rm -r  /out

運行:

bin/spark-submit --class org.rainpet.WordCount --master yarn --conf spark.yarn.jars=$SPARK_HOME/jars/* --deploy-mode client --executor-memory 1G --executor-cores 1 --num-executors 1 /app/scala-spark-cluster01-1.0-SNAPSHOT.jar /word.txt /out

windows下:

spark-submit --class org.rainpet.WordCount --master yarn --conf spark.yarn.jars=%SPARK_HOME%/jars/* --deploy-mode client --executor-memory 1G --executor-cores 1 --num-executors 1 scala-spark-cluster01-1.0-SNAPSHOT.jar /word.txt /out

本地文件

sc.textFile("file:///D:/java/workspace_gitee/cloud-compute-course-demo/scala-spark01/src/main/resources/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

hdfs文件

sc.textFile("/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

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

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

相關文章

關于我重新學習 react 的第一遍

今天是25年9月11號,很久很久沒有學習前端知識了,坦誠來說還清楚記得在大學里因為前端技術第一次獲獎的心情,也清晰記得寫完第一篇博客后的心情,工作和運動給我最大程度的成就感。 打破自己 重新開始 完全地 版本一 25.9.11 文章目…

第2課:Agent系統架構與設計模式

第2課:Agent系統架構與設計模式 課程目標 理解Agent的基本概念和特性掌握多Agent系統的設計模式學習Agent通信協議和消息傳遞實踐創建簡單的Agent框架 課程內容 2.1 Agent基礎概念 什么是Agent? Agent是一個具有自主性、反應性、社會性和主動性的計…

Day42 51單片機中斷系統與8×8 LED點陣掃描顯示

day42 51單片機中斷系統與88 LED點陣掃描顯示一、51單片機引腳位操作 —— sbit 關鍵字 作用 sbit 是專用于 51 單片機架構的 C 語言擴展關鍵字,用于定義特殊功能寄存器(SFR)中的某一位,從而實現對單個 I/O 引腳的直接位操作。 示…

差分: 模板+題目

題目:【模板】差分 應用場景:快速解決將某一個區間所有元素加上 “一個數” 的操作。 第一步,預處理差分數組。 f[i] 表示:當前元素與前一個元素的差值 a[i] - a[i-1]; 但在題目中,我們其實可以不用到a[]這個數組…

GD32 Timer+ADC多通道+DMA+PWM調試記錄

本例記錄使用GD32307C開發板,實現以內部Timer1 CH1為觸發源,觸發ADC0的兩個通道,進行并行非連續采樣,病通過DMA傳輸采樣結果。同時輸出PWM,用來檢測Timer1 CH1的觸發周期。下面介紹具體實現過程:1. gpio初始…

阻塞 IO為什么叫BIO,非阻塞IO為什么叫NIO,異步IO為什么叫AIO

IOIO的核心就是數據傳輸,也就是程序與外部設備之間進行傳輸,通過IO的核心可以分為,文件IO和網絡IO文件IO交互的對象就是本地存儲設備,比方說讀寫本地文件。網絡IO交互的對象就是網絡設備,核心的應用場景就是網絡通信。…

10分鐘了解什么是多模態大模型

10分鐘了解什么是多模態大模型(MM-LLMs) 1. 什么是多模態 Multimodality 多模態(Multimodality)是指集成和處理兩種或兩種以上不同類型的信息或數據的方法和技術。在機器學習和人工智能領域,多模態涉及的數據類型通常…

通過DSL生成Jenkins流水線

代碼化管理 Jenkins 流水線(Infrastructure as Code) 版本控制:DSL 腳本可以像代碼一樣存入 Git、GitLab 等版本控制系統,所有任務配置的變更都有提交記錄,便于追溯歷史、回滾錯誤。協作效率:團隊成員可以通…

信號量主要API及綜合應用

1.信號量概述信號量是一個底層核心模塊【int】類型變量,記錄當前信號量數據。信號量 P 操作 (sem_wait)線程檢測對應信號量底層 int 數據數值,如果大于 0,當前線程獲得 CPU 執行權,同時將信號量底層 int 數據-1 操作。如果底層數據…

工業自動化領域的“超級跑車”:西門子TDC系統深度解析與實戰架構

工業自動化領域的“超級跑車”:西門子TDC系統深度解析與實戰架構 文章目錄 工業自動化領域的“超級跑車”:西門子TDC系統深度解析與實戰架構引言:當普通PLC遇到性能瓶頸第一章:認識TDC——它不是簡單的“大型PLC”1.1 TDC究竟是什…

MySQL高階查詢語句與視圖實戰指南

MySQL高階查詢語句與視圖實戰指南 文章目錄MySQL高階查詢語句與視圖實戰指南一、常用高階查詢技巧1. 按關鍵字排序(ORDER BY)基礎用法進階用法:多字段排序條件過濾2. 區間判斷與去重(AND/OR DISTINCT)區間判斷&#x…

解決Pytest參數化測試中文顯示亂碼問題:兩種高效方法

在使用Pytest進行參數化測試時,許多開發者都會遇到一個常見但令人頭疼的問題:當測試用例的ids參數包含中文字符時,控制臺輸出會出現亂碼。這不僅影響了測試報告的可讀性,也給測試結果的分析帶來了困難。本文將深入探討這個問題&am…

基于SpringBoot的校園流浪動物救助平臺【spring boot實戰項目、Java畢設、Java項目、Java實戰】

💖💖作者:計算機畢業設計小途 💙💙個人簡介:曾長期從事計算機專業培訓教學,本人也熱愛上課教學,語言擅長Java、微信小程序、Python、Golang、安卓Android等,開發項目包括…

利用kimi k2編寫postgresql協議服務端的嘗試

美團龍貓還是很有自知之明的 提問請用C編寫postgresql協議服務端,能接收psql客戶端或其他采用postgresql協議的工具的請求,實現將用戶請求打印在控制臺,并把回應發給客戶端回答 抱歉,我無法為您編寫完整的 PostgreSQL 協議服務端。…

醫療 AI 再突破:輔助診斷準確率超 90%,但落地醫院仍面臨數據安全與臨床信任難題

一、引言(一)醫療 AI 發展背景在數字化與智能化浪潮的席卷下,醫療領域正經歷著深刻變革,人工智能(AI)技術的融入成為這場變革的關鍵驅動力。近年來,醫療 AI 輔助診斷技術取得重大突破&#xff0…

Rocky Linux10.0安裝zabbix7.4詳細步驟

安裝Rocky Linux10.0系統 請參考Rocky Linux10.0安裝教程-CSDN博客 查看當前系統版本 cat /etc/*release 安裝數據庫 安裝zabbix之前,需要先安裝一個數據庫來承載zabbix的數據。這里我選擇在本機直接安裝一個MariaDB數據庫。 Rocky Linux10.0系統默認不包含MySQ…

JDBC插入數據

文章目錄視頻:JDBC插入數據環境準備寫插入數據屬性配置屬性配置視頻:JDBC插入數據 環境準備 MySQL環境 小皮面板 提供MySQL環境 寫插入數據 屬性配置 聲明變量 屬性配置 # . properties 是一個特俗的map 集合 # key : 字符串 value : 字符串…

GPU 服務器壓力測試核心工具全解析:gpu-burn、cpu-burn 與 CUDA Samples

在 GPU 服務器的性能驗證、穩定性排查與運維管理中,壓力測試是關鍵環節,可有效檢測硬件極限性能、散熱效率及潛在故障。以下從工具原理、核心功能、使用場景等維度,詳細介紹三款核心測試工具,幫助用戶系統掌握 GPU 服務器壓力測試方法。 一、GPU 專屬壓力測試工具:gpu-bu…

Python進程和線程——多線程

前面提到過進程是由很多線程組成的,那么今天廖老師就詳細解釋了線程是如何運行的。首先,,Python的標準庫提供了兩個模塊:_thread和threading,_thread是低級模塊,threading是高級模塊,對_thread進…

【MySQL|第九篇】視圖、函數與優化

目錄 十、視圖 1、簡單視圖: 2、復雜視圖: 3、視圖更新: 十一、函數 1、函數創建: 十二、數據庫優化 1、索引優化: 2、查詢優化: 3、設計優化: 十、視圖 在 MySQL 中,視圖…