Spark集群搭建

本文详细介绍了Spark的四种运行模式,重点讲解了standalone集群的搭建过程,包括配置修改、集群部署及测试验证,适用于初学者快速上手Spark集群环境。

Spark的四种运行模式

首先spark有四种运行模式,目前只接触到了local,standalone ,yarn 三种运行模式。
local模式顾名思义就是运行在 本地,一般用于测试小型的spark应用程序,比较简单,只用在开发工具中安装插件即可,不需要搭建集群。
standalone 和 yarn 属于同级别的,都需要搭建集群,yarn集群在前面的博客已经介绍,这里不做详细介绍,下面是我们standalone 集群的搭建过程。

  1. local
  2. standalone
  3. yarn
  4. mesos

standalone 集群的搭建

standalone集群的大体框架

在这里插入图片描述

standalone集群步骤

1,在node01节点上下载spark安装包

2,解压spark-1.6.3-bin-hadoop2.6.tgz安装包

 tar -zxvf spark-1.6.3-bin-hadoop2.6.tgz

3,修改spark配置文件

  • 进入conf目录下修改配置文件的名字
    把slaves.template文件改名为slaves文件
    mv slaves.template slaves
    
  • 修改slaves配置文件内容
    standalone是主从架构,而slaves配置文件里面放的是从节点的IP,所以将node02,node03,node04放入slaves中。
    在这里插入图片描述
  • 修改spark-env.sh内容
SPARK_MASTER_PORT字段设置主节点的IP
SPARK_MASTER_IP字段设置端口(用来Master与Worker的心跳,资源通信)
SPARK_WORKER_CORES代表每一个worker进程能管理几个核(有几个核的支配权)。
//如果CPU是4核8线程,那么这个核是支持超线程的核。
//如果是普通的核,一个核在一个时刻只能处理一个线程。
//这个配置是根据当前节点的资源情况来配置的,如果节点有8个core,并且支持超线程,此时可以将这个节点看成由16个core组成。
SPARK_WORKER_MEMORY字段代表每个worker可以管理多大内存。
SPARK_WORKER_DIR配置worker路径
SPARK_WORKER_INSTANCES设置每个节点上启动的worker进程数。

4,将配置好的spark安装包发送到各个节点上

 scp -r spark-1.6.3 root@node2: ‘pwd’
 scp -r spark-1.6.3 root@node3:‘pwd’
 scp -r spark-1.6.3 root@node4:‘pwd’

5,将启动命令改名

进入sbin目录下,找到start-all.sh文件(此文件与hadoop的start.sh冲突),将其改为:start-spark.sh

mv start-all.sh start-spark.sh

6,启动spark

start-spark.sh

7,jps查看各个节点开启的进程

node01上启动了一个Master进程
node02上启动了一个Worker进程
node03上启动了一个Worker进程
node04上启动了一个Worker进程

8,浏览器查看

在这里插入图片描述
通过访问8080端口,可以监控worker进程的启动情况,如图所示启动的 worker和配置文件配置相同,说明启动成功。

9、提交测试

提交一个spark Application应用到集群中运行。

spark-submit --master spark://node01:7077 --class org.apache.spark.examples.SparkPi /opt/software/spark/spark-1.6.3/lib/spark-examples-1.6.3-hadoop2.6.0.jar 10

在这里插入图片描述
如图所示,计算出π的大致结果。

补充:π值计算,实际上是打点法,如上面的命令,传入的参数是n,那么它会划分出两块区域,一块n*n的正方形,在这个正方形中画出一块内切圆,然后随机打点,落入圆内的概率乘以面积就是大致的计算结果。

<think>好的,用户想了解如何搭建Spark集群,特别是结合Hadoop YARN进行分布式计算。我需要根据提供的引用内容来整理步骤,并确保回答结构清晰。首先,用户提供的引用中有两个关于Spark安装和提交任务的命令,还有一个关于Docker网络错误的提示,可能需要注意网络配置的问题。 首先,我应该分步骤讲解Spark集群搭建的过程。引用1提到了解压Spark安装包并移动到指定目录,这可能涉及环境变量的配置。接下来,引用2展示了使用spark-submit提交任务到YARN集群的命令,说明Spark需要与YARN集成。引用3提到的Docker网络问题可能是一个常见错误,提醒用户检查网络配置是否正确。 接下来,我需要确认Spark集群搭建的关键步骤:安装Spark、配置Hadoop YARN集成、环境变量设置、启动集群、提交任务。同时,要注意权限和路径的正确性,避免出现文件找不到的错误。比如在引用2中,任务的输入和输出路径都是HDFS上的,所以需要确保Hadoop集群正常运行,并且路径正确。 可能还需要提到配置文件如spark-env.sh和slaves的修改,但用户提供的引用中没有具体提到,是否需要补充?或者根据常见的Spark on YARN配置步骤来指导?由于用户的问题集中在YARN上,可能不需要详细配置Spark独立集群,而是重点放在YARN模式下的配置。 另外,引用3中的Docker网络问题可能不直接相关,但如果有用户尝试在容器环境中搭建,可能会遇到网络问题,需要确保网络配置正确,比如在Docker中创建hadoop网络,或者检查网络是否存在。 最后,生成相关问题需要考虑用户可能的后续疑问,比如如何验证集群是否成功、资源分配优化、日志查看等。</think>### Spark集群搭建教程(基于Hadoop YARN) #### 一、前置条件 1. 已部署Hadoop集群(含YARN组件),并处于正常运行状态 2. 所有节点已配置JDK(建议JDK 8+) 3. 节点间SSH免密登录配置完成 #### 二、安装Spark 1. **解压安装包**(如使用spark-2.2.0版本) ```bash tar xzvf spark-2.2.0-bin-hadoop2.7.tgz mv spark-2.2.0-bin-hadoop2.7 /export/servers/spark # 路径可自定义[^1] ``` 2. **配置环境变量** ```bash # 在/etc/profile追加 export SPARK_HOME=/export/servers/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin ``` #### 三、YARN模式配置 1. **修改spark-defaults.conf** ```bash cp $SPARK_HOME/conf/spark-defaults.conf.template $SPARK_HOME/conf/spark-defaults.conf ``` 添加配置: ```properties spark.master yarn spark.driver.memory 2g spark.yarn.jars hdfs:///spark/jars/* # 需提前上传Spark依赖库到HDFS ``` 2. **上传依赖库到HDFS** ```bash hadoop fs -mkdir -p /spark/jars hadoop fs -put $SPARK_HOME/jars/* /spark/jars/ ``` #### 四、提交任务验证 使用示例提交命令(以WordCount为例): ```bash spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ --name spark-pi-test \ $SPARK_HOME/examples/jars/spark-examples_2.11-2.2.0.jar \ 1000 ``` 提交参数说明: - `--master yarn`: 指定YARN资源管理器 - `--deploy-mode cluster`: 任务以集群模式运行[^2] - 最后的数字参数为计算π的迭代次数 #### 五、常见问题处理 1. **网络配置错误** 若出现`No such network: hadoop`错误,需检查Docker网络配置: ```bash docker network create hadoop # 创建自定义网络[^3] ``` 2. **资源不足错误** 通过YARN Web UI(默认8088端口)查看资源使用情况,调整: - `yarn.nodemanager.resource.memory-mb`(YARN配置) - `spark.executor.memory`(Spark配置)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值