【快速上手】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

相关推荐
weixin_307779133 小时前
AWS EMR上的Spark日志实时搜索关键指标网页呈现的设计和实现
大数据·python·spark·云计算·aws
一张假钞5 小时前
Spark的基本概念
大数据·分布式·spark
一张假钞5 小时前
Spark On Yarn External Shuffle Service
大数据·分布式·spark
Elastic 中国社区官方博客19 小时前
使用真实 Elasticsearch 进行高级集成测试
大数据·数据库·elasticsearch·搜索引擎·全文检索·jenkins·集成测试
一张假钞19 小时前
Spark SQL读写Hive Table部署
hive·sql·spark
好记性+烂笔头19 小时前
4 Spark Streaming
大数据·ajax·spark
好记性+烂笔头1 天前
3 Flink 运行架构
大数据·架构·flink
字节侠1 天前
Flink2支持提交StreamGraph到Flink集群
大数据·flink·streamgraph·flink2·jobgraph
好记性+烂笔头1 天前
4 Hadoop 面试真题
大数据·hadoop·面试