【spark的集群模式搭建】spark集群之Yarn集群模式搭建(清晰明了的搭建流程)

文章目录

    • 1、使用Anaconda部署Python
    • 2、上传、解压、重命名
    • 3、创建软连接(如果在Standalone模式中创建有就删除)
    • 4、配置spark环境变量
    • 5、修改spark-env.sh配置文件
    • 6、修改spark-defaults.conf 配置文件
    • 7、修改log4j.properties配置文件
    • 8、上传spark jar包
    • 9、修改yarn-site.xml
    • 10、分发
    • 11、启动


搭建Standalone模式 或者 将Standalone模式换成Yarn模式的小伙伴可以参考:
【spark的集群模式搭建】Standalone集群模式的搭建(简单明了的安装教程)

spark 和 Anaconda 资源下载链接:
spark-3.1.2 和 Anaconda3 的安装包下载

1、使用Anaconda部署Python

使用anaconda的好处:具有资源环境隔离功能,方便基于不同版本不同环境进行测试开发

[图片]

# 上传
cd /opt/modules
# 同步给其他两个节点
xsync.sh /opt/modules/Anaconda3-2021.05-Linux-x86_64.sh# 以下操作在三个节点都需要进行# 添加执行权限
chmod u+x Anaconda3-2021.05-Linux-x86_64.sh
# 执行
./Anaconda3-2021.05-Linux-x86_64.sh# 过程
#第一次:【直接回车,然后按q】Please, press ENTER to continue>>>
#第二次:【输入yes】Do you accept the license terms? [yes|no][no] >>> yes
#第三次:【输入解压路径:/opt/installs/anaconda3】[/root/anaconda3] >>> /opt/installs/anaconda3#第四次:【输入yes,是否在用户的.bashrc文件中初始化
Anaconda3的相关内容】Do you wish the installer to initialize  Anaconda3by running conda init? [yes|no][no] >>> yes# 配置环境变量
vi /etc/profile
# 添加以下内容
# Anaconda Home
export ANACONDA_HOME=/opt/installs/anaconda3
export PATH=$PATH:$ANACONDA_HOME/bin
# 刷新环境变量
source /etc/profile
# 创建python3的软连接
ln -s /opt/installs/anaconda3/bin/python3 /usr/bin/python3
# 验证
echo $ANACONDA_HOME

2、上传、解压、重命名

# 上传、解压、重命名
cd /opt/modules/
tar -zxf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/installs
cd /opt/installs
mv spark-3.1.2-bin-hadoop3.2 spark-yarn

3、创建软连接(如果在Standalone模式中创建有就删除)

# 创建软连接(如果在Standalone模式中创建有就删除)
rm -rf /opt/installs/spark
ln -s /opt/installs/spark-yarn /opt/installs/spark

4、配置spark环境变量

export SPARK_HOME=/opt/installs/spark
export PATH=$SPARK_HOME/bin:$PATH

5、修改spark-env.sh配置文件

cd /opt/installs/spark/conf
mv spark-env.sh.template spark-env.sh
vim /opt/installs/spark/conf/spark-env.sh
# 添加如下内容
export JAVA_HOME=/opt/installs/jdk
export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop
export YARN_CONF_DIR=/opt/installs/hadoop/etc/hadoop
## 历史日志服务器
export SPARK_DAEMON_MEMORY=1g
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node01:9820/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"

6、修改spark-defaults.conf 配置文件

cd /opt/installs/spark/conf
mv spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf
## 添加内容:
spark.eventLog.enabled           true
spark.eventLog.dir           hdfs://node01:9820/spark/eventLogs
spark.eventLog.compress           true
spark.yarn.historyServer.address node01:18080
spark.yarn.jars           hdfs://node01:9820/spark/jars/*

7、修改log4j.properties配置文件

# 重命名
mv log4j.properties.template log4j.properties# 修改级别为WARN,打印日志少一点。
# 19行:修改日志级别为WARN
log4j.rootCategory=WARN, console

8、上传spark jar包

