一.Anaconda On Linux 安装 (单台服务器)
下载链接:https://pan.baidu.com/s/1wC2qHj5izp1lQmDFmsnWCg?pwd=1234
提取码:1234
1.上传安装包
如图所示,上传到虚拟机上面
2.执行安装
安装命令:sh ./Anaconda3-2021.05-Linux-x86_64.sh
完成安装:
断开连接,重连一下,出现base成功。如果没有出现base,完成国内源配置后,再重连一下。
3.配置国内源
在家目录下新建文件.conda
vim .condarc
追加内容
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
创建虚拟环境
conda create -n pyspark python=3.8
进入虚拟环境
conda activate pyspark
4.在其他两台虚拟机上面安装Anaconda,并配置环境
把Anaconda安装包复制到其他两台机器上面,要有相同的目录
scp -r /export/software/Anaconda3-2021.05-Linux-x86_64.sh root@node2:/export/software
scp -r /export/software/Anaconda3-2021.05-Linux-x86_64.sh root@node3:/export/software
参考以上自己在其他机器上面安装Anaconda和配置源,配置环境,创建虚拟环境,进入
二.Spark Local模式部署(提前开好hadoop)
下载链接:https://pan.baidu.com/s/15wQLJKoHqPO7ftZuQ2nXFQ?pwd=1234
提取码:1234
1.上传并解压spark安装包
tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server/
由于spark文件夹比较长我们创立一个软链接
ln -s /export/server/spark-3.2.0-bin-hadoop3.2 /export/server/spark
2.配置spark环境变量
以下是我的环境变量,仅供参考:
下面两个路径要写到.bashrc里面
2.测试
2.1 测试1
spark目录下的bin目录执行命令
./pyspark
可以提供一个 交互式
的 Python解释器环境, 在这里面可以写普通python代码, 以及spark代码
如果没成功,可以刷新一下环境变量
source /etc/profile
测试代码:数字都加1
sc.parallelize([1,2,3,4,5]).map(lambda x: x + 1).collect()
我们可以通过4040端口查看正在运行任务,如果出不来,换成(ip:4040)
2.2 测试2
用scala语言来测试,切换到shell
sc.parallelize(Array(1,2,3,4,5)).map(x=> x + 1).collect()
测试结果
三. Spark StandAlone环境部署(提前开好hadoop)
1.集群规划
课程中 使用三台Linux虚拟机来组成集群环境, 非别是:
node1\ node2\ node3
node1运行: Spark的Master进程 和 1个Worker进程
node2运行: spark的1个worker进程
node3运行: spark的1个worker进程
整个集群提供: 1个master进程 和 3个worker进程
2.保证每台机器上面都安装完Anaconda和配置好虚拟环境,换好源,具体做法看 目录一.
3.修改node1上面spark配置文件,目录-->spark/conf
3.1配置workers文件
# 改名, 去掉后面的.template后缀
mv workers.template workers# 编辑worker文件
vim workers
# 将里面的localhost删除, 追加
node1
node2
node3
到workers文件内# 功能: 这个文件就是指示了 当前SparkStandAlone环境下, 有哪些worker
3.2 配置spark-env.sh文件
路径根据自己电脑选择的来
# 1. 改名
mv spark-env.sh.template spark-env.sh# 2. 编辑spark-env.sh, 在底部追加如下内容
## 设置JAVA安装目录
JAVA_HOME=/export/server/jdk## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop## 指定spark老大Master的IP和提交任务的通信端口
# 告知Spark的master运行在哪个机器上
export SPARK_MASTER_HOST=node1
# 告知sparkmaster的通讯端口
export SPARK_MASTER_PORT=7077
# 告知spark master的 webui端口
SPARK_MASTER_WEBUI_PORT=8080# worker cpu可用核数
SPARK_WORKER_CORES=1
# worker可用内存
SPARK_WORKER_MEMORY=1g
# worker的工作通讯地址
SPARK_WORKER_PORT=7078
# worker的 webui地址
SPARK_WORKER_WEBUI_PORT=8081## 设置历史服务器
# 配置的意思是 将spark程序运行的历史日志 存到hdfs的/sparklog文件夹中
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1:8020/sparklog/ -Dspark.history.fs.cleaner.enabled=true"
在HDFS上创建程序运行历史记录存放的文件夹:
hadoop fs -mkdir /sparklog
hadoop fs -chmod 777 /sparklog
3.3 配置spark-defaults.conf文件
# 1. 改名
mv spark-defaults.conf.template spark-defaults.conf# 2. 修改内容, 追加如下内容
# 开启spark的日期记录功能
spark.eventLog.enabled true
# 设置spark日志记录的路径
spark.eventLog.dir hdfs://node1:8020/sparklog/
# 设置spark日志是否启动压缩
spark.eventLog.compress true
3.4 配置log4j.properties 文件,输出简洁的作用
4.分发spark,并配置好spark的环境变量。(/etc/profile和.bashrc)。并创建软连接,在node2、3上面.
scp -r /export/server/spark-3.2.0-bin-hadoop3.2/ root@node2:/export/server/
scp -r /export/server/spark-3.2.0-bin-hadoop3.2/ root@node3:/export/server/
5. 启动历史服务器
sbin/start-history-server.sh
6.启动Spark的Master和Worker进程
# 启动全部master和worker
sbin/start-all.sh
查看主节点的webUI界面
node1:8080
或者ip:8080
7.集群测试
7.1 进入spark/bin--链接集群,7077是master内部通讯地址,要连接它
bin/pyspark --master spark://node1:7077
sc.parallelize(Array(1,2,3,4,5)).map(x=> x + 1).collect()
7.2 提交实例代码带集群上面
spark-submit --master spark://node1:7077 /export/server/spark/examples/src/main/python/pi.py 10
四. Spark On YARN 环境搭建(提前开好hadoop)
1. 环境配置
确保:在spark-env.sh 以及 环境变量配置文件中正确即可
HADOOP_CONF_DIR
YARN_CONF_DIR
2.链接
bin/pyspark --master yarn --deploy-mode client|cluster
# --deploy-mode 选项是指定部署模式, 默认是 客户端模式
# client就是客户端模式
# cluster就是集群模式
# --deploy-mode 仅可以用在YARN模式下
bin/pyspark --master yarn
检查yarn中,ip+8088
3.测试
3.1 运行在yarn内部,集群模式,结果在日志中查看。(生产模式)
bin/spark-submit --master yarn --deploy-mode cluster --driver-memory 512m --executor-memory 512m --num-executors 3 --total-executor-cores 3 /export/server/spark/examples/src/main/python/pi.py 10
如果太麻烦,直接去掉参数,指定cluster模式即可,在指定提交代码地址。参数可以不写,因为每个人电脑不一样。
如果日志中报告warn,但不出来结果,多进入几次,刷新几次,就好了,要相信自己。
3.2 客户端模式(日志直接出来,结果直接呈现,测试模式)
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 10
如果太麻烦,直接去掉参数,指定client模式即可,在指定提交代码地址。参数可以不写,因为每个人电脑不一样。
五. 提醒
如果中间哪里错了,先不要慌,仔细检查一遍是不是没有同步一些环境变量文件,看一看环境变量是否没有改正。
如果在运行过程中没有出现结果,不妨多运行几次。
崩溃了就出去转一圈,看看大自然,回来接着搞。
实在不行就重装吧,哈哈哈哈哈。