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安装详解相关推荐

  1. Spark RDD 论文详解(三)Spark 编程接口

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  2. Spark RDD 论文详解(一)摘要和介绍

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  3. Spark RDD 论文详解(二)RDDs

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  4. Spark RDD 论文详解(七)讨论

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  5. Spark RDD 论文详解(四)表达 RDDs

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  6. Spark 内存管理详解(下):内存管理

    本文转自:Spark内存管理详解(下)--内存管理 本文最初由IBM developerWorks中国网站发表,其链接为Apache Spark内存管理详解 在这里,正文内容分为上下两篇来阐述,这是下 ...

  7. Spark RDD 论文详解(五)实现

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  8. Linux下boost库的编译、安装详解

    1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...

  9. nagios 3.2安装详解(一)

    Nagios 安装详解 对于运维人员来说,获悉服务器状况的信息非常重要,针对监控服务,比较好的有cacti和nagios,cacti使用更简单一些,cacti主要是用来采集信息,CPU.MEM.流量等 ...

  10. Win10 TensorFlow(gpu)安装详解

    Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...

最新文章

  1. 和12岁小同志搞创客开发:手撕代码,做一款节拍电子鼓
  2. OpenCASCADE Make Primitives-Sphere
  3. face.evoLVe.PyTorch
  4. ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
  5. 数据库设计 Step by Step (2)——数据库生命周期
  6. elementui展示多张图片_Element-ui实现合并多图上传(一次请求多张图片)
  7. python测试之道电子书_python测试开发面试之深浅拷贝
  8. 微信模拟器不显示鼠标解决办法
  9. 单片机实验报告-片内外RAM的数据转移
  10. 产品经理应该多读哪些书?
  11. 24V单节锂电池充电芯片
  12. element-admin/若依主题风格设计
  13. LOJ6070 基因 分块+回文自动机
  14. 读英语计算机书籍读后感,英语读后感
  15. 世界七大数学难题的提出(转载)
  16. Math对象属性与方法
  17. 759页14万字智慧大楼弱电智能化规划设计方案
  18. wamp橙色不变绿的几个主要原因
  19. 在飞书群里设置机器人提醒 github 代码更新
  20. 使用Spring Boot实现GraphQL

热门文章

  1. 用java编写猜数字游戏
  2. 挂机宝是服务器还是虚拟主机,挂机宝是云虚拟主机吗
  3. 火星开发板_数据科学家来自火星,软件开发人员来自金星
  4. java时间的格式化_java如何给时间格式化
  5. 学做‘视频剪辑’攻略
  6. 中国34个省级行政区2000年-2021年逐月1km植被指数NDVI栅格数据处理及下载
  7. 如何使用Linux匿名上网-四大法宝
  8. 关于电脑前置耳机插孔没声音的问题
  9. USB总线-USB协议简介(一)
  10. Vue组件(附带轮播图代码)