Spark Standalone安装

本文详细介绍Spark伪分布式模式的安装步骤与配置方法,包括环境搭建、系统环境变量设置、slaves配置文件修改等关键环节,以及如何启动Spark并进行基本测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

伪分布式安装

实现原理

Local cluster伪分布式模式,实际是在SparkContext初始化的过程中,在本地启动一个所有服务都在单机上运行的伪分布Spark集群,所以从部署的角度来说无须做任何准备工作。以SparkPi为例,伪分布式模式下的应用程序的启动命令的示例如下:

./bin/run-example org.apache.spark.examples.SparkPi local-cluster[2,2,1024]

上面的伪分布式模式启动两个Worker,每个Worker管理两个CPU和1024MB的内存。

Local cluster伪分布式模式是基于Standalone模式来实现的,所以也叫Standalone伪分布模式,除了启动Master和Worker的位置不同,在集群启动完毕后,后续应用程序的工作流程及资源的调度流程与Standalone集群模式完全相同。

Standalone伪分布模式内部逻辑结构如下图所示:
在这里插入图片描述

准备阶段

mkdir -p /data/spark2
cd /data/spark2/  
wget http://192.168.19.201:60000/allfiles/spark2/scala-2.10.4.tgz  
wget http://192.168.19.201:60000/allfiles/spark2/spark-1.6.0-bin-hadoop2.6.tgz  

安装Scala

解压并重命名

cd /data/spark2/  
tar -xzvf /data/spark2/scala-2.10.4.tgz -C /apps/  
cd /apps  
mv /apps/scala-2.10.4/ /apps/scala  

修改系统环境变量

vim ~/.bashrc
追加写入

#scala  
export SCALA_HOME=/apps/scala  
export PATH=$SCALA_HOME/bin:$PATH  

刷新环境变量
source ~/.bashrc

安装Spark

解压并重命名

cd /data/spark2  
tar -xzvf /data/spark2/spark-1.6.0-bin-hadoop2.6.tgz -C /apps/  
cd /apps/  
mv /apps/spark-1.6.0-bin-hadoop2.6/ /apps/spark  

修改系统环境变量

vim ~/.bashrc
追加写入

#spark  
export SPARK_HOME=/apps/spark  
export PATH=$SPARK_HOME/bin:$PATH  

刷新环境变量
source ~/.bashrc

修改slaves配置文件

切换目录到/apps/spark/conf下,将conf目录下的配置文件slaves.template重命名为slaves。
修改后打开

cd /apps/spark/conf  
mv slaves.template  slaves
vim slaves

将所有worker节点的ip添加进去。由于目前只有一台节点,所以是。

127.0.0.1

修该spark-env.sh文件

将/apps/spark/conf/spark-env.sh.template文件,重命名为/apps/spark/conf/spark-env.sh。

mv /apps/spark/conf/spark-env.sh.template /apps/spark/conf/spark-env.sh

使用vim,打开/apps/spark/conf/spark-env.sh文件。

vim /apps/spark/conf/spark-env.sh  

添加如下配置

HADOOP_CONF_DIR=/apps/hadoop/etc/hadoop  
JAVA_HOME=/apps/java  
SPARK_MASTER_IP=127.0.0.1  
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_EXECUTOR_INSTANCES=1  

此处需要配置JAVA_HOME以及HADOOP配置文件所在的目录HADOOP_CONF_DIR
SPARK_MASTER_IP、SPARK_MASTER_PORT、SPARK_MASTER_WEBUI_PORT,分别指spark集群中,master节点的ip地址、端口号、提供的web接口的端口。
SPARK_WORKER_CORES、SPARK_WORKER_MEMORY:worker节点的内核数、内存大小。
此处可用根据自己机器情况调整配置项参数。

启动hadoop和Spark

cd /apps/hadoop/sbin  
./start-all.sh  
cd /apps/spark/sbin  
./start-all.sh  

jps查询
在这里插入图片描述

测试

  1. 在HDFS上,创建/myspark2目录,并将Linux上/apps/spark/README.md文件,上传到HDFS。
hadoop fs -mkdir /myspark2  
hadoop fs -put /apps/spark/README.md /myspark2/  
  1. 切换目录到/apps/spark/bin目录下,使用Spark Shell客户端,访问服务端,验证安装完的Spark是否可用,进入命令行模式。
cd /apps/spark/bin  
./spark-shell --master spark://localhost:7077  

在这里插入图片描述
3. 在Spark Shell中,使用scala加载HDFS上的README.md文件,并转变为rdd。

var mytxt = sc.textFile("hdfs://localhost:9000/myspark2/README.md");
//统计文件的行数。
mytxt.count();  

可用看到输出为:
在这里插入图片描述
4. 在刚才执行统计过程中,由于Log4j的日志输出级别为info级别,所以会在屏幕上输出很多的log,很难定位程序的输出结果。
输入exit,退出spark-shell,并切换目录到/apps/spark/sbin目录下,停止Spark。

exit  
cd /apps/spark/sbin  
./stop-all.sh

再切换目录到/apps/spark/conf目录下,将目录下log4j.properties.template重命名为log4j.properties。后打开

cd /apps/spark/conf
mv /apps/spark/conf/log4j.properties.template /apps/spark/conf/log4j.properties
vim log4j.properties  

更改log4j的日志级别为WARN级别,修改log4j.rootCategory内容为:

log4j.rootCategory=WARN, console  

再次启动Spark。

cd /apps/spark/sbin  
./start-all.sh  

进入Spark-Shell。

cd /apps/spark/bin
spark-shell --master spark://localhost:7077 

执行Spark-Shell命令。

val mytxt = sc.textFile("hdfs://localhost:9000/myspark2/README.md");  
mytxt.count();  

完整效果
在这里插入图片描述
可以看到输出的内容相对于调整log4j日志级别前,更加精简了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值