学习笔记Spark—— Spark集群的安装配置

Posted 别呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记Spark—— Spark集群的安装配置相关的知识,希望对你有一定的参考价值。

一、我的软件环境


二、Spark集群拓扑

2.1、集群规模

192.168.128.10     master	 1.5G ~2G内存、20G硬盘、NAT、1~2核 ;
192.168.128.11     node1	1G内存、20G硬盘、NAT、1192.168.128.12     node2	1G内存、20G硬盘、NAT、1192.168.128.13     node3	1G内存、20G硬盘、NAT、1

2.2、Spark的安装模式

1、本地模式
在一个节点上安装Spark,利用本地线程运行程序,非分布式环境

2、伪分布式
Spark单机伪分布式是在一台机器上既有Master,又有Worker进程

3、完全分布式
全分布模式用于生产,至少需要3~4台机器,其中一台为为主节点,部署Master,其他节点部署Worker

4、HA高可用模式
在完全分布式基础上利用Zookeeper实现Master主从备份


三、Spark安装配置

3.1、Spark配置文件

Data: spark mllib里面用到的数据;
Ec2: 部署在亚马逊云平台上的脚本
Examples:示例代码;
Python:python接口;
R:R接口


3.1.1、配置文件解读

Template是一个模板
HADOOP_CONF_DIR :Hadoop配置文件所在的路径,Spark需要找到Hadoop里面相关的东西,比如hdfs相关的地址,比如我们可能要上传数据或者日志需要存在这上面
SPARK_WORKER_INSTANCES :设置每个节点的worker进程
SPARK_WORKER_MEMORY :设置节点能给予executors的所有内存
SPARK_WORKER_CORES :设置这台机器所用的核数
SPARK_EXECUTOR_CORES :executor使用的核数
SPARK_EXECUTOR_MEMORY :每个executor的内存
Spark_WORKER_CORES :每个WORKER占用多少个核,我们给每个虚拟机配了多少核
SPARK_WORKER_INSTANCES :每个worker节点有多少个实例
比如INSTANCES配了2,有三个节点,那么就有6个WORKER,相当于HADOOP有6个节点


3.1.2、配置文件解读


3.2、配置步骤

1.上传spark-2.4.0-bin-hadoop2.6.tgz到/opt目录,并解压

tar -zxf /opt/spark-2.4.0-bin-hadoop2.6.tgz

2.进入/opt/spark-2.4.0-bin-hadoop2.6/conf
复制slaves.template:

cp slaves.template slaves
vi slaves

修改slaves,先删除其中的localhost,然后添加:

node1
node2
node3

3.修改spark-defaults.conf

cp spark-defaults.conf.template spark-defaults.conf
vi spark-defaults.conf

添加:

spark.master                     spark://master:7077
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://master:8020/spark-logs
spark.history.fs.logDirectory     hdfs://master:8020/spark-logs

4.修改spark-env.sh

cp spark-env.sh.template spark-env.sh
vi spark-env.sh

添加:

JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
HADOOP_CONF_DIR=/opt/hadoop-3.1.4/etc/hadoop
SPARK_MASTER_IP=master
SPARK_MASTER_PORT=7077
SPARK_WORKER_MEMORY=512m
SPARK_WORKER_CORES=1
SPARK_EXECUTOR_MEMORY=512m
SPARK_EXECUTOR_CORES=1
SPARK_WORKER_INSTANCES=1

5.启动Hadoop集群,在HDFS中新建目录:

hdfs dfs -mkdir /spark-logs

6.将Spark安装包分发到其他节点

scp -r /opt/spark-2.4.0-bin-hadoop2.6/ node1:/opt/
scp -r /opt/spark-2.4.0-bin-hadoop2.6/ node2:/opt/
scp -r /opt/spark-2.4.0-bin-hadoop2.6/ node3:/opt/

7.在所有节点配置Spark环境变量
(master、node1、node2、node3)

vi /etc/profile

在文件尾加入:

export SPARK_HOME=/opt/spark-2.4.0-bin-hadoop2.6
export PATH=$PATH:$SPARK_HOME/bin

执行source /etc/profile使命令生效

8.启动spark
进入/opt/spark-2.4.0-bin-hadoop2.6/sbin
执行

./start-all.sh

9.查看客户端

http://master:8080

3.3、启动关闭Spark

进入/usr/local/spark-2.4.0-bin-hadoop2.6/
1、启动Spark

sbin/start-all.sh

2、启动日志服务

sbin/start-history-server.sh  hdfs://master:8020/spark-logs

3、关闭Spark

sbin/stop-all.sh
sbin/stop-history-server.sh hdfs://master:8020/spark-logs

3.5、查看客户端

Spark监控:http://master:8080


四、运行第一个Spark程序

进入Spark命令行交互界面spark-shell
退出交互界面:q

数据文件 a.txt:

I am a student

上传到hdfs的/user/root目录下

执行:

sc.textFile("/user/root/a.txt").flatMap(x=>x.split(“ “)).map(x=>(x,1)).reduceByKey(_+_)

结果展示:

以上是关于学习笔记Spark—— Spark集群的安装配置的主要内容,如果未能解决你的问题,请参考以下文章

Spark学习笔记—01 Spark集群的安装

spark学习笔记-spark集群搭建

Spark基础学习笔记06:搭建Spark On YARN模式的集群

Spark学习笔记--环境搭建

Spark学习笔记--环境搭建

Spark笔记整理:spark单机安装部署分布式集群与HA安装部署+spark源码编译