Spark集群部署

1.5 Spark集群部署
1.5.1 Spark部署模式

Local 多用于本地测试,如在eclipse,idea中写程序测试等。

Standalone 是Spark自带的一个资源调度框架,它支持完全分布式。

Yarn 生态圈里面的一个资源调度框架,Spark也是可以基于Yarn来计算的。

Mesos 资源调度框架,与Yarn类似。

1.5.2 环境准备

环境预准备,至少三台机器互通互联,免密登录,时间同步,安装好JDK1.8。

安装包下载:

http://archive.apache.org/dist

GitHub - apache/spark: Apache Spark - A unified analytics engine for large-scale data processing

1.5.3 Standalone模式

Spark自身节点运行的集群模式,也就是我们所谓的独立部署(Standalone)模式。Spark的Standalone模式体现了经典的master-slave模式。

集群规划:

基本条件:同步时间、免密登录、关闭防火墙、安装JDK1.8

qianfeng01qianfeng02qianfeng03
sparkMaster  WorkerWorkerWorker

1)解压缩文件

将spark-3.1.2-bin-hadoop3.2.tgz文件上传到qianfeng01并解压缩在指定位置

[root@qianfeng01 local]# tar -zxvf /home/spark-3.1.2-bin-hadoop3.2.tgz -C /usr/local/
[root@qianfeng01 local]# mv /usr/local/spark-3.1.2-bin-hadoop3.2/ /usr/local/spark-3.1.2

2)修改配置文件

2.1) 进入解压缩后路径的conf目录,修改workers.template文件名为workers

[root@qianfeng01 local]# mv /usr/local/spark-3.1.2/conf/workers.template /usr/local/spark-3.1.2/conf/workers

2.2) 修改workers文件,添加worker节点 [root@qianfeng01 local]# vi /usr/local/spark-3.1.2/conf/workers

qianfeng01
qianfeng02
qianfeng03

2.3) 修改spark-env.sh.template文件名为spark-env.sh

[root@qianfeng01 local]# mv /usr/local/spark-3.1.2/conf/spark-env.sh.template /usr/local/spark-3.1.2/conf/spark-env.sh

2.4) 修改spark-env.sh文件,添加JAVA_HOME环境变量和集群对应的master节点 [root@qianfeng01 local]# vi /usr/local/spark-3.1.2/conf/spark-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_152
SPARK_MASTER_HOST=qianfeng01
SPARK_MASTER_PORT=7077

注意:7077端口,相当于hadoop3内部通信的9820端口,此处的端口需要确认自己的Hadoop配置

3)分发配置好的内容到其他节点

scp -r /usr/local/spark-3.1.2/ qianfeng02:/usr/local/
scp -r /usr/local/spark-3.1.2/ qianfeng03:/usr/local/

4)配置spark环境变量

vi /etc/profile
#追加如下内容
export JAVA_HOME=/usr/local/jdk1.8.0_152
export HADOOP_HOME=/usr/local/hadoop-3.3.1/
export SPARK_HOME=/usr/local/spark-3.1.2/
​
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin:
​
#将profile分发到qianfeng02和qianfeng03上的etc目录中
[root@qianfeng01 local]# scp /etc/profile qianfeng02:/etc/
[root@qianfeng01 local]# scp /etc/profile qianfeng03:/etc/
#再到qianfeng01、qianfeng02和qiafeng03服务器执行刷新环境变量
[root@qianfeng01 ~]# source /etc/profile
[root@qianfeng01 ~]# which spark-shell
/usr/local/spark-3.1.2/bin/spark-shell
​
[root@qianfeng02 ~]# source /etc/profile
[root@qianfeng02 ~]# which spark-shell
/usr/local/spark-3.1.2/bin/spark-shell
​
[root@qianfeng03 ~]# source /etc/profile
[root@qianfeng03 ~]# which spark-shell
/usr/local/spark-3.1.2/bin/spark-shell

5) spark启动集群 进入到安装目录找sbin目录进入 /usr/local/spark-3.1.2 启动 ./sbin/start-all.sh

[root@qianfeng01 local]# cd /usr/local/spark-3.1.2
[root@qianfeng01 spark-3.1.2]# ./sbin/start-all.sh

6) 查看spark集群的进程

