hadoop 3.x大数据集群搭建系列4-安装Spark

news2025/1/23 6:19:46

文章目录

  • 一. 下载spark和scala并解压
  • 二. 配置SPARK_HOME环境变量
  • 三. 修改配置
    • 3.1 修改 spark-defaults.conf
    • 3.2 修改spark-env.sh
    • 3.3 修改slaves文件
  • 四. 将spark目录分发到其他节点
  • 五. 启动Spark集群
  • 六. 在web界面查看Spark UI
  • 七. 测试
  • 八. Yarn模式
    • 8.1 启动hdfs、yarn服务
    • 8.2 修改Hadoop中的 yarn-site.xml 配置
    • 8.3 向hdfs上传spark纯净版jar包
    • 8.4 Spark on Yarn测试
      • 8.4.1 client运行模式
      • 8.4.2 cluster运行模式
  • 参考:

一. 下载spark和scala并解压

cd /home/software
wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz --no-check-certificate

tar -xvf spark-3.3.1-bin-hadoop3.tgz -C /home/
cd /home/software
官网下载scala:https://www.scala-lang.org/download/2.13.1.html

tar -xvf scala-2.13.1.tgz -C /home

二. 配置SPARK_HOME环境变量

vi /etc/profile
# 添加如下内容
export SPARK_HOME=/home/spark-3.3.1-bin-hadoop3
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

export SCALA_HOME=/home/scala-2.13.1
export PATH= $PATH:$SCALA_HOME/bin


# 加载使其生效
source /etc/profile

三. 修改配置

# 进入spark conf目录
cd /home/spark-3.3.1-bin-hadoop3/conf
# 拷贝模板文件
cp spark-defaults.conf.template spark-defaults.conf
cp spark-env.sh.template spark-env.sh

3.1 修改 spark-defaults.conf

vim spark-defaults.conf
# 添加如下内容
spark.master                     spark://hp5:7077
spark.serializer                 org.apache.spark.serializer.KryoSerializer
spark.driver.memory              512m
spark.executor.memory            512m

3.2 修改spark-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_181
export HADOOP_HOME=/home/hadoop-3.3.2
export HADOOP_CONF_DIR=/home/hadoop-3.3.2/etc/hadoop
export YARN_CONF_DIR=/home/hadoop-3.3.2/etc/hadoop
export SPARK_DIST_CLASSPATH=$(/home/spark-3.3.1-bin-hadoop3/bin/hadoop classpath)
export SPARK_MASTER_HOST=hp5
export SPARK_MASTER_PORT=7077

3.3 修改slaves文件

vi slaves
# 修改为如下内容
hp5
hp6
hp7

四. 将spark目录分发到其他节点

cd /home
scp -r ./spark-3.3.1-bin-hadoop3/ root@hp6:/home/
scp -r ./spark-3.3.1-bin-hadoop3/ root@hp7:/home/

五. 启动Spark集群

# 配置了环境变量,可以在任意目录执行启动命令
cd /home/spark-3.3.1-bin-hadoop3/sbin
./start-all.sh

image.png

端口是8081
image.png

六. 在web界面查看Spark UI

在Linux系统上浏览器上查看Spark UI:
http://10.31.1.119:8081/
image.png

七. 测试

运行SparkPI进行案例测

spark-submit --class org.apache.spark.examples.SparkPi \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar 10

image.png

八. Yarn模式

上面默认是用standalone模式启动的服务,如果想要把资源调度交给yarn来做,则需要配置为yarn模式:

  1. 需要启动的服务:hdfs服务、yarn服务
  2. 需要关闭 Standalone 对应的服务(即集群中的Master、Worker进程)。

在Yarn模式中,Spark应用程序有两种运行模式:

  1. yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立2. 即看到app的输出
    yarn-cluster:Driver程序运行在由RM启动的 AppMaster中,适用于生产环境

二者的主要区别:
Driver在哪里!

8.1 启动hdfs、yarn服务

此处略过

8.2 修改Hadoop中的 yarn-site.xml 配置

在$HADOOP_HOME/etc/hadoop/yarn-site.xml中增加如下配置,然后分发到集群其他节点,重启yarn 服务。

# 打开yarn-site.xml文件
vi /home/hadoop-3.3.2/etc/hadoop/yarn-site.xml
<property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
</property>
<property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>

说明:

  1. yarn.nodemanager.pmem-check-enabled : 是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
  2. yarn.nodemanager.vmem-check-enabled :是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。

8.3 向hdfs上传spark纯净版jar包

