【Spark】Spark安装详解
Spark安装详解
- Spark的详情
- Spark的安装详解
- Spark Local的安装
- Spark Standalone模式
- Spark On YARN模式
- Spark HA模式
Spark的详情
- Spark的简绍
Spark是一种通用的大数据计算框架,是基于RDD(弹性分布式数据集)的一种计算模型。那到底是什么呢?可能很多人还不是太理解,通俗讲就是可以分布式处理大量集数据的,将大量集数据先拆分,分别进行计算,然后再将计算后的结果进行合并。 - 为什么使用Spark
Spark在存储器内运行程序的运算速度能做到比Hadoop MapReduce的运算速度快上100倍,即便是运行程序于硬盘时,Spark也能快上10倍速度。Spark允许用户将数据加载至集群存储器,并多次对其进行查询,非常适合用于机器学习算法。
Spark也支持伪分布式(pseudo-distributed)本地模式,不过通常只用于开发或测试时以本机文件系统取代分布式存储系统。在这样的情况下,Spark仅在一台机器上使用每个CPU核心运行程序。 - Spark的优势
更高的性能。因为数据被加载到集群主机的分布式内存中。数据可以被快速的转换迭代,并缓存用以后续的频繁访问需求。在数据全部加载到内存的情况下,Spark可以比Hadoop快100倍,在内存不够存放所有数据的情况下快hadoop10倍。
通过建立在Java,Scala,Python,SQL(应对交互式查询)的标准API以方便各行各业使用,同时还含有大量开箱即用的机器学习库。
与现有Hadoop 1和2.x(YARN)生态兼容,因此机构可以无缝迁移。
方便下载和安装。方便的shell(REPL: Read-Eval-Print-Loop)可以对API进行交互式的学习。
借助高等级的架构提高生产力,从而可以讲精力放到计算上。 - Spark的基本节点名称及作用
Driver
Spark的驱动器,它是执行程序的main方法的进程,它负责创建SparkContext、RDD,以及RDD的转化操作和代码的执行。shell模式下,后台会制动创建Spark驱动器,创建SparkContext对象。
Master
主节点,用于与Worker节点通信,进行资源的调度与分配,接受Driver发来的任务请求,在Standalone模式下才会有Worker节点。
Worker
工作节点,主要用于创建执行器,接受Master的领导,在Worker接收到Matser的请求后会自动启动Executor进程。在standlone节点下才会有Worker节点。
Executor
执行Job Task,返回结果给Driver
Executor是一个工作进程,负责在Spark作业中完成运行任务,任务间互相独立,并行运行 。Executor启动后会反向向Driver注册自己,这样Driver就能更好的服务于自己的Executor。
Task
Task是一个工作任务,一个任务会发给一个Executor
Spark的安装详解
- Spark的安装模式大致可以分为以下几种
local(本地模式):常用于本地开发测试,本地还分为local单线程和local-cluster多线程;
standalone(集群模式):典型的Mater/slave模式,但是会存在单点故障的问题
on yarn(集群模式): 运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算
Spark HA解决了单点故障问题
Spark在大多数情况下适合Scala连在一起的,因此我们在安装Spark之前不妨先安装Spark
解压Scala安装包到指定目录下
tar -zxvf scala-2.10.4.tgz -C /home/
配置环境变量
# 打开profile文件
vi /etc/profile# 配置变量
export SCALA_HOME=/home/scala-2.10.4export PATH=$PATH:$SCALA_HOME/bin
让变量生效
source /etc/profile
测试
Spark Local的安装
解压到指定目录
tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /home/
配置环境变量
# 打开profile文件
vi /etc/profileexport SPARK_HOME=/home/spark-2.2.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
让变量生效
source /etc/profile
测试
Spark Standalone模式
修改配置文件spark-env.sh
# 如果没有此文件
cp spark-env.sh.template spark-env.shexport SCALA_HOME=/home/scala-2.10.4
export JAVA_HOME=/home/java/jdk
# 本地安装绑定
export SPARK_MASTER_IP=192.168.0.155
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=1G
export SPARK_EXECUTOR_CORES=2
测试
使用启动sbin/start-all.sh
脚本进行启动.
访问WebUI:http://localhost:8080
我这个只安装在一台虚拟机上,如果想安装在多台上可以将更改slaves文件,写入从节点的IP地址,然后发送配置好的安装包到各个节点
Spark On YARN模式
此模式要先安装好hadoop,并且开启
修改配置文件spark-env.sh
export SCALA_HOME=/home/scala-2.10.4
export JAVA_HOME=/home/java/jdk
export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop/etc/hadoop
export SPARK_MASTER_IP=192.168.0.155
export SPARK_MASTER_PORT=7077
export SPARK_DRIVER_MEMORY=1G
测试开启节点
查看WebUI
我这个只安装在一台虚拟机上,如果想安装在多台上可以将更改slaves文件,写入从节点的IP地址,然后发送配置好的安装包到各个节点
Spark HA模式
首先安装好Zookeeper,并且开启
配置文件spark-env.sh
export SCALA_HOME=/home/scala-2.10.4
export JAVA_HOME=/home/java/jdk
export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_CONF_DIR=/home/hadoop/hadoop/etc/hadoop
export SPARK_MASTER_PORT=7077
export SPARK_DRIVER_MEMORY=1G
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER-Dspark.deploy.zookeeper.url=a:2181,b:2181,c:2181-Dspark.deploy.zookeeper.dir=/spark"
修改slaves文件
b
c
将配置好的文件发送到其他俩个节点
scp /home/spark-2.2.0-bin-hadoop2.7 b:/home
scp /home/spark-2.2.0-bin-hadoop2.7 c:/home
start-all.sh开启节点,但是会发现bc节点之开启了work进程,这是因为我们设置了slaves导致的,这里我们可以使用start-mater.sh命令开启全部的master节点,但是我们会发现只有一个节点的master是活跃的,其他都是等待状态
这时我们关闭b节点也就是master活跃的那个节点的master进程
stop-master.sh
发现无法方法了
并且此时的c节点变成了活跃的状态
【Spark】Spark安装详解相关推荐
- Spark RDD 论文详解(三)Spark 编程接口
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD 论文详解(一)摘要和介绍
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD 论文详解(二)RDDs
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD 论文详解(七)讨论
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark RDD 论文详解(四)表达 RDDs
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Spark 内存管理详解(下):内存管理
本文转自:Spark内存管理详解(下)--内存管理 本文最初由IBM developerWorks中国网站发表,其链接为Apache Spark内存管理详解 在这里,正文内容分为上下两篇来阐述,这是下 ...
- Spark RDD 论文详解(五)实现
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- Linux下boost库的编译、安装详解
1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...
- nagios 3.2安装详解(一)
Nagios 安装详解 对于运维人员来说,获悉服务器状况的信息非常重要,针对监控服务,比较好的有cacti和nagios,cacti使用更简单一些,cacti主要是用来采集信息,CPU.MEM.流量等 ...
- Win10 TensorFlow(gpu)安装详解
Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...
最新文章
- 和12岁小同志搞创客开发:手撕代码,做一款节拍电子鼓
- OpenCASCADE Make Primitives-Sphere
- face.evoLVe.PyTorch
- ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
- 数据库设计 Step by Step (2)——数据库生命周期
- elementui展示多张图片_Element-ui实现合并多图上传(一次请求多张图片)
- python测试之道电子书_python测试开发面试之深浅拷贝
- 微信模拟器不显示鼠标解决办法
- 单片机实验报告-片内外RAM的数据转移
- 产品经理应该多读哪些书?
- 24V单节锂电池充电芯片
- element-admin/若依主题风格设计
- LOJ6070 基因 分块+回文自动机
- 读英语计算机书籍读后感,英语读后感
- 世界七大数学难题的提出(转载)
- Math对象属性与方法
- 759页14万字智慧大楼弱电智能化规划设计方案
- wamp橙色不变绿的几个主要原因
- 在飞书群里设置机器人提醒 github 代码更新
- 使用Spring Boot实现GraphQL