[root@qianfeng01 spark-3.1.2]# jps-cluster.sh
---------- qianfeng01 ----------
14785 NodeManager
16451 Master
4772 NameNode
4982 DataNode
14601 ResourceManager
9006 JobHistoryServer
16526 Worker
---------- qianfeng02 ----------
8708 Worker
2712 DataNode
2826 SecondaryNameNode
7723 NodeManager
---------- qianfeng03 ----------
9877 NodeManager
10967 Worker
2168 DataNode

7) 查看spark集群的master的web ui spark提供webUI界面端口是一样8080或8081,内部通信7077 master的webUI : http://qianfeng01:8080 worker的Web UI : http://qianfeng01:8081

image.png

8) 基于spark standalone集群提交作业

spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://qianfeng01:7077 \
--executor-memory 512m \
--total-executor-cores 2 \
/usr/local/spark-3.1.2/examples/jars/spark-examples_2.12-3.1.2.jar 100
​
结果如下:
......
22/08/31 16:33:53 INFO TaskSetManager: Finished task 99.0 in stage 0.0 (TID 99) in 10 ms on 192.168.10.102 (executor 1) (100/100)
22/08/31 16:33:53 INFO TaskSchedulerImpl: Removed TaskSet 0.0, whose tasks have all completed, from pool
22/08/31 16:33:53 INFO DAGScheduler: ResultStage 0 (reduce at SparkPi.scala:38) finished in 2.709 s
22/08/31 16:33:53 INFO DAGScheduler: Job 0 is finished. Cancelling potential speculative or zombie tasks for this job
22/08/31 16:33:53 INFO TaskSchedulerImpl: Killing all running tasks in stage 0: Stage finished
22/08/31 16:33:53 INFO DAGScheduler: Job 0 finished: reduce at SparkPi.scala:38, took 2.838844 s
Pi is roughly 3.1413319141331915
......
1.5.4 Yarn 模式集群部署

需要注意:配置yarn的文件中不要保留标签和队列,容易造成后续提交到Yarn中无法执行的效果,队列可以保留但是内存给的足够到时没有什么问题

独立部署(Standalone)模式由Spark自身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。Spark主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以可以使用Hadoop生态中Yarn进行资源调度操作。

1)将spark-3.1.2-bin-hadoop3.2.tgz文件上传到qianfeng01并解压缩在指定位置

tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /usr/local

2)修改hadoop中的配置文件/usr/local/hadoop-3.3.1/etc/hadoop/yarn-site.xml vi /usr/local/hadoop-3.3.1/etc/hadoop/yarn-site.xml

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
     <name>yarn.nodemanager.pmem-check-enabled</name>
     <value>false</value>
</property>
​
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
     <name>yarn.nodemanager.vmem-check-enabled</name>
     <value>false</value>
</property>

分发到不同的节点

scp /usr/local/hadoop-3.3.1/etc/hadoop/yarn-site.xml qianfeng02:/usr/local/hadoop-3.3.1/etc/hadoop
scp /usr/local/hadoop-3.3.1/etc/hadoop/yarn-site.xml qianfeng03:/usr/local/hadoop-3.3.1/etc/hadoop
  1. 进入解压缩后路径的conf目录,修改workers.template文件名为workers

修改spark-env.sh.template文件名为spark-env.sh 修改spark-defaults.conf.template文件名为spark-defaults.conf

[root@qianfeng01 spark-3.1.2]# cd /usr/local/spark-3.1.2/conf/
mv workers.template wokers
mv spark-env.sh.template spark-env.sh
mv spark-defaults.conf.template spark-defaults.conf

workers文件中添加(如果添加过就不需要再添加) [root@qianfeng01 conf]# vi /usr/local/spark-3.1.2/conf/workers

qianfeng01
qianfeng02
qianfeng03

spark-env.sh文件中添加 [root@qianfeng01 conf]# vi /usr/local/spark-3.1.2/conf/spark-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_321
HADOOP_CONF_DIR=/usr/local/hadoop-3.3.1/etc/hadoop
YARN_CONF_DIR=/usr/local/hadoop-3.3.1/etc/hadoop
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://qianfeng01:9820/sparkHistory -Dspark.history.retainedApplications=30"

spark-defaults.conf文件中添加 [root@qianfeng01 conf]# vi /usr/local/spark-3.1.2/conf/spark-defaults.conf

