当前位置: 首页 > news >正文

【Spark集群部署系列二】Spark StandAlone模式介绍和搭建以及使用

【Spark集群部署系列一】Spark local模式介绍和搭建以及使用(内含Linux安装Anaconda)icon-default.png?t=N7T8http://t.csdnimg.cn/0xmky

简介

 

注意:请先部署好Hadoop集群

在部署spark集群前,请部署好Hadoop集群,jdk8【当然Hadoop集群需要运行在jdk上】,需要注意hadoop,spark的版本,考虑兼容问题。比如hadoop3.0以上的才兼容spark3.0以上的。

 下面是Hadoop集群部署的链接,个人笔记,已经成功部署两次了,实时更新,分【一】【二】两部分,需要的自己看。不懂欢迎问,看到了解答。(链接失效的话请参考个人主页)

 hadoop集群部署【一】HDFS集群icon-default.png?t=N7T8http://t.csdnimg.cn/BVKlq

hadoop集群部署【二】YARN,MapReduce集群icon-default.png?t=N7T8http://t.csdnimg.cn/aJJt7

搭建准备工作(每一台机器都要):

注意:如果之前配置过Spark local模式(参考最开始链接),那么只需要在没有安装过anaconda的机器进行搭建准备工作。

安装Anaconda

需要python环境,上传Anaconda,找到放置的位置,切换到该目录下。

安装Anaconda(我的是Anaconda3-2021.05-Linux-x86_64.sh         版本python3.8)

tip:我没有试过分发,所以我不知道分发有没有问题,知道的可以说一下,但是不建议大家用,毕竟安装后要初始化anaconda

sh ./Anaconda3-2021.05-Linux-x86_64.sh

接下来步骤

然后一直空格,出现[yes|no] 就回答yes,懂?

出现这样的就填你要把anaconda安装到哪里。(路径)

完成后结果(退出终端,重新进来)

更改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/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

终端输入 

python

创建spark运行的虚拟环境
conda create -n pyspark python=3.8
 切换虚拟环境
conda activate pyspark

tip:输入python 版本变化很正常

 

Spark StandAlone部署

上传解压spark

如果之前配置过Spark local模式,那么下面的步骤看情况处理

(我的是 spark-3.2.0-bin-hadoop3.2.tgz)

通过什么工具不管,能上传就行。

找到spark上传的位置,cd 进到该目录,不进去也行,自己在前面加路径哈!解压。

  tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server spark-3.2.0-bin-hadoop3.2/

-C 参数后跟解压到哪(路径)

cd /export/server    #填你自己解压的路径

 建立软链接

 ln -s spark-3.2.0-bin-hadoop3.2/ spark
ll
配置环境变量(每一台都需要)

先在第一台配置

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
:wq
source /etc/profile
vim /root/.bashrc

添加 

export JAVA_HOME=/export/server/jdk
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
:wq

(可以在第一台机器配置好,然后分发到其他机器 两个文件  /etc/profile  /root/.bashrc)

scp -r /etc/profile node2:/etc/profile
scp -r /root/.bashrc node2:/root/.bashrc

node3同node2         请先配置好node1之后再进行scp操作,然后其他机器

source /etc/profile
修改spark配置文件
workers
cd /export/server/spark/conf    #注意路径
 mv workers.template workers
vim workers

 删除localhost后填入

node1
node2
node3
spark-env.sh 
mv spark-env.sh.template spark-env.sh
 vim 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"
 启动hadoop集群

(暂时只需要启动hdfs,如果不行就都启动,方正后面都要启动)

hdfs

启动:

start-dfs.sh

关闭:

stop-dfs.sh

 yarn:

启动:

start-yarn.sh

关闭:

stop-yarn.sh

HistoryServer

启动:

$HADOOP_HOME/bin/mapred --daemon start historyserver

关闭的话

$HADOOP_HOME/bin/mapred --daemon stop historyserver

查看是否有sparklog文件夹

 hdfs dfs -ls /

没有创建

 hadoop fs -mkdir /sparklog

 修改sparklog文件夹权限

 hadoop fs -chmod 777 /sparklog
spark-defaults.conf 
 mv spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf
:set paste   #底线模式,开启粘贴

填入 

#park的日期记录功能
spark.eventLog.enabled  true
# 设置spark日志记录的路径
spark.eventLog.dir       hdfs://node1:8020/sparklog/
# 设置spark日志是否启动压缩
spark.eventLog.compress         true
log4j.properties  [可选配置]
mv log4j.properties.template log4j.properties
vim log4j.properties
WARN

这个文件的修改不是必须的,  为什么修改为WARN. 因为Spark是个话痨

会疯狂输出日志, 设置级别为WARN 只输出警告和错误日志, 不要输出一堆废话,如果报错不好找错误的话可以调回INFO级别

分发spark(tab键补全,避免版本没写对)
scp -r spark-3.2.0-bin-hadoop3.2/ node2:$PWD
scp -r spark-3.2.0-bin-hadoop3.2/ node3:`pwd`/
 在其他机器创建软链接
cd /export/server/   #注意路径
 ln -s spark-3.2.0-bin-hadoop3.2/ spark

启动spark集群

 回到node1(master所在的机器)

cd /export/server/spark  # 注意路径
启动historyServer
 sbin/start-history-server.sh 
jps

能看到java进程HistoryServer则启动成功

请找到标题【启动Hadoop集群】启动hdfs,yarn,jobhistoryserver

启动Spark集群
sbin/start-all.sh

其他命令请参考:

命令icon-default.png?t=N7T8http://t.csdnimg.cn/x98Je

jps

 游览器输入(windows系统上需要配置windows主机名映射,没有配置用maste所在机器的ip代替下面的node1)

http://node1:8080/

OK! 完毕。不懂请留言,注意到了,乐意解答。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Docker运行Cassandra集群
  • 如何选择工厂模式或策略模式:Java设计模式实践指南
  • mmdebstrap:创建 Debian 系统 chroot 环境的利器 ️
  • LeetCode138-随机链表的复制--经典OJ题
  • 视频循环存储的实现
  • 嵌入式学习笔记十三——C语言指针变量、一维数组的指针、快速排序
  • 25考研计算机组成原理复习·3.3主存储器与CPU的连接·3.4外部存储器
  • Web前端开发环境搭建
  • 后台数据库与Excel互联操作
  • 基于大数据的气象数据分析与可视化系统设计与实现【爬虫海量数据,LSTM预测】
  • SSRS rdlc报表 九 在.net core中使用RDLC报表
  • Linux 下查看 CPU 使用率
  • 达梦数据库 逻辑备份还原
  • SQL注入第一关-Less1
  • 备战秋招60天算法挑战,Day12
  • angular2开源库收集
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Date型的使用
  • Druid 在有赞的实践
  • GraphQL学习过程应该是这样的
  • hadoop集群管理系统搭建规划说明
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 驱动程序原理
  • 使用Gradle第一次构建Java程序
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 数组的操作
  • 微信小程序--------语音识别(前端自己也能玩)
  • 新版博客前端前瞻
  • 《码出高效》学习笔记与书中错误记录
  • 正则表达式-基础知识Review
  • ​​​​​​​​​​​​​​Γ函数
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (办公)springboot配置aop处理请求.
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (回溯) LeetCode 40. 组合总和II
  • (六)软件测试分工
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (循环依赖问题)学习spring的第九天
  • (一) 初入MySQL 【认识和部署】
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)C#调用WebService 基础
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net 基于MiniExcel的导入功能接口示例
  • .NET 中创建支持集合初始化器的类型
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件