学习笔记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、1核
192.168.128.12 node2 1G内存、20G硬盘、NAT、1核
192.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集群的安装配置相关推荐
- Redis运维和开发学习笔记(3)redis搭建集群
Redis运维和开发学习笔记(3)redis搭建集群 文章目录 Redis运维和开发学习笔记(3)redis搭建集群 Redis集群搭建 Redis集群搭建 cp /etc/redis.d/redis ...
- kubernetes(K8S)学习笔记P6:K8s集群|java项目部署
kubernetes(K8S)学习笔记P6:K8s集群|java项目部署 8.集群资源监控 8.1概述 8.2搭建集群监控平台系统 8.2.1部署prometheus 8.2.3部署Grafana 8 ...
- Web基础配置篇(十四): Kafka单机、集群的安装配置及使用
Web基础配置篇(十四): Kafka单机.集群的安装配置及使用 一.概述 Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传 ...
- MongoDB学习笔记(三)-----集群架构
MongoDB 有三种集群部署模式,分别为主从复制(Master-Slaver).副本集(Replica Set)和分片(Sharding)模式. Master-Slaver 是一种主从副本的模式,目 ...
- Linux学习笔记(二十三) -- QT的安装和卸载
1.QT简介 Qt 是一个跨平台C++图形用户界面应用程序开发框架.它可以用来开发GUI程序和非GUI程序(比如控制台工具和服务器). 2.QT安装 使用如下命令: sudo apt-get inst ...
- spark学习笔记-CentOS 6.4集群搭建(2)
CentOS 6.5安装 1.使用课程提供的CentOS 6.5镜像即可,CentOS-6.5-i386-minimal.iso. 2.创建虚拟机:打开Virtual Box,点击"新建&q ...
- 调度框架学习笔记(3)—— 集群调度框架的架构演进过程
本章是 The evolution of cluster scheduler architectures 文章的学习笔记.这篇文章讨论了这些年调度架构是如何发展的以及为什么会这样发展. 首先介绍一下这 ...
- Spark 1.2 集群环境安装
我是在单机环境下修改下配置完成的集群模式 单机安装查看:http://blog.csdn.net/wind520/article/details/43458925 参考官网配置:http://spar ...
- hbase1.1.1 连接集群_HBase-1.0.1学习笔记(一)集群搭建
鲁春利的工作笔记,好记性不如烂笔头 如下配置参照了http://hbase.apache.org/book.html,详见:hbase-1.0.1.1/docs/book.html 环境配置 1.安装 ...
最新文章
- 独家 | 利用AI进行高精度图像编辑︰EditGAN(附链接)
- CodeForces509F Progress Monitoring
- linux下Epoll实现简单的C/S通信
- DLA SQL技巧:行、列转换和JSON数据列展开
- 华为的鸿蒙系统是海思_全新12.9英寸华为MatePad平板曝光:搭载鸿蒙系统
- LINQ 标准的查询操作符 生成操作符 Range()、Empty()和Repear()
- Windows数据类型探幽
- 家庭无线网络桥接扩展方案
- Entry name ‘assets/app.js‘ collided
- 原始混合合成器:Arturia Analog Lab for Mac
- 批量抠图,只需要这几行python代码!
- 顺序消费可没你想的这么简单,队列数量的变更往往无法保证同一个账号的消息发送到同一个分区,怎么解决?
- 人脸识别用哪种python库_python的face_recognition人脸识别库的使用
- Using SystemTap
- c语言中逻辑非运算符的作用,C语言中逻辑运算符非!与或||的优先级怎么说?...
- 电脑网络正常,浏览器打不开的解决方案(三种情况)
- python中title函数有什么用_Python title()字符串处理函数的使用
- 同花顺股票交易挂单接口是什么?
- 【预测模型】基于布谷鸟算法优化BP神经网络实现数据预测matlab代码
- Kong网关upstream健康检查机制