如何搭建spark yarn 模式的集群
搭建Spark Yarn模式集群的步骤
1. 安装并配置Hadoop
在搭建Spark YARN模式之前,需要先安装和配置Hadoop集群。确保Hadoop已经正常运行,并能够通过start-dfs.sh
和start-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。