Spark简介及其生态圈及Spark-core运行机理

hdfs:hadoop分布式系统
spark主要使用了hadoop中hdfs

1 spark 用什么语言实现的?
    Spark使用Scala语言进行实现,Scala 建立在JAVA之上
    scala:是一个多范式编程语言,学习难度大于Java、python.语法灵活简单
    pyspark:使用python语言进行实现。python的函数库非常丰富,后期便于学习ML(机器学习)。

2.为什么使用spark?
    1.内存分布式计算,运行速度快
    2.spark可以支持多种语言编程(java, scala,randpython),hadoop只支持java
    3.hadoop 处理的结果保存在磁盘,不支持有向无环图,没有优化方案,spark有优化方案,会选取最优的路径
    4.spark多了交互式数据的处理

3.spark的几种运行模式
     1.批处理 -- 用于大规模的分布式数据处理 
        i:spark-submit preS.py
        spark-submit工具提交Job时Driver运行在本地Client端

       2.流方式 -- Spark流用于传送和处理实时数据 
       3.交互方式:常用于处理在内存中的大块数据.较低的延迟
        i:Spark Scala Shell  
            在linux shell 下用 spark-shell 进入,用scala解释执行
      ii:Spark Python Shell (PySpark Shell)
          在linux shell 下用 pyspark 进入 , 用python解释执行

        iii: IPython (Jupyter) Notebook:用python交互解释执行
            cd /home/hadoop/anaconda3/bin
            ./jupyter notebook --ip 0.0.0.0 --port 9999

4.spark支持的文件格式?

    Text (包括CSV JSON 等)   以行为单位做数据
    SequenceFiles           序列文件(类似Text文件但带头部)
    AVRO                    一款序列化框架 ,以对象为单位 一个对象单位为片 (用的多,跨平台)
    Parquet(主要使用这个)按列存储,好处:这一列的数据类型是一致的,可以采用最优的方式压缩,都数据时按列读取,IO开销小
    orcfil:(列式)

5.说说rdd?

    1.弹性分布式数据集分布在不同集群节点的内存中
    2.可以理解成一大数组
    3.数组的每一元素是RDD的一分区
    4.一个RDD可以分布并被运算在多台计算机节点的内存及硬盘中
    5.RDD数据块可以放在磁盘上也可放在内存中(取决于设置)
    6.如出现缓存失效或丢失,RDD的分区可以重新计算刷新
    7.RDD本身是不能被修改的,但RDD可以通过API (底层采用Scala)被变换生成新的R
    8.有两类对RDD的操作:变换和操作(变换发生在worker机上,操作在driver机上)

6.解释DAG?

    有向无环图(DAG,Directed Acycle graph)的分布式并行计算框架(反应RDD之间的依赖,提供Cache机制来支持多次迭代计算或者数据共享以减少迭代计算之间读取数据局的开销,根据用户端对RDD的指令进行优化以减少系统开销)

7.说说spark和mapreduce的区别?
    1.运行方式(MR的运算是内存磁盘交互读写.不能再内存中共享数据,RDD可以被共享和持久化,每次都要写到磁盘里,在从磁盘中读取)
    2.大数据运算经常是交互式和迭代式的。所以数据的重用性很
重要。而MR的磁盘交互读写带来I/O 开销导致速度减慢, spark会在执行操作时,通过DAG,所以速度要快
8.spark的调度模式?

spark的调度模式

