【Spark】Standalone集群模式安装部署

  • 集群角色介绍

Spark是基于内存计算的大数据并行计算框架,实际中运行计算任务肯定是使用集群模式,那么我们先来学习Spark自带的standalone集群模式了解一下它的架构及运行机制。Standalone集群使用了分布式计算中的master-slave模型

master:集群中含有master进程的节点

slave:集群中的worker节点含有Executor进程

 

  • Spark架构图

http://spark.apache.org/docs/latest/cluster-overview.html

【Spark】Standalone集群模式安装部署_第1张图片

 

  • 集群规划

node01:master

node02:slave/worker 

node03:slave/worker

 

  • 下载Spark安装包

下载地址:http://spark.apache.org/downloads.html

 

  • 上传安装包
cd /export/soft/
rz

【Spark】Standalone集群模式安装部署_第2张图片

 

  • 解压
tar -zxvf ./spark-2.2.0-bin-2.6.0-cdh5.14.0.tgz -C ../servers/

 

  • 解压目录说明

bin:可执行脚本

conf:配置文件

data:示例程序使用数据

examples:示例程序

jars:依赖 jar 包

python:pythonAPI

R:R 语言 API

sbin:集群管理命令

yarn:整合yarn需要的东西

【Spark】Standalone集群模式安装部署_第3张图片

 

  • 修改配置

spark-env

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf/
cp spark-env.sh.template spark-env.sh
vim  spark-env.sh

配置:

#配置java环境变量
export JAVA_HOME=${JAVA_HOME}
#指定spark Master的IP
export SPARK_MASTER_HOST=node01
#指定spark Master的端口
export SPARK_MASTER_PORT=7077

【Spark】Standalone集群模式安装部署_第4张图片

 

 

slaves

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf/
cp slaves.template slaves
vim  slaves

配置:

node02
node03

【Spark】Standalone集群模式安装部署_第5张图片

 

  • 分发
cd /export/servers/
scp -r /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/ node02:$PWD
scp -r /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/ node03:$PWD

 

 

  • 启动和停止

在主从节点上启动spark集群

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/sbin/
./start-all.sh 

在主从节点上停止spark集群

cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/sbin/
./stop-all.sh 

 

  • 查看web界面

http://node01:8080/

【Spark】Standalone集群模式安装部署_第6张图片

 

  • 测试

使用集群模式运行Spark程序读取HDFS上的文件并执行WordCount

集群模式启动spark-shell

/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/bin/spark-shell --master spark://node01:7077 

 

准备数据

vim /root/words.txt

【Spark】Standalone集群模式安装部署_第7张图片

 

上传数据到hdfs

hadoop fs -put /root/words.txt /words.txt

 

计算数据

val textFile = sc.textFile("hdfs://node01:8020/words.txt")
val counts = textFile.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
counts.saveAsTextFile("hdfs://node01:8020/wordcount/output1")

 

查看结果数据

hadoop fs -cat  /wordcount/output1/part-00000
hadoop fs -cat  /wordcount/output1/part-00001

【Spark】Standalone集群模式安装部署_第8张图片

 

  • SparkContext web UI

http://node01:4040/jobs/

【Spark】Standalone集群模式安装部署_第9张图片

 

你可能感兴趣的:(Sprak)