#因为YARN中运行Spark,需要用到Spark的一些类和方法
#如果不上传到HDFS,每次运行YARN都要上传一次,比较慢
#所以自己手动上传一次,以后每次YARN直接读取即可
hdfs dfs -mkdir -p /spark/jars/
hdfs dfs -put /opt/installs/spark/jars/* /spark/jars/

9、修改yarn-site.xml

cd /opt/installs/hadoop/etc/hadoop
检查以下内置少什么,就配什么。
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property><!-- 历史日志在HDFS保存的时间,单位是秒 -->
<!-- 默认的是-1,表示永久保存 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property><property><name>yarn.log.server.url</name><value>http://bigdata01:19888/jobhistory/logs</value>
</property><!-- 缺少以下这些 -->
<!-- 关闭yarn内存检查 -->
<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property>
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>

10、分发

分发脚本编写可以参考文章:
大数据集群搭建以及使用过程中几个实用的shell脚本

xsync.sh yarn-site.xml
xsync.sh /opt/installs/spark-yarn# 软链接也分发一下:
xsync.sh /opt/installs/spark

11、启动

# 启动yarn
start-yarn.sh
# 启动MR的JobHistoryServer:19888
mapred --daemon start historyserver
# 启动Spark的HistoryServer:18080
/opt/installs/spark/sbin/start-history-server.sh

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

h2 数据库命令行工具用法汇总

背景 h2 数据是个短小精悍的嵌入式数据库&#xff0c;纯 Java 实现&#xff0c;且非常小。 我们有一个比较底层的应用中就是用了 h2 数据库来存储应用的基础信息&#xff0c;这个数据库说起来比较容易。 本文总结实际项目中涉及到的 h2 的相关技术及问题。 控制台工具用法 …

再探“构造函数”(2)友元and内部类

文章目录 一. 友元‘全局函数’作友元‘成员函数’作友元‘类‘作友元 内部类 一. 友元 何时会用到友元呢&#xff1f; 当想让&#xff08;类外面的某个函数/其它的类&#xff09;访问 某个类里面的(私有或保护的)内容时&#xff0c;可以选择使用友元。 友元提供了一种突破&a…

告别枯燥数据!20种色彩缤纷的数据可视化图表任你选,轻松应对各种场景

我们每天都在和各种数据打交道&#xff0c;单纯的一串串数字&#xff0c;看着就头疼。如果数据不再是枯燥的表格&#xff0c;而是变成了色彩鲜艳的柱状图、线条流畅的折线图&#xff0c;或者是直观易懂的饼图&#xff0c;让用户一眼Get到重点&#xff0c;让老板为你的汇报方案鼓…

C++和OpenGL实现3D游戏编程【连载17】——着色器进阶(附源码)

🔥C++和OpenGL实现3D游戏编程【目录】 1、本节要实现的内容 在前面着色器初步一节我们了解了着色器的一些初步知识,通过顶点着色器和片段着色器显示出了一个彩色的立方体。我们这节课就来了解一些在着色器中显示纹理等一系列实用操作,同时了解一些进阶的图像渲染技术,比如…

散热器为什么要加风扇:【图文讲解】

前面我们聊到了TEC散热器中&#xff0c;TEC的工作原理&#xff0c;也大概聊了一下热的整个传递过程。TEC散热器在工作的时候&#xff0c;会产生冷热两个端面&#xff0c;核心工作原理是通电后TEC把冷端的热量搬移到热端。这样把TEC散热器的冷端放置在需要散热的器件表面&#x…

HO-XGBoost河马算法优化极限梯度提升树多变量回归预测(Matlab)

HO-XGBoost河马算法优化极限梯度提升树多变量回归预测&#xff08;Matlab&#xff09; 目录 HO-XGBoost河马算法优化极限梯度提升树多变量回归预测&#xff08;Matlab&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现HO-XGBoost多变量回归预测&…

Zookeeper 简介 | 特点 | 数据存储

1、简介 zk就是一个分布式文件系统&#xff0c;不过存储数据的量极小。 1. zookeeper是一个为分布式应用程序提供的一个分布式开源协调服务框架。是Google的Chubby的一个开源实现&#xff0c;是Hadoop和Hbase的重要组件。主要用于解决分布式集群中应用系统的一致性问题。 2. 提…

[5] 一篇文章教会你如何实现端口敲门

文章目录 1. 描述2. 基本原理3. 优点4. 缺点5. 实现过程6. firewall-cmd命令介绍7. 写到最后 1. 描述 端口敲门技术(Prot Knocking)技术&#xff0c;用于通过一系列预定的端口来动态地打开防火墙或访问特定服务甚至执行一小段任务&#xff0c;用于增强系统地安全性&#xff0c;…

TensorRT-LLM的k8s弹性伸缩部署方案

Scaling LLMs with NVIDIA Triton and NVIDIA TensorRT-LLM Using Kubernetes | NVIDIA Technical Blog 一共涉及4个k8s组件&#xff1a; 1. Deployment&#xff1a;跑起来N个pod&#xff1b;指定NVIDIA官方的triton&trt-llm的docker image&#xff0c;指定好model放在哪个…

Chainlit集成LlamaIndex实现知识库高级检索(HyDE查询重写转换)

检索原理 HyDEQueryTransform 是一种用于信息检索系统中的查询转换技术&#xff0c;它基于假设文档嵌入&#xff08;Hypothetical Document Embeddings&#xff0c;简称HyDE&#xff09;的概念&#xff0c;旨在通过生成假设文档来改善查询与文档之间的语义对齐&#xff0c;进而…

使用Markdown编写适用于GitHub的README.md文件的目录结构

文章目录 [toc] 顶部1. 使用[TOC]自动生成2. VSCode中的插件3. 手搓目录目录相关资料本文相关代码一、概述1.1 基本概念1.2 两种处理模型&#xff08;1&#xff09;微批处理&#xff08;2&#xff09;持续处理 1.3 Structured Streaming和Spark SQL、Spark Streaming关系 二、编…

[ shell 脚本实战篇 ] 编写恶意程序实现需求(恶意程序A监测特定目录B出现特定文件C执行恶意操作D-windows)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

攻克数字工具(GKData)在推动 AI 发展中的关键作用

摘要&#xff1a;本文深入探讨了攻克数字工具&#xff08;GKData&#xff09;对人工智能&#xff08;AI&#xff09;发展的重要推动作用&#xff0c;同时阐述了人工智能技术的发展历程、现状、应用领域和前景。分析了 GKData 在数据处理、模型训练与优化、算法创新等方面为 AI …

Golang文件操作

1.文件介绍&#xff1a;文件是数据源&#xff0c;主要作用是保存数据 2.文件在程序中是以流的形式来操作的 对文件的操作主要用File(os包)结构体来实现 文件的基本操作 1&#xff09;打开一个文件进行读操作&#xff1a; os.Open(name string)(*File,error) 2&#xff09;关…

WebSocket的理解与应用

WebSocket的理解与应用 一、是什么二、特点1、全双工2、二进制帧3、协议名4、握手5、优点 三、应用场景 一、是什么 WebSocket&#xff0c;是一种网络传输协议&#xff0c;位于OSI模型的应用层。可在单个TCP连接上进行全双工通信&#xff0c;能更好的节省服务器资源和带宽并达…

【补题/atccoder】Toyota Programming Contest 2024#7(AtCoder Beginner Contest 362)

A、买笔 思路&#xff1a; 输入红绿蓝三只笔价格&#xff0c;再输入不喜欢颜色&#xff0c; 输出除不喜欢颜色笔以外最低价格 代码如下&#xff1a; #include <iostream> #include <algorithm> using namespace std;int main() {int r, g, b;cin >> r >&…

【含开题报告+文档+源码】基于Web的房地产销售网站的设计与实现

开题报告 随着经济的发展和城市化进程的加速&#xff0c;房地产市场逐渐成为人们关注的焦点。然而&#xff0c;传统的房地产销售模式存在很多问题&#xff0c;如信息不透明、交易过程繁琐、无法满足个性化需求等。这些问题不仅影响了消费者的购房体验&#xff0c;也制约了房地…

网络层3——IP数据报转发的过程

目录 一、基于终点的转发 1、理解 2、IP数据报转发过程 二、最长前缀匹配 1、理解 2、主机路由 3、默认路由 三、二叉线索查找 一、基于终点的转发 1、理解 理解什么叫终点转发 IP数据报的传递&#xff0c;交给路由器后 可不可以做到直接发送给目的主机呢&#xff1f;…

【LwIP源码学习4】主线程tcpip_thread

前言 本文对lwip的主要线程tcpip_thread进行分析。 正文 tcpip_thread是lwip最主要的线程&#xff0c;其创建在tcpip_init函数中 sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO);tcpip_init函数被TCPIP_Init函数调用。…

前端的导入导出「CommonJS」「ES Module」模块化规范

模块化开发有助于我们将代码进行拆分&#xff0c;便于开发和维护&#xff0c;但如果不清楚模块化规范&#xff0c;就会在开发时不知道该用 require 还是 import&#xff0c;导出时该用 export 还是 module.exports 参考博主文章