spark 环境部署

一.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模式即可,在指定提交代码地址。参数可以不写,因为每个人电脑不一样。

五. 提醒

如果中间哪里错了,先不要慌,仔细检查一遍是不是没有同步一些环境变量文件,看一看环境变量是否没有改正。

如果在运行过程中没有出现结果,不妨多运行几次。
崩溃了就出去转一圈,看看大自然,回来接着搞。

实在不行就重装吧,哈哈哈哈哈。

  • 33
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值