【快速上手】pyspark 集群环境下的搭建(Yarn模式)

目录

前言:

一、安装步骤

安装前准备

1.第一步:安装python

2.第二步:在bigdata01上安装spark

3.第三步:同步bigdata01中的spark到bigdata02和03上

二、启动

三、可打开yarn界面查看任务

前言:


上一篇介绍的是Spark的程序运行在standalone模式,这篇是Yarn模式!!!

为什么要将Spark的程序运行在YARN上,不运行在自带的 Standalone集群上?

  • 统一化资源管理

Standalone是Spark专用的资源管理集群,只能用于运行 Spark程序

YARN是功能的分布式资源管理平台,可以运行各种分布式程 序:MR、Tez、Spark、Flink

工作中硬件集群只有一套,只能选择一个平台来管理,从整个技术架构来说选择YARN更合适

  • YARN调度机制更加完善和成熟

支持动态资源分配以及多种调度机制,比如容量调度、公平调度。


一、安装步骤

安装前准备

  1. 首先准备至少三台服务器 ------ 我的三台服务器分别是:bigdata01 bigdata02 bigdata03
  2. 各个服务器上都要安装jdk 、hadoop(yarn)
  3. 在bigdata01服务器上有同步的脚本:xsync.sh(不是必须的)

我的所有安装包放在/opt/modules下,解压在/opt/installs下

1.第一步:安装python

通过Anaconda 安装 ,因为这个软件不仅有python还有其他的功能,比单纯安装python功能要强大。分别在bigdata01 bigdata02 bigdata03上安装Anaconda

请看上一篇standalone模式安装Anaconda的步骤,安装步骤一模一样,一步一步安装即可。

2.第二步:在bigdata01上安装spark

bash 复制代码
#1.上传解压安装:上传安装包到/opt/modules
cd /opt/modules/
tar -zxf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/installs
#2.重命名
cd /opt/installs
mv spark-3.1.2-bin-hadoop3.2 spark-yarn
# 3.构建软连接(这一步可有可无)
ln -s /opt/installs/spark-yarn /opt/installs/spark

④在HDFS上创建程序日志存储目录

bash 复制代码
# 第一台机器启动HDFS
start-dfs.sh
# 创建程序运行日志的存储目录
hdfs dfs -mkdir -p /spark/eventLogs/

注意:!!!首先如果没有启动hdfs,需要启动一下

⑤修改配置文件

修改spark-env.sh配置文件:

bash 复制代码
cd /opt/installs/spark/conf
mv spark-env.sh.template spark-env.sh
vim /opt/installs/spark/conf/spark-env.sh

22行左右设置JAVA安装目录、HADOOP和YARN配置文件目录

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://bigdata01:9820/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"

修改spark-defaults.conf 文件:

bash 复制代码
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://bigdata01:9820/spark/eventLogs

spark.eventLog.compress true

spark.yarn.historyServer.address bigdata01:18080

spark.yarn.jars hdfs://bigdata01:9820/spark/jars/*

修改log4j.properties:

bash 复制代码
mv log4j.properties.template log4j.properties
vim log4j.properties

19行:修改日志级别为WARN

log4j.rootCategory=WARN, console

上传spark jar包:

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

修改yarn-site.xml:

bash 复制代码
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>

3.第三步:同步bigdata01中的spark到bigdata02和03上

  • 如果你bigdata01上有同步脚本,直接执行下面命令即可。
bash 复制代码
# 分发一下yarn-site.xml
xsync.sh yarn-site.xml
# 将第一台机器的spark-yarn分发到第二台和第三台
xsync.sh /opt/installs/spark-yarn
# 超链接也分发一下
xsync.sh /opt/installs/spark
  • 如果没有,需要按照上面bigdata01的步骤在bigdata02 bigdata03上再安装一遍。

二、启动

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

三、可打开yarn界面查看任务

bigdata01:8088

相关推荐
Data跳动4 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc1114 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
lucky_syq5 小时前
Saprk和Flink的区别
大数据·flink
lucky_syq5 小时前
流式处理,为什么Flink比Spark Streaming好?
大数据·flink·spark
袋鼠云数栈5 小时前
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
大数据
小白学大数据6 小时前
如何使用Selenium处理JavaScript动态加载的内容?
大数据·javascript·爬虫·selenium·测试工具
15年网络推广青哥6 小时前
国际抖音TikTok矩阵运营的关键要素有哪些?
大数据·人工智能·矩阵
节点。csn7 小时前
Hadoop yarn安装
大数据·hadoop·分布式
arnold667 小时前
探索 ElasticSearch:性能优化之道
大数据·elasticsearch·性能优化
NiNg_1_2349 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式