大数据Spark Standalone集群 1

简介: 大数据Spark Standalone集群

1 Standalone 架构

Standalone模式是Spark自带的一种集群模式,不同于前面本地模式启动多个进程来模拟集群的环境Standalone模式是真实地在多个机器之间搭建Spark集群的环境,完全可以利用该模式搭 建多机器集群,用于实际的大数据处理。


Standalone集群使用了分布式计算中的master-slave模型,master是集群中含有Master进程的

节点,slave是集群中的Worker节点含有Executor进程。

a304705e66f5481681291ecc9a6490bf.png

Spark Standalone集群,类似Hadoop YARN,管理集群资源和调度资源:


主节点Master:

管理整个集群资源,接收提交应用,分配资源给每个应用,运行Task任务

从节点Workers:

管理每个机器的资源,分配对应的资源来运行Task;

每个从节点分配资源信息给Worker管理,资源信息包含内存Memory和CPU Cores核数

历史服务器HistoryServer:

Spark Application运行完成以后,保存事件日志数据至HDFS,启动HistoryServer可以查

看应用运行相关信息。

e8d4363a3ca74386aca3a315de7c9122.png

2 配置、部署及启动

Standalone集群安装服务规划与资源配置:

官方文档:http://spark.apache.org/docs/2.4.5/spark-standalone.html

备注说明:下面操作,如特别说明,统一在node01.oldlu.cn机器上操作。

2.1 解压、环境变量

解压Spark编译安装包至【/export/server/】目录下,进入【conf】目录,配置环境变量。

## 解压软件包
tar -zxf /export/software/spark-2.4.5-bin-cdh5.16.2-2.11.tgz -C /export/server/
## 创建软连接,方便后期升级
ln -s /export/server/spark-2.4.5-bin-cdh5.16.2-2.11 /export/server/spark
## 进入配置目录
cd /export/server/spark/conf
## 修改配置文件名称
mv spark-env.sh.template spark-env.sh
vim spark-env.sh
## 添加内容如下:
JAVA_HOME=/export/server/jdk
SCALA_HOME=/export/server/scala
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop

2.2 Workers主机名

将【$SPARK_HOME/conf/slaves.template】名称命名为【slaves】,填写从节点名称。

## 进入配置目录
cd /export/server/spark/conf
## 修改配置文件名称
mv slaves.template slaves
vim slaves
## 内容如下:
node1.oldlu.cn
node2.oldlu.cn
node3.oldlu.cn

2.3 配置Master、Workers、HistoryServer

在配置文件$SPARK_HOME/conf/spark-env.sh添加如下内容

SPARK_MASTER_HOST=node1.oldlu.cn
SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=1g
SPARK_WORKER_PORT=7078
SPARK_WORKER_WEBUI_PORT=8081
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1.oldlu.cn:8020/spark/eventLogs/
-Dspark.history.fs.cleaner.enabled=true"

2.4 创建EventLogs存储目录

启动HDFS服务,创建应用运行事件日志目录,命令如下:

hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
hdfs dfs -mkdir -p /spark/eventLogs/

2.5 配置Spark应用保存EventLogs

将【$SPARK_HOME/conf/spark-defaults.conf.template】名称命名为【spark-defaults.conf】,填写如下内容:

## 进入配置目录
cd /export/server/spark/conf
## 修改配置文件名称
mv spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf
## 添加内容如下:
spark.eventLog.enabled true
spark.eventLog.dir hdfs://node1.oldlu.cn:8020/spark/eventLogs/
spark.eventLog.compress true

2.6 设置日志级别

将【$SPARK_HOME/conf/log4j.properties.template】名称命名为【log4j.properties】,修改

级别为警告WARN。

## 进入目录
cd /export/server/spark/conf
## 修改日志属性配置文件名称
mv log4j.properties.template log4j.properties
## 改变日志级别
vim log4j.properties

修改内容如下:

2.7 分发到集群所有机器

将配置好的将 Spark 安装包分发给集群中其它机器,命令如下:

cd /export/server/
scp -r spark-2.4.5-bin-cdh5.16.2-2.11 root@node2.oldlu.cn:$PWD
scp -r spark-2.4.5-bin-cdh5.16.2-2.11 root@ node3.oldlu.cn:$PWD
## 远程连接到node2.oldlu.cn和node3.oldlu.cn机器,创建软连接
ln -s /export/server/spark-2.4.5-bin-cdh5.16.2-2.11 /export/server/spark

2.8 启动服务进程

在Master节点node1.oldlu.cn上启动,进入$SPARK_HOME,必须配置主节点到所有从节点的

SSH无密钥登录,集群各个机器时间同步。

  • 主节点Master启动命令
/export/server/spark/sbin/start-master.sh

WEB UI页面地址:http://node1.oldlu.cn:8080

  • 从节点Workers启动命令:
/export/server/spark/sbin/start-slaves.sh

查看Master主节点WEB UI界面:

可以看出,配置了3个Worker进程实例,每个Worker实例为1核1GB内存,总共是3核 3GB 内

存。目前显示的Worker资源都是空闲的,当向Spark集群提交应用之后,Spark就会分配相应的资

源给程序使用,可以在该页面看到资源的使用情况。

  • 历史服务器HistoryServer:
/export/server/spark/sbin/start-history-server.sh

http://bigdata-cdh01.oldlu.cn:18080/

2.9 提交运行圆周率

将上述运行在Local Mode的圆周率PI程序,运行在Standalone集群上,修改【–master】地址

为Standalone集群地址:spark://node1.oldlu.cn:7077,具体命令如下:

SPARK_HOME=/export/server/spark
${SPARK_HOME}/bin/spark-submit \
--master spark://node1.oldlu.cn:7077 \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.11-2.4.5.jar \
10

查看Master主节点WEB UI界面:

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
11月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
10月前
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
538 0
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
651 79
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
存储 分布式计算 调度
Spark Master HA 主从切换过程不会影响到集群已有作业的运行, 为什么?
Spark Master 的高可用性(HA)机制确保主节点故障时,备用主节点能无缝接管集群管理,保障稳定运行。关键在于: 1. **Driver 和 Executor 独立**:任务执行不依赖 Master。 2. **应用状态保持**:备用 Master 通过 ZooKeeper 恢复集群状态。 3. **ZooKeeper 协调**:快速选举新 Master 并同步状态。 4. **容错机制**:任务可在其他 Executor 上重新调度。 这些特性保证了集群在 Master 故障时仍能正常运行。
|
SQL 存储 大数据
单机顶集群的大数据技术来了
大数据时代,分布式数仓如MPP成为热门技术,但其高昂的成本让人望而却步。对于多数任务,数据量并未达到PB级,单体数据库即可胜任。然而,由于SQL语法的局限性和计算任务的复杂性,分布式解决方案显得更为必要。esProc SPL作为一种开源轻量级计算引擎,通过高效的算法和存储机制,实现了单机性能超越集群的效果,为低成本、高效能的数据处理提供了新选择。
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
832 0