spark学习(四)spark基本原理及安装

MapReduce与spark

MapReduce:   操作单一,只有map,reduce                                                                                                                spark:提供多种操作:过滤,分组,排序....

      

 (一)spark生态环境:

        

  1. Mesos和YARN都是资源调度管理器
  2. HDFS:分布式系统存储组件  
  3. S3:亚马逊提供的云端的简单的存储服务
  4. Tachyon:基于内存的分布式文件系统
  5. Spark  Core:复杂批量数据处理,取代MapReduce  Hive
  6. Spark  Streaming:满足实时数据流毫秒级计算需求,基于RDD数据抽象
  7. Structured  Streaming:满足特定场景下的实时数据流毫秒级流计算需求,基于DataFrame数据抽象(在spark 2.2之后成为正式版)
  8. Spark  SQL:满足历史数据交互式查询分析需求
  9. GraPhx:满足图计算需求
  10. MLlib:满足机器学习需求;机器学习算法库,可以直接调用算法接口;历史数据的数据挖掘需求

(二)运行架构

  1. RDD(弹性分布式数据集):最核心的数据抽象;提供高度受限的共享内存模型(只读)
  2. DAG(有向无环图):反映RDD之间的依赖关系
  3. Executor(进程):节点上派生多线程运行任务
  4. application(应用程序):用户写的程序
  5. Job(作业):切分为多个阶段
  6. 结构:

          

         7,关键词之间关系:

             

(三)运行流程:

    1,应用程序发到主节点,Driver(指挥所)派生出SparkContext对象(指挥官);

    2,SparkContext会申请资源管理器,把作业分成不同阶段并把每个阶段的任务调度到不同的工作节点(Worker Node)上执行。监控所有过程;

    3,资源管理器收到请求后会分配内存资源,启动Executor 进程(驻留在工作节点上)派生多个线程;

    4,SparkContext会将代码中的对RDD的操作转换为RDD的依赖关系,根据依赖关系构建DAG图,将DAG图发送到DAG  Scheduler组件;

    5,DAG  Scheduler把DAG分解成多个Stage(阶段);Stage发到Task  Scheduler(根据工作节点上的Executor的申请分发任务到与数据对应的工作节点),计算程序发到数据相关的工作节点;

    

    6,Executor把结果反馈到Task  Scheduler------->DAG  Scheduler--------->SparkContext做最后的处理(返回给用户或HDFS);

     

(四)RDD概述:

   1,RDD运行原理:提供抽象的数据结构,根据依赖关系生成DAG图,形成流水线,在内存中操作,避免操作磁盘数据

   2,RDD:只读的分区集合(不同的分区到不同的机器并行处理);操作时,将原来的RDD转换生成新的RDD

     3,RDD操作:分为动作类型操作和转换类型操作;转换类型操作:只记录转换的轨迹,不发生计算。(一次只能对一整个RDD进行粗粒度操作,不支持细粒度操作),scala

的接口提供简单操作(转换,过滤,排序,Map,Reduce)

     4,图示:

    

    提供容错机制,恢复数据简单:

    

    5,RDD的依赖关系:窄依赖(不划分阶段);宽依赖(划分多个阶段,递归算法划分);根据Shuffle操作判断,如果存在Shuffle操作(洗牌)就是宽依赖

                   例如:单词统计操作中,Map操作后会进行Shuffle操作,将相同的单词放入一个Reduce中。

      窄依赖:父RDD对应子RDD的关系:一对一或多对一;不涉及数据转换;可以进行流水线优化(优化原理:fork/join机制;并行执行任务的框架)

      宽依赖:父RDD对应子RDD的关系:一对多;涉及数据转换;不可以进行流水线优化(当发生shuffle操作时会进行对磁盘的读写操作)

                  

      

(五)Spark安装

       spark-2.1.0-hadoop-2.6版:下载地址:http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.6.tgz

  安装单机教程:http://dblab.xmu.edu.cn/blog/1307-2/

  

  

       

原文地址:https://www.cnblogs.com/lq13035130506/p/12238841.html