cd /home/software
wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.3.1/spark-3.3.1-bin-without-hadoop.tgz --no-check-certificate

tar -zxvf spark-3.3.1-bin-without-hadoop.tgz

上传spark纯净版jar包到hdfs

hdfs dfs -mkdir /spark-jars
hdfs dfs -put /home/software/spark-3.3.1-bin-without-hadoop/jars/* /spark-jars

说明:

  1. Spark任务资源分配由Yarn来调度,该任务有可能被分配到集群的任何一个节点。所以需要将spark的依赖上传到hdfs集群路径,这样集群中任何一个节点都能获取到,依此达到Spark集群的HA。
  2. Spark纯净版jar包,不包含hadoop和hive相关依赖,避免和后续安装的Hive出现兼容性问题。

8.4 Spark on Yarn测试

记得,先把Master与worker进程停掉,否则会走standalone模式。

# 停掉standalone模式的服务
stop-all.sh

8.4.1 client运行模式

这种模式可以看见:程序计算的结果(即可以看见计算返回的结果)!

# client
spark-submit --master yarn \
--deploy-mode client \
--class org.apache.spark.examples.SparkPi \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar 20

image.png

image.png

8.4.2 cluster运行模式

这种模式就看不见最终的结果!

# cluster
spark-submit --master yarn \
--deploy-mode cluster \
--class org.apache.spark.examples.SparkPi \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar 20

image.png
image.png

参考:

  1. https://blog.csdn.net/u011109589/article/details/124855282

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

笔记本电脑自带录屏吗?笔记本电脑怎么录屏

​现如今&#xff0c;电脑屏幕录制功能越来越成为我们生活中不可或缺的一部分。比如网课录制、游戏画面、软件教程等。很多小伙伴可能知道笔记本电脑拥有录屏功能&#xff0c;但是却不知道笔记本电脑怎么录屏。下面就让小编详细介绍一下&#xff0c;笔记本电脑录屏的方法。 一&…

骨传导耳机的利与弊有哪些?骨传导耳机到底好不好?

耳机大家应该都知道&#xff0c;但是骨传导耳机&#xff0c;大家或许就有点陌生了。目前网上也有很多关于骨传导耳机的科普和盘点&#xff0c;但是个人认为都过于零碎不明了&#xff0c;而我今天就用我玩骨传导耳机好几年的经验和知识&#xff0c;以骨传导用户的角度写了这篇文…

接口幂等设计

文章目录如何设计幂等幂等设计的基本流程建防重表根据状态机分布式锁获取 token如何设计幂等 既然这么多场景需要考虑幂等&#xff0c;那我们如何设计幂等呢&#xff1f; 幂等意味着 一条请求的唯一性。不管是你哪个方案去设计幂等&#xff0c;都需要一个全局唯一的ID&#xf…

【第五部分 | JS WebAPI】2:DOM 元素操作

目录 1-1 改变元素内容&#xff08;去除html和空格换行&#xff09; 1-2 改变元素内容&#xff08;保留html和空格换行 用的最多&#xff09; 1-3 获取元素的内容 [ 更多其它可操作的元素属性 ] 2-1 修改元素的属性 2-2 修改表单元素属性 2-3 使用this指向函数调用者 3…

day35 XSS跨站反射存储DOM盲打劫持

前言 #知识点&#xff1a; 1、XSS跨站-原理&攻击&分类等 2、XSS跨站-反射型&存储型&DOM型等 3、XSS跨站-攻击手法&劫持&盗取凭据等 4、XSS跨站-攻击项目&XSS平台&Beef-XSS 1、原理 指攻击者利用网站程序对用户输入过滤不足&#xff0c;输…

redis<二>spring使用redis,配置远程登录和密码

使用默认的redis配置 改pom, 加入redis依赖,版本可以不需要写&#xff0c;由spring的父工程控制。 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <!--整合redis--> <dependency><groupId>…

Spring Bean基础-4

1. 定义Bean: 什么是BeanDefinition? 什么是BeanDefinition?BeanDefinition 是 Spring Framework 中定义 Bean 的配置元信息接口, 包含: Bean 的类名Bean 行为配置元素, 如作用域、自动绑定的模式、生命周期回调等其他 Bean 引用, 又可称作合作者 (Collaborators) 或者依赖 …

Feign的简介及使用

一、Feign简介 Feign是一个声明式的http客户端&#xff0c;官方地址:https://github.com/OpenFeign/feign 其作用就是帮助我们优雅的实现http请求的发送&#xff0c;解决代码可读性差&#xff0c;编程体验不统一、参数复杂URL难以维护的问题。 二、使用Feign的步骤 1.引入依赖…

网络原理(Java网络编程)

1.局域网和广域网 局域网LAN: 即 Local Area Network,简称LAN. 局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的.局域网一般可以由交换机或路由器组建. 广域网WAN: 即 Wide Area Network,简称WAN. 广域网是将多个局域网…

【28-业务开发-基础业务-属性管理-SKU和SPU基本概念-SKU和SPU关联关系-属性实体之间的关联关系-批量菜单创建】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了&#xff0c;请点击这里&#xff01;】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

力扣(LeetCode)32. 最长有效括号(C++)

栈模拟 合法的括号序列满足两条性质&#xff1a; 1.左括号数等于右括号数 2.任意前缀里&#xff0c;左括号数大于等于右括号数。 括号匹配和栈很般配&#xff0c;遇到左括号&#xff0c;下标入栈&#xff0c;遇到右括号&#xff0c;弹栈匹配。 这题的前缀里有两种不合法&…

【LSTM回归预测】attention机制LSTM时间序列回归预测【含Matlab源码 1992期】

⛄一、attention机制LSTM预测 1 总体框架 数字货币预测模型分为两部分&#xff0c;由LSTM模块和Attention模块组成。 2 LSTM模块 长短期记忆网络&#xff08;LSTM&#xff09;是一种特殊的递归神经网络&#xff08;RNN&#xff09;模型&#xff0c;是为了解决RNN模型梯度消失…

【Codeforces Round #835 (Div. 4)】A——G题解

文章目录A Medium Number题意思路代码B Atillas Favorite Problem题意思路代码C Advantage题意思路代码D Challenging Valleys题意思路代码E Binary Inversions题意思路代码F Quests题意思路代码G SlavicGs Favorite Problem题意思路代码A Medium Number 题意 三个数&#xf…

窗口-视口转换(详细)

在QPainter中&#xff0c;绘制图像使用逻辑坐标绘制&#xff0c;然后再转化为绘图设备的物理坐标。 窗口&#xff08;window&#xff09;&#xff1a;表示逻辑坐标下的相同矩形视口&#xff08;viewport&#xff09;&#xff1a;表示物理坐标下的指定的一个任意矩形默认情况&am…

中国互联网大会天翼云展区大揭秘!

11月15日&#xff0c;由工业和信息化部、深圳市人民政府主办&#xff0c;中国互联网协会、广东省通信管理局、深圳市工业和信息化局等单位承办的2022&#xff08;第二十一届&#xff09;中国互联网大会在深圳开幕。本届大会以“发展数字经济 促进数字文明”为主题&#xff0c;聚…

单商户商城系统功能拆解34—应用中心—分销应用

单商户商城系统&#xff0c;也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法&#xff0c;例如拼团&#xff0c;秒杀&#xff0c;砍价&#xff0c;包邮…

在IDEA中搭建Spring5.2.x版本源码(~附带完整过程和图示~)

1.开发环境 JDK8IntelliJ IDEA 2019.1.4 gradle 5.6.4git 2.33.0 2.操作步骤 下载并安装git 进入https://git-scm.com/downloads&#xff0c;下载对应操作系统的git版本一直点击next安装即可记得配置环境变量 获取Spring源码 使用clone的方式将源码拉取到本地&#xff0c;方便…

Java递归查询树形结构(详解)

一.数据准备 数据库表结构如下所示&#xff0c; INSERT INTO jg_user.com_type(type_id, parent_id, type_name) VALUES (1, 0, 合伙企业); INSERT INTO jg_user.com_type(type_id, parent_id, type_name) VALUES (2, 0, 有限公司); INSERT INTO jg_user.com_type(type_id, p…

力扣(LeetCode)878. 第 N 个神奇数字(C++)

二分查找数论 数论知识——辗转相除法、容斥原理。 辗转相除求最大公约数&#xff0c;两数相乘除以最大公约数&#xff0c;就是最小公倍数。 容斥原理求最多不重复元素&#xff0c;最大不重复面积。 <小学数奥> 从数据范围里&#xff0c;用容斥原理找 a/ba/ba/b 的倍数个…

Pytorch 下 TensorboardX 使用

这里引用一下在其他地方看到的一些话&#xff1a; tensorboard做为Tensorflow中强大的可视化工具&#xff0c;已经被普遍使用。 但针对其余框架&#xff0c;例如Pytorch&#xff0c;以前一直没有这么好的可视化工具可用&#xff0c;PyTorch框架自己的可视化工具是Visdom&…