当前位置: 首页 > news >正文

如何搭建spark yarn 模式的集群

搭建Spark Yarn模式集群的步骤

1. 安装并配置Hadoop

在搭建Spark YARN模式之前,需要先安装和配置Hadoop集群。确保Hadoop已经正常运行,并能够通过start-dfs.shstart-yarn.sh成功启动NameNode、DataNode以及ResourceManager等服务1

2. 下载并解压Spark

下载适合当前系统的Spark版本,并将其解压到指定路径。例如:

 

Bash

tar -zxvf spark-3.x.x-bin-hadoop3.x.tgz -C /opt/spark/

3. 修改环境变量

编辑.bashrc或者全局环境变量文件,添加Spark的相关路径:

 

Bash

export SPARK_HOME=/opt/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin source ~/.bashrc

4. 配置spark-env.sh

进入Spark的配置目录,找到spark-env.sh.template模板文件并重命名为spark-env.sh。随后对其进行必要的修改:

 

Bash

cd $SPARK_HOME/conf/ cp spark-env.sh.template spark-env.sh vim spark-env.sh

以下是常见的配置项:

  • JAVA_HOME: 设置Java的安装路径。
  • HADOOP_CONF_DIR: 指向Hadoop的配置目录。
  • 示例内容如下:
 

Bash

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export HADOOP_CONF_DIR=/etc/hadoop/conf

5. 配置spark-defaults.conf

同样,在conf/目录下复制spark-defaults.conf.template为实际使用的spark-defaults.conf文件。此文件用于定义默认参数,特别是针对YARN模式的关键设置:

 

Bash

cp spark-defaults.conf.template spark-defaults.conf vim spark-defaults.conf

常见配置包括但不限于以下几项:

  • spark.master=yarn: 明确指出使用YARN作为资源管理器。
  • spark.submit.deployMode=cluster/client: 可选客户端(client)或集群(cluster)模式提交作业。
  • spark.executor.memory: 调整Executor内存大小。
  • spark.driver.memory: 设定Driver进程所需的内存。
  • 示例内容如下:
 

properties

spark.master yarn spark.submit.deployMode cluster spark.executor.instances 3 spark.executor.cores 2 spark.executor.memory 2g

6. 配置日志级别(log4j.properties)

为了减少不必要的调试信息干扰,可调整日志记录等级至WARN或其他更高级别:

 

Bash

cp log4j.properties.template log4j.properties vim log4j.properties

将根Logger的日志级别改为WARN即可满足大多数需求:

 

properties

log4j.rootCategory=WARN, console

7. 提交测试任务验证

完成以上所有准备工作之后,可以通过简单的命令行操作来检验整个架构是否工作正常。比如执行内置示例程序计算圆周率近似值:

 

Bash

$SPARK_HOME/bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ /examples/jars/spark-examples*.jar \ 100

8. 启动历史服务器(Spark History Server)

如果希望长期保存已完成的任务数据,则需额外启用HistoryServer功能。这一步骤涉及更新spark-history-server.sh脚本中的某些选项,同时确保已挂载共享存储位置供其读取事件日志文件3


注意事项

  • 网络连通性: 所有机群成员之间应具备无障碍通信能力;否则可能引发各种异常状况。
  • 权限控制: 对于生产环境中敏感资料保护尤为重要,因此建议合理规划用户角色划分机制4。 

相关文章:

  • [ 问题解决 ] sqlite3.ProgrammingError: SQLite objects created in a thread can ...
  • 38、Python协程与任务调度高级技巧:从异步IO到分布式实践
  • (001)Excel 快捷键
  • 云原生开发革命:iVX 如何实现 “资源即插即用” 的弹性架构?
  • 将python程序创建成可以在扣子中运行的插件
  • 将本地Springboot项目部署到Linux服务器
  • Vscode无法与远程服务器建立连接:connecting with ssh timed out
  • 处理对象集合,输出Map<String, Map<String, List<MyObject>>>格式数据,无序组合键处理方法
  • java快速幂
  • DIFY 又跟新了,来到 1.3.0 版本,看正文
  • 图像保边滤波之BEEPS滤波算法
  • Axure疑难杂症:利用中继器制作三级下拉菜单(逻辑判断进阶)
  • 【Axure视频教程】手电筒效果
  • Rust 学习笔记:关于切片的两个练习题
  • 图像处理篇---信号与系统的应用
  • vitest | 测试框架vitest | 总结笔记
  • 数据库学习笔记(十三)---存储过程
  • npm error code CERT_HAS_EXPIRED
  • 【机器学习】人工智能在电力电子领域的应用
  • 代码随想录算法训练营第60期第二十一天打卡
  • 牛市早报|国家发改委:将推出做好稳就业稳经济推动高质量发展若干举措
  • 鄂湘赣“中三角”,能否走向文旅C位?
  • 我的科学观|张峥:AI快速迭代,我们更需学会如何与科技共处
  • 央视曝光假进口保健品:警惕!保税仓发货不等于真进口
  • 财政部下达农业生产防灾救灾资金3.76亿元,支持黄淮海等地抗旱保春播
  • 凝聚多方力量,中国农科院油菜产业专家团部署单产提升新任务