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

时间: 2024-08-30 04:51:42

spark学习(四)spark基本原理及安装的相关文章

Spark学习四:网站日志分析案例

Spark学习四:网站日志分析案例 标签(空格分隔): Spark Spark学习四网站日志分析案例 一创建maven工程 二创建模板 三日志分析案例 一,创建maven工程 1,执行maven命令创建工程 mvn archetype:generate -DarchetypeGroupId=org.scala-tools.archetypes -DarchetypeArtifactId=scala-archetype-simple -DremoteRepositories=http://scal

Spark学习之Spark安装

Spark安装 spark运行环境 spark是Scala写的,运行在jvm上,运行环境为java7+ 如果使用Python的API ,需要使用Python2.6+或者Python3.4+ Spark1.6.2  -  Scala 2.10    Spark 2.0.0  -  Scala  2.11 Spark下载 下载地址:http://spark.apache.org/downloads.html 搭建spark,不需要Hadoop,如有Hadoop集群,可下载对应版本解压 Spark目录

Spark学习(一) Spark初识

一.官网介绍 1.什么是Spark 官网地址:http://spark.apache.org/ Apache Spark™是用于大规模数据处理的统一分析引擎. 从右侧最后一条新闻看,Spark也用于AI人工智能 spark是一个实现快速通用的集群计算平台.它是由加州大学伯克利分校AMP实验室 开发的通用内存并行计算框架,用来构建大型的.低延迟的数据分析应用程序.它扩展了广泛使用的MapReduce计算 模型.高效的支撑更多计算模式,包括交互式查询和流处理.spark的一个主要特点是能够在内存中进

Spark学习笔记——Spark Streaming

许多应用需要即时处理收到的数据,例如用来实时追踪页面访问统计的应用.训练机器学习模型的应用, 还有自动检测异常的应用.Spark Streaming 是 Spark 为这些应用而设计的模型.它允许用户使用一套和批处理非常接近的 API 来编写流式计算应用,这样就可以大量重用批处理应用的技术甚至代码. Spark Streaming 使用离散化流( discretized stream)作为抽象表示, 叫作 DStream. DStream 是随时间推移而收到的数据的序列.在内部,每个时间区间收到

【Spark学习】Spark 1.1.0 with CDH5.2 安装部署

[时间]2014年11月18日 [平台]Centos 6.5 [工具]scp [软件]jdk-7u67-linux-x64.rpm spark-worker-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.noarch.rpm spark-core-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.noarch.rpm spark-history-server-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.

spark学习四

5.sc.textFiles() 与 sc.wholeTextFiles() 的区别 sc.textFile()是将path 里的所有文件内容读出,以文件中的每一行作为一条记录的方式,文件的每一行 相当于 列表 的一个元素,因此可以在每个partition中用for i in data的形式遍历处理数据. sc.wholeTextFiles()返回的是[(key, val), (key, val)...]的形式,其中key是文件路径,val是文件内容,每个文件作为一个记录!这说明这里的 val

spark学习笔记-spark集群搭建(7)

安装spark包 1 1.将spark-1.3.0-bin-hadoop2.4.tgz使用WinSCP上传到/usr/local目录下. 2 2.解压缩spark包:tar zxvf spark-1.3.0-bin-hadoop2.4.tgz. 3 3.更改spark目录名:mv spark-1.3.0-bin-hadoop2.4 spark 4 4.设置spark环境变量 5 vi .bashrc 6 export SPARK_HOME=/usr/local/spark 7 export PA

Spark学习笔记——Spark上数据的获取、处理和准备

数据获得的方式多种多样,常用的公开数据集包括: 1.UCL机器学习知识库:包括近300个不同大小和类型的数据集,可用于分类.回归.聚类和推荐系统任务.数据集列表位于:http://archive.ics.uci.edu/ml/ 2.Amazon AWS公开数据集:包含的通常是大型数据集,可通过Amazon S3访问.这些数据集包括人类基因组项目.Common Crawl网页语料库.维基百科数据和Google Books Ngrams.相关信息可参见:http://aws.amazon.com/p

Spark学习笔记-Spark Streaming

http://spark.apache.org/docs/1.2.1/streaming-programming-guide.html 在SparkStreaming中如何对数据进行分片 Level of Parallelism in Data Processing Cluster resources can be under-utilized if the number of parallel tasks used in any stage of the computation is not

Spark学习9 Spark Streaming流式数据处理组件学习

目录 SparkStreaming相关概念 概述 SparkStreaming的基本数据抽象DStream 处理模式 操作流程中细节 StreamingContext StreamingContext对象的创建 StreamingContext主要用法 输入源 DStream两种转化 无状态转化操作 有状态转化操作 输出操作 实践(最简单的wordCount) 创建StreamingContext对象 创建DStream对象 对DStream对象操纵 SparkStreaming相关概念 概述