`
huangyongxing310
  • 浏览: 490626 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

spark基础知识

 
阅读更多
spark基础知识

Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架

官方资料介绍Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍


Hadoop有两个核心模块,分布式存储模块HDFS和分布式计算模块Mapreduce
spark本身并没有提供分布式文件系统,因此spark的分析大多依赖于Hadoop的分布式文件系统HDFS
Hadoop的Mapreduce与spark都可以进行数据计算,而相比于Mapreduce,spark的速度更快并且提供的功能更加丰富



Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的
Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。
Spark Streaming:对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据
MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。
GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作


Spark运行特点:
每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行Task。这种Application隔离机制是有优势的,无论是从调度角度看(每个Driver调度他自己的任务),还是从运行角度看(来自不同Application的Task运行在不同JVM中),当然这样意味着Spark Application不能跨应用程序共享数据,除非将数据写入外部存储系统
Spark与资源管理器无关,只要能够获取executor进程,并能保持相互通信就可以了
提交SparkContext的Client应该靠近Worker节点(运行Executor的节点),最好是在同一个Rack里,因为Spark Application运行过程中SparkContext和Executor之间有大量的信息交换
Task采用了数据本地性和推测执行的优化机制

spark基础知识
https://blog.csdn.net/swing2008/article/details/60869183

支持多种编程语言接口:Java、Scala、Python,许多大公司如IBM等大力支持推广Spark的发展;

介绍了 Spark 的安装,Spark shell 、RDD、Spark SQL、Spark Streaming 等的基本使用。


RDD
RDD记录是的数据的来源,和数据是通过什么方式由原数据转换得来(转换方法),每一个转换的方式(转换方法)都有所记录下来,所以一个个RDD是有链接关系的。

转换的过程中是不会进行相关运算和数据生成的,只是记录了相关的转换过程信息,当遇到行动方法时就取出RDD中的转换过程从头到尾进行相关的转换运算,这样的可以不保存中间转换结果,而减少数据复制和落盘的操作了


例子:
1.通过读取文件生成一个RDD,RDD记录了转换信息为RDD[readfile]
2.RDD通过过滤得到RDD1,RDD记录了转换信息为RDD[readfile,filter]
3.RDD1通过过滤得到RDD2,RDD记录了转换信息为RDD[readfile,filter,filter2]
4.到运行时,任务就会从文件读取一行行的数据并调用filtert得到新的数据,并将新数据作为filter2的输入,最后得到filter2处理后的数据.


RDD
它是个弹性分布式数据集
弹性:数据是记录了数据是如何生成的,并不是记录了具体的数据,所以具有弹性,转换可以随时加入而不会对数据产生任何影响(数据是行动时才进行数据输入输出的)

分布式:原始数据是存放在分布式系统的,RDD在真实转换过程中数据是分布在和个运行任务的机器中


RDD可以持久化到硬盘或内存当中(因为只是一个描述的信息(数据生成过程的描述信息)),为一个分区的数据集,分区的多少决定了并行计算的粒度;


Spark中存在两种依赖:窄依赖(Narrow Dependencies)、宽依赖(Wide Dependencies);
  窄依赖(Narrow Dependencies):一个父RDD的分区只能被一个子RDD的一个分区使用;
  宽依赖(Wide Dependencies):多个子RDD的分区依赖于一个父RDD的同一个分区;



DAG图(有向无环图)


GraphX


https://www.cnblogs.com/sharpxiajun/p/5506822.html (Spark)


分享到:
评论

相关推荐

    spark基础知识整理

    spark基础知识思维导图整理,包括SparkCore和SparkSQL

    spark基础知识.zip

    这个"spark基础知识.zip"压缩包包含了多个PDF文档,覆盖了Spark的各个方面,从基础入门到高级实践,适合对Spark感兴趣或正在学习Spark的人员。 1. **Spark大数据架构概述** (1 Spark大数据架构概述.pdf) - Spark的...

    spark基础知识讲解

    spark基础知识,原理相关。spark基础知识,原理相关。

    (2)Spark基础知识

    Spark下载 Spark的Shells Spark的核心概念

    最全的Spark基础知识解答.pdf

    而RDD是Spark的基础数据结构,是不可变的、分区的、容错的数据集,适用于各种数据处理操作,如map、filter和join等。 Spark的RDD设计中包含了两种依赖类型:宽依赖和窄依赖,这决定了任务调度和数据分区的方式。...

    Spark-Fundamentals:Spark基础知识I-Spark简介

    **Spark基础知识I-Spark简介** Spark,作为大数据处理领域中的明星框架,因其高效、易用和灵活的特点,已经成为许多企业和开发者进行大规模数据处理的首选工具。Spark的核心设计理念是提供一个统一的平台,支持多种...

    Hadoop原理与技术Spark操作实验

    (一)Spark基础知识 (1)输入start-all.sh启动hadoop相应进程和相关的端口号 (2)启动Spark分布式集群并查看信息 (3)网页端查看集群信息 (4)启动spark-shell控制台 1:local模式启动 2:登录master服务器,在...

    spark-1.6.0-bin-hadoop2.6.tgz

    Spark基础知识** Spark的核心设计是基于分布式内存计算模型,它引入了Resilient Distributed Datasets (RDDs)的概念,这是一种可分区的、只读的数据集,可以在集群中的多个节点上并行操作。RDDs支持两种主要操作:...

    46488_Spark大数据技术与应用_习题数据和答案.rar

    1. **第2章**:Spark基础知识与安装配置 - Spark的起源、架构和设计理念 - RDD(弹性分布式数据集)的概念、特点和操作 - Spark Core模块的职责与功能 - Spark的安装步骤,包括Hadoop集成与本地模式、集群模式的...

    大数据spark企业级实战 完整版

    《大数据Spark企业级实战 完整版》是针对已经具备一定Spark基础知识的学习者提供的一份实践指导资料。这本书深入探讨了Spark在实际企业环境中的应用,旨在弥补理论学习与实际操作之间的差距,帮助读者提升技能并更好...

    spark 基础讲解

    spark基础知识,包含了RDD介绍,本地调试,spark-shell 交互式,spark-submit 提交

    基于Spark的大规模推荐系统特征工程(39页).pdf

    本文档主要介绍了基于Spark的大规模推荐系统特征工程的实现,包括推荐系统的架构、Spark基础知识、FESQL引擎、LLVM优化等内容。 首先,本文档介绍了推荐系统的重要性,指出推荐系统在Amazon、Netflix等平台中的应用...

    【Spark研究】极简 Spark 入门笔记——安装和第一个回归程序

    Spark 基础知识点总结 Spark 是一个快速的集群运算平台,以及一系列处理大型数据集的工具包。它最显著的特点就是处理大型数据的能力。 一、Spark 的安装和配置 Spark 的安装和配置其实可以是异常简单的。只需要...

    spark-with-python-course-master.zip_Python+Spark_Spark!_python s

    1. **Spark基础知识**:了解Spark的基本架构,包括RDD(弹性分布式数据集)、DataFrame和Dataset,以及它们之间的关系和应用场景。理解Spark的并行计算模型,如Stage和Task的概念,以及如何通过SparkConf和...

    实验4 基于Spark MLlib的开源软件项目流行度预测1

    **一、Spark基础知识** Spark是一个快速、通用且可扩展的大数据处理框架,它提供了统一的API用于批处理、交互式查询、流处理和机器学习任务。Spark SQL是Spark的一个模块,允许用户使用SQL或DataFrame API对数据进行...

    Spark最佳实践 ,陈欢,林世飞著

    它适合有一定Spark基础知识的开发者和工程师,也适合正在探索Spark应用的技术人员,尤其是那些对大数据分析、处理和学习感兴趣的读者。通过阅读本书,读者将能大幅提升自己在大数据处理领域的实战能力,并能够有效地...

    简单的spark与kafuka示例

    ### Spark基础知识 Spark的核心设计理念是提供一个基于内存计算的分布式计算框架,以提升大数据处理的速度。它支持批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)和机器学习(MLlib)。Spark的...

    spark入门学习基础知识

    Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询...

Global site tag (gtag.js) - Google Analytics