“`
9. Spark-core 运行机理?

Spark-core 运行机理

1. SPARK CORE的 驱动程序首先运行Application的main函数并创建建立Spark Application的运行环境即SparkContext,SparkContext被注册到某类资源管理器上:Standalone、Mesos或YARN并申请运行Executor资源;

 2. 资源管理器分配Executor资源并启动Executor后端服务并接受主节点命令以及进行状态汇报
 3. SparkContext构建成DAG图,将DAG图分解成Stage,并把Taskset发送给Task Scheduler。Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行同时SparkContext将应用程序代码发放给Executor。
 4. Task在Executor(worker)上运行,运行完毕释放所有资源

10.Spark 调度模式 :YARN模式
YARN模式

    ResourceManager (由Application Manager 和Scheduler 组成)负责将集群的资源分配给各个应用使用,而资源分配和调度的基本单位是Container,其中封装了机器资源,如内存、CPU、磁盘和网络等,每个任务会被分配一个Container,该任务只能在该Container中执行,并使用该Container内的资源. ResourceManager同时在每个DataNode上产生ApplicationMaster以监控Container的运行

    NodeManager是一个个的计算节点,主要负责启动和资源上监控Application所需的Container, 包括监控例如内存、CPU、磁盘和网络等的使用情况并将之汇报给ResourceManager。ApplicationMaster与具体的Application相关,主要负责同ResourceManager协商以获取合适的Containers,并跟踪这些Containers的状态和监控其进度。

11.YARN模式下的三层防错?

如果Container不行了AppMaster会重启Container
如果重启不行 会进行第二次请求 AppMaster回去请求ApplicationsManager
再不行 会把重新分配一个workers 当Node Manager

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark-Core文档是本人经三年总结笔记汇总而来,对于自我学习Spark核心基础知识非常方便,资料中例举完善,内容丰富。具体目录如下: 目录 第一章 Spark简介与计算模型 3 1 What is Spark 3 2 Spark简介 3 3 Spark历史 4 4 BDAS生态系统 4 5 Spark与Hadoop的差异 5 6 Spark的适用场景 6 7 Spark成功案例 6 第二章 Spark开发环境搭建 8 1 Spark运行模式 8 2 Spark环境搭建 8 2.1Scala的安装 8 2.2Spark的单节点配置 9 2.3Spark-Standalone集群配置 9 2.4Spark-on-Yarn模式配置 12 2.5Spark-on-Mesos模式配置 13 2.6Hive-on-Spark配置 13 第三章 Spark计算模型 15 1 RDD编程 15 1.1弹性分布式数据集RDD 15 1.2构建RDD对象 15 2RDD操作 15 2.1将函数传递给Spark 16 2.2了解闭包 16 2.3Pair RDD模型 17 2.4Spark常见转换操作 18 2.5Spark常见行动操作 20 2.6RDD持久化操作 21 2.7注意事项 23 2.7并行度调优 24 2.8分区方式 25 3Examle:PageRank 27 第四章 Spark编程进阶 29 1共享变量 29 1.1累加器 30 1.2广播变量 31 2基于分区进行操作 32 3与外部程序间的管道 33 4数值RDD的操作 34 5 Spark Shuffle机制 34 第五章 Spark调优与调试 39 1开发调优: 40 1.1调优概述 40 1.2原则一:避免创建重复的RDD 40 1.3原则二:尽可能复用同一个RDD 41 1.4原则三:对多次使用的RDD进行持久化 42 1.5原则四:尽量避免使用shuffle类算子 43 1.6原则五:使用map-side预聚合的shuffle操作 44 1.7原则六:使用高性能的算子 45 1.8原则七:广播大变量 46 1.9原则八:使用Kryo优化序列化性能 47 1.10原则九:优化数据结构 48 2资源调优 48 2.1调优概述 48 2.2 Spark作业基本运行原理 49 2.3资源参数调优 50 第六章 Spark架构和工作机制 52 1 Spark架构 52 1.1 Spark架构组件简介 52 1.2 Spark架构图 54 2 Spark工作机制 54 2.1 Spark作业基本概念 54 2.2 Spark程序与作业概念映射 55 2.3 Spark作业运行流程 55 3 Spark工作原理 55 3.1 作业调度简介 55 3.2 Application调度 56 3.3 Job调度 56 3.4 Tasks延时调度 56 第七章 Spark运行原理 57 1 Spark运行基本流程 57 2 Spark在不同集群中的运行架构 58 2.1 Spark on Standalone运行过程 59 2.2 Spark on YARN运行过程 60

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值