spark.eventLog.enabled      true
spark.eventLog.dir       hdfs://qianfeng01:9820/sparkHistory
spark.yarn.historyServer.address=qianfeng01:18080
spark.history.ui.port=18080

分发到不同的节点

scp -r /usr/local/spark-3.1.2/conf/* qianfeng02:/usr/local/spark-3.1.2/conf/
scp -r /usr/local/spark-3.1.2/conf/* qianfeng03:/usr/local/spark-3.1.2/conf/

注意:需要启动hadoop集群,HDFS上的目录需要提前存在。

#启动hdfs级群
start-dfs.sh
hdfs dfs -mkdir /sparkHistory
#启动yarn级群
stop-yarn.sh
start-yarn.sh
#停止spark standalone级群,也不需要启动其它spark的级群
[root@qianfeng01 spark-3.1.2]# ./sbin/stop-all.sh

启动spark的历史服务

#在规划的spark历史服务机器上启动spark的历史服务
start-history-server.sh
[root@qianfeng01 spark-3.1.2]# jps-cluster.sh
---------- qianfeng01 ----------
4772 NameNode
4982 DataNode
17880 NodeManager
17593 ResourceManager
18346 HistoryServer    ---spark的历史服务
9006 JobHistoryServer
---------- qianfeng02 ----------
2712 DataNode
9240 NodeManager
2826 SecondaryNameNode
---------- qianfeng03 ----------
2168 DataNode
11384 NodeManager

Guff_hys_python数据结构,大数据开发学习,python实训项目-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/243479.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python:将numpy数据表示成base64

安装Pybase64库 pip install pybase64conda install pybase64 示例 在Python中&#xff0c;你可以使用numpy库和base64库将numpy数组编码为Base64字符串。以下是一个示例&#xff1a; import numpy as np import base64 # 创建一个numpy数组 data np.array([1, 2…

使用Netropy广域网模拟器测试简化SD-WAN测试

来源&#xff1a;艾特保IT 虹科干货丨使用Netropy广域网模拟器测试简化SD-WAN测试 原文链接&#xff1a;https://mp.weixin.qq.com/s/k5-5Ske9zOMzyx4e3JmtSw 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 文章速览&#xff1a; -为什么需要WAN模拟器&#xff1f;…

AttributeError: ‘BaichuanTokenizer‘ object has no attribute ‘sp_model‘

在使用baihcuan模型进行微调或推理时&#xff0c;遇到AttributeError: BaichuanTokenizer object has no attribute sp_model,针对这个问题issues204上进行了讨论。下面是亲身实践过的方法。 1. 问题 2. 解决方法 降低transformers版本 参考&#xff1a; CUDA:11.6 transfor…

Redis第1讲——入门简介

Java并发编程的总结和学习算是告一段落了&#xff0c;这段时间思来想去&#xff0c;还是决定把Redis再巩固和学习一下。毕竟Redis不论是在面试还是实际应用中都是极其重要的&#xff0c;在面试中诸如Redis的缓存问题、热key、大key、过期策略、持久化机制等&#xff1b;还有在实…

智能优化算法应用:基于鸽群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鸽群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鸽群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鸽群算法4.实验参数设定5.算法结果6.参考文献7.MA…

12.12年末大促,退换货寄件5元起 !

促销新闻报道&#xff1a; 在双十二促销季&#xff0c;闪侠惠递携手圆通、申通、中通、京东、德邦推出了一系列寄件促销活动&#xff01;在这场活动中&#xff0c;退换货运费贵&#xff0c;你该怎么办&#xff1f;从今天开始&#xff0c;闪侠惠递和五大物流企业为您带来了一场…

架构简洁之道有感,谈谈软件组件聚合的张力

配图由腾讯混元助手生成 这篇文章介绍了软件架构设计中组件设计思想&#xff0c;围绕“组件间聚合的张力”这个有意思的角度&#xff0c;介绍了概念&#xff0c;并且结合架构设计示例对这个概念进行了进一步阐述。 组件聚合&#xff1f;张力&#xff1f;这标题&#xff0c;有种…

7+PPI+机器学习+实验,非肿瘤结合建模筛选生物标志物,可升级

今天给同学们分享一篇生信文章“Identification of diagnostic biomarkers and therapeutic targets in peripheral immune landscape from coronary artery disease”&#xff0c;这篇文章发表在J Transl Med期刊上&#xff0c;影响因子为7.4。 结果解读&#xff1a; 外周血中…

docker-compose 单机容器编排

docker-compose 单机容器编排 Dockerfile&#xff1a;先配置好的文件&#xff0c;然后bulid&#xff0c;镜像容器。 docker-compose 既可以基于dockerfile&#xff0c;也可以基于镜像&#xff0c;一键式拉起镜像和容器。 docker-compose 核心就是yml文件&#xff0c;可以定义…

idea__SpringBoot微服务11——整合Druid数据源(新依赖)(新注解)

整合JDBC 一、导入依赖二、配置Druid————————创作不易&#xff0c;如觉不错&#xff0c;随手点赞&#xff0c;关注&#xff0c;收藏(*&#xffe3;︶&#xffe3;)&#xff0c;谢谢~~ 接着 第10的 新注解&#xff1a; ConfigurationProperties ConfigurationPropert…

介绍一款上传漏洞fuzz字典生成工具

介绍一款上传漏洞fuzz字典生成工具 1.工具概述2.安装3.参数解析4.使用案例1.工具概述 upload-fuzz-dic-builder是一个上传漏洞fuzz字典生成脚本,生成时给的上传点相关信息越详细,生成的字典越精确 upload-fuzz-dic-builder 2.安装 克隆项目: git clone git@github.com:c…

TCP/IP详解——TCP 协议

文章目录 一、传输层协议1. TCP1.1 TCP 的字节流1.2 TCP 端口号1.3 TCP 头部1.4 TCP 选项部分字段1.5 TCP 三次握手1.6 TCP 三次握手不成功1.6.1 TCP 拒绝&#xff08;被RST重置&#xff09;1.6.2 TCP 半连接1.6.3 TCP 连接无响应 1.7 TCP 传输过程及原理1.7.1 TCP 传输过程1.7…

现代雷达车载应用——第2章 汽车雷达系统原理 2.4节 雷达波形和信号处理

经典著作&#xff0c;值得一读&#xff0c;英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.4 雷达波形和信号处理 对于连续波雷达来说&#xff0c;波形决定了其基本信号处理流程以及一些关键功能。本节将以FMCW波形为例&#xff0c;讨论信号…

【MySQL命令】show slave status\G 超详细全面解释

这个命令是DBA日常运维中常用来查看主从状态的命令&#xff0c;很多备份&#xff0c;监控工具也会使用到该命令监控主从状态是否正常&#xff0c;主从延迟&#xff0c;获取位点信息等。作为常用日常命令&#xff0c;一定要完全理解该命令的输出。今天主要结合 官方文档 和 实际…

iptables详解

1、介绍 iptables 是一个在 Linux 系统上用于配置和管理防火墙规则的工具。它允许系统管理员定义数据包的过滤规则、网络地址转换&#xff08;NAT&#xff09;规则和数据包的网络地址和端口的转发规则。iptables 提供了非常灵活和强大的功能&#xff0c;可以用于保护网络安全、…

Python数据科学视频讲解:Python序列的概念及通用操作

2.10 Python序列的概念及通用操作 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解2.10节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学应用的全流程&#xff0c;…

Python 自动化之收发邮件(一)

imapclient / smtplib 收发邮件 文章目录 imapclient / smtplib 收发邮件前言一、基本内容二、发送邮件1.整体代码 三、获取邮件1.整体代码 总结 前言 简单给大家写个如何用Python进行发邮件和查看邮件教程&#xff0c;希望对各位有所帮助。 一、基本内容 本文主要分为两部分…

为什么FPGA是战略芯片?

FPGA&#xff08;Field Programmable Gate Array&#xff09;是在PAL&#xff08;可编程阵列逻辑&#xff09;、GAL&#xff08;通用阵列逻辑&#xff09;等可编程器件的基础上进一步发展的产物&#xff0c;它是作为一种半定制电路而出现的&#xff0c;既解决了定制电路的不足&…

c++知识总结

一 细碎知识 1.27 # 1.27.1 # pragma once 参考 C++学习笔记之pragma once的理解_pragma once什么意思-CSDN博客https://blog.csdn.net/lynnlee_36/article/details/105322937作用 保证只被编译一次,和#ifndef,#define,#endif功能相同 1.27.2 #if defined(__cplusplus…

1688按关键字搜索工厂数据,商品详情页数据的采集

公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中,点击获取测试key和secret&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheStrin…
最新文章