柚子快報(bào)激活碼778899分享:大數(shù)據(jù) spark學(xué)習(xí)
柚子快報(bào)激活碼778899分享:大數(shù)據(jù) spark學(xué)習(xí)
standalone環(huán)境部署
1.standalone架構(gòu)
standalone是完整的spark運(yùn)行環(huán)境,其中:Master角色以Master進(jìn)程存在,Worker角色以Woker進(jìn)程存在,Driver角色在運(yùn)行時(shí)存在Master進(jìn)程內(nèi),Executeor運(yùn)行在Worker進(jìn)程內(nèi)
standalone集群在進(jìn)程上主要由3類進(jìn)程:
主節(jié)點(diǎn)master進(jìn)程從節(jié)點(diǎn)Workers節(jié)點(diǎn)歷史服務(wù)器HistoryServer進(jìn)程 spark Application運(yùn)行完成以后,保存事件日志數(shù)據(jù)到HDFS,啟動(dòng)HistoryServer可以查看應(yīng)用運(yùn)行相關(guān)信息
2.安裝standalone環(huán)境
1. 安裝Python(Anaconda)
上傳: 資料中提供的Anaconda3-2021.05-Linux-x86_64.sh文件到Linux服務(wù)器上安裝執(zhí)行命令:sh ./Anaconda3-2021.05-Linux-x86_64.sh退出終端,然后在進(jìn)入終端,前面就會(huì)出現(xiàn):(base) [root@node2 ~]#配置國(guó)內(nèi)數(shù)據(jù)源
vim ~/.condarc
將下面的數(shù)據(jù)填寫到這個(gè)文件中
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
創(chuàng)建虛擬環(huán)境
conda create -n pyspark python=3.8
切換到虛擬環(huán)境
conda activate pyspark
將安裝包發(fā)送到另一臺(tái)服務(wù)器上
scp -r Anaconda3-2021.05-Linux-x86_64.sh node3:`pwd`/
通過克隆虛擬器,修改主機(jī)名
hostnamectl set-hostname node1
2.spark安裝
上傳spark-3.2.0-bin-hadoop3.2.tgz文件到linux上解壓文件
tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server/
由于spark目錄名稱很長(zhǎng), 給其一個(gè)軟鏈接
ln -s /export/server/spark-3.2.0-bin-hadoop3.2 /export/server/spark
3.配置環(huán)境變量
vim /etc/profile
export SPARK_HOME=/export/server/spark
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
3臺(tái)機(jī)器分別配置
vim ~/.bashrc
export JAVA_HOME=/export/server/jdk
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
4.啟動(dòng)spark歷史服務(wù)
sbin/start-history-server.sh
3.測(cè)試
1.啟動(dòng)spark
cd /export/server/spark/bin
./pyspark
2.計(jì)算
sc.parallelize([1,2,3,4,5]).map(lambda x:x*10).collect()
Spark on yarn模式
1.spark on yarn本質(zhì)
Driver可以運(yùn)行在容器中,也可以在spark提交客戶端上
2.配置spark on yarn環(huán)境
打開spark-env.sh文件
vim spark/conf/spark-env.sh
添加下面的內(nèi)容
## HADOOP軟件配置文件目錄,讀取HDFS上的文件和運(yùn)行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/haddop/etc/hadoop
注意:hadoop集群和yarn集群要啟動(dòng) 啟動(dòng)spark on yarn集群:
bin/pyspark --master yarn
3.spark on yarn運(yùn)行模式
spark on yarn有兩種模式:cluster和client兩種模式
cluster模式client模式Driver運(yùn)行位置YARN容器內(nèi)客戶端進(jìn)程內(nèi)通訊效率高低于cluster模式日志查看日志輸出在YARN容器內(nèi),查看不方便日志輸出在客戶端標(biāo)準(zhǔn)輸出流內(nèi),查看方便生產(chǎn)可用推薦不推薦穩(wěn)定性穩(wěn)定不穩(wěn)定
運(yùn)行命令:
# 默認(rèn)就是這種模式,再添加一些性能參數(shù)
bin/spark-submit --master yarn --deploy-mode client --driver-memory 512m --executor-memory 512m --num-executors 3 --total-executor-cores 3 /export/server/spark/examples/src/main/python/pi.py 100
4.spark on yarn運(yùn)行細(xì)節(jié)
RDD學(xué)習(xí)
1.什么是RDD
RDD是Resilient Distributed Dataset叫做彈性分布式數(shù)據(jù)集,是Spark中最基本的數(shù)據(jù)抽象,代表一個(gè)不可變,可分區(qū),里面的元素可并行計(jì)算的集合
2.為什么需要RDD
1.分布式計(jì)算需要
1.分區(qū)空值
2.Shuffle控制
3.數(shù)據(jù)存儲(chǔ)\序列化\發(fā)送
4.數(shù)據(jù)計(jì)算API
5.等一系列功能
3.RDD五大特性
1.RDD是有分區(qū)的
2.計(jì)算方法都會(huì)作用到每一個(gè)分片(分區(qū))之上
3.RDD之間是有相互依賴關(guān)系的
4.KV型RDD可以有分區(qū)器
5.RDD分區(qū)數(shù)據(jù)的讀取會(huì)盡量靠近數(shù)據(jù)所在地
4.各種算子我就不寫了,想看的可以到下面這個(gè)地址看練習(xí)代碼
https://github.com/cm-smart/python_project/tree/master/pyspark_test
5.spark-submit操作
spark-submit提交,依賴其它文件,支持.zip(一堆),也可以是單個(gè).py文件
/export/server/spark/bin/spark-submit --master yarn --py-files ./defs.zip ./main.py
6.榨干集群性能提交
1.先查看集群的資源有多少
1.查看CPU有幾核:cat /proc/cpuinfo | grep processor | wc -l
2.查看內(nèi)存有多大:free -g
2.3個(gè)服務(wù)器,3核,3g內(nèi)存
3.希望使用3個(gè)executor來干活,每個(gè)executor吃掉1核1g內(nèi)存
/export/server/spark/bin/spark-submit --master yarn --py-files ./defs.py \
--executor-memory 1g \
--executor-cores 1 \
--num-executors 3 \
./main.py
柚子快報(bào)激活碼778899分享:大數(shù)據(jù) spark學(xué)習(xí)
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。