Spark RDD详解】的更多相关文章

RDD(Resilient Distributed Datasets)弹性的分布式数据集,又称Spark core,它代表一个只读的.不可变.可分区,里面的元素可分布式并行计算的数据集. RDD是一个很抽象的概念,不易于理解,但是要想学好Spark,必须要掌握RDD,熟悉它的编程模型,这是学习Spark其他组件的基础.笔者在这里从名字和几个重要的概念给大家一一解读: Resilient(弹性的) 提到大数据必提分布式,而在大规模的分布式集群中,任何一台服务器随时都有可能出现故障,如果一个task…
1.RDD是什么 RDD(Resilient Distributed Dataset):是Spark的核心数据结构,指的是一个只读的.可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用.  RDD 是只读的  RDD 是分区记录的集合  RDD 是容错的  RDD 是高效的  RDD 不需要物化  RDD 可以缓存的 2.RDD的产生 1.传统的MapReduce虽然具有自动容错.平衡负载和可拓展性的优点,但是其最大缺点是采用非循环式的数据流模型,使得在迭…
Spark参数详解 (Spark1.6) 参考文档:Spark官网 在Spark的web UI在"Environment"选项卡中列出Spark属性.这是一个很有用的地方,可以检查以确保属性设置正确.注意,只有通过spark-defaults.conf, SparkConf, 或者 command line配置过的属性才会出现 .对于所有其他配置属性,控制内部设置的大多数属性具有合理的默认值,在没有额外配置的额情况下,可以假定使用默认值. 应用级别的参数 参数名称 默认值 释义 注释…
常用transformation及action介绍,spark算子详解 一.常用transformation介绍 1.1 transformation操作实例 二.常用action介绍 2.1 action操作实例 三.spark算子详解 3.1弹性分布式数据集 (RDD) 3.2Spark 算子大致可以分为以下两类 3.2.1Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理 3.2.2Action 行动算子:这类算子会触发 SparkContext…
一.引言 作者:Albert陈凯链接:https://www.jianshu.com/p/f3181afec605來源:简书 Introduction 本文主要讨论 Apache Spark 的设计与实现,重点关注其设计思想.运行原理.实现架构及性能调优,附带讨论与 Hadoop MapReduce 在设计与实现上的区别.不喜欢将该文档称之为“源码分析”,因为本文的主要目的不是去解读实现代码,而是尽量有逻辑地,从设计与实现原理的角度,来理解 job 从产生到执行完成的整个过程,进而去理解整个系统…
Shuffle简介 Shuffle描述着数据从map task输出到reduce task输入的这段过程.shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量.因为在分布式情况下,reduce task需要跨节点去拉取其它节点上的map task结果.这一过程将会产生网络资源消耗和内存,磁盘IO的消耗.通常shuffle分为两部分:Map阶段的数据准备和Reduce阶段的数据拷…
不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168.80.12) 然后,安装目录是在/home/hadoop/app下. 官方建议在master机器上安装Hue,我这里也不例外.安装在bigdatamaster机器上. Hue版本:hue-3.9.0-cdh5.5.4 需要编译才能使用(联网) 说给大家的话:大家电脑的配置好的话,一定要安装clou…
1.GraphX介绍 1.1 GraphX应用背景 Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求. 众所周知·,社交网络中人与人之间有很多关系链,例如Twitter.Facebook.微博和微信等,这些都是大数据产生的地方都需要图计算,现在的图处理基本都是分布式的图处理,而并非单机处理.Spark GraphX由于底层是基于Spark来处理的,所以天然就是一个分布式的图处理系统. 图的分布式或者…
Spark提供三个位置用来配置系统: Spark属性:控制大部分的应用程序参数,可以用SparkConf对象或者Java系统属性设置 环境变量:可以通过每个节点的 conf/spark-env.sh脚本设置.例如IP地址.端口等信息 日志配置:可以通过log4j.properties配置 Spark属性 Spark属性控制大部分的应用程序设置,并且为每个应用程序分别配置它.这些属性可以直接在SparkConf上配置,然后传递给SparkContext.SparkConf 允许你配置一些通用的属性…
1.什么是RDD? 上一章讲了Spark提交作业的过程,这一章我们要讲RDD.简单的讲,RDD就是Spark的input,知道input是啥吧,就是输入的数据. RDD的全名是Resilient Distributed Dataset,意思是容错的分布式数据集,每一个RDD都会有5个特征: 1.有一个分片列表.就是能被切分,和hadoop一样的,能够切分的数据才能并行计算. 2.有一个函数计算每一个分片,这里指的是下面会提到的compute函数. 3.对其他的RDD的依赖列表,依赖还具体分为宽依…
摘要:   RDD:弹性分布式数据集,是一种特殊集合 ‚ 支持多种来源 ‚ 有容错机制 ‚ 可以被缓存 ‚ 支持并行操作,一个RDD代表一个分区里的数据集   RDD有两种操作算子:          Transformation(转换):Transformation属于延迟计算,当一个RDD转换成另一个RDD时并没有立即进行转换,仅仅是记住了数据集的逻辑操作          Ation(执行):触发Spark作业的运行,真正触发转换算子的计算   本系列主要讲解Spark中常用的函数操作:…
RDD全称叫做弹性分布式数据集(Resilient Distributed Datasets),它是一种分布式的内存抽象,表示一个只读的记录分区的集合,它只能通过其他RDD转换而创建,为此,RDD支持丰富的转换操作(如map, join, filter, groupBy等),通过这种转换操作,新的RDD则包含了如何从其他RDDs衍生所必需的信息,所以说RDDs之间是有依赖关系的.基于RDDs之间的依赖,RDDs会形成一个有向无环图DAG,该DAG描述了整个流式计算的流程,实际执行的时候,RDD是…
Spark Core 1. 概述 Spark 是一种基于内存的快速.通用.可扩展的大数据分析计算引擎 1.1 Hadoop vs Spark 上面流程对应Hadoop的处理流程,下面对应着Spark的处理流程 Hadoop Hadoop 是由 java 语言编写的,在分布式服务器集群上存储海量数据并运行分布式 分析应用的开源框架 作为 Hadoop 分布式文件系统,HDFS 处于 Hadoop 生态圈的最下层,存储着所有的 数 据 , 支持着 Hadoop的所有服务 . 它的理论基础源于Goog…
欢迎转载,转载请注明出处,徽沪一郎 概要 在新近发布的spark 1.0中新加了sql的模块,更为引人注意的是对hive中的hiveql也提供了良好的支持,作为一个源码分析控,了解一下spark是如何完成对hql的支持是一件非常有趣的事情. Hive简介 Hive的由来 以下部分摘自Hadoop definite guide中的Hive一章 “Hive由Facebook出品,其设计之初目的是让精通SQL技能的分析师能够对Facebook存放在HDFS上的大规模数据集进行分析和查询. Hive大大…
添加针对scala文件的编译插件 ------------------------------ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoca…
checkpoint在spark中主要有两块应用:一块是在spark core中对RDD做checkpoint,可以切断做checkpoint RDD的依赖关系,将RDD数据保存到可靠存储(如HDFS)以便数据恢复:另外一块是应用在spark streaming中,使用checkpoint用来保存DStreamGraph以及相关配置信息,以便在Driver崩溃重启的时候能够接着之前进度继续进行处理(如之前waiting batch的job会在重启后继续处理). 本文主要将详细分析checkpoi…
前段时间看spark,看着迷迷糊糊的.最近终于有点头绪,先梳理了一下spark rpc相关的东西,先记录下来. 1,概述 个人认为,如果把分布式系统(HDFS, HBASE,SPARK等)比作一个人,那么RPC可以认为是人体的血液循环系统.它将系统中各个不同的组件(如Hbase中的master, Regionserver, client)联系了起来.同样,在spark中,不同组件像driver,executor,worker,master(stanalone模式)之间的通信也是基于RPC来实现的…
讲说spark的资源调度和任务调度,基本的spark术语,这里不再多说,懂的人都懂了... 按照数字顺序阅读,逐渐深入理解:以下所有截图均为个人上传,不知道为什么总是显示别人的QQ,好尴尬,无所谓啦,开始吧~~ 1 宽窄依赖与Stage划分: 上熟悉的图: 在 Spark 里每一个操作生成一个 RDD,RDD 之间连一条边,最后这些 RDD 和他们之间的边组成一个有向无环图,这个就是 DAG,Spark 内核会在需要计算发生的时刻绘制一张关于计算路径的有向无环图,也就是 DAG.有了DAG 图,…
参考: https://github.com/JerryLead/SparkInternals/blob/master/markdown/english/5-Architecture.md?winzoom=1 相关文献: <Spark源码分析之Storage模块> <详细探究Spark的shuffle实现> <Spark源码分析之-deploy模块> <Spark源码分析之-scheduler模块> <SparkStreaming介绍>…
spark打包还是比较复杂的,特别的其中有关R语言的模块.在本章,我就将其中遇到的所有问题为大家一一讲解,为大家提供一点经验. 这里的打包命令是直接从官网中找的,这里我们最后得到的是tgz格式的包.打包的命令是——./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes 这里我…
Spark - Parquet 概述 Apache Parquet属于Hadoop生态圈的一种新型列式存储格式,既然属于Hadoop生态圈,因此也兼容大多圈内计算框架(Hadoop.Spark),另外Parquet是平台.语言无关的,这使得它的适用性很广,只要相关语言有对应支持的类库就可以随机使用: Parquet的优劣对比: 支持嵌套结构,这点对比同样是列式存储的OCR具备一定优势: 适用于OLAP场景,对比CSV等行式存储结构,列示存储支持映射下推和谓词下推,减少磁盘IO: 同样的压缩方式下…
参考资料: Spark和RDD模型研究:http://itindex.net/detail/51871-spark-rdd-模型 理解Spark的核心RDD:http://www.infoq.com/cn/articles/spark-core-rdd/ Spark RDD详解:http://f.dataguru.cn/thread-475874-1-1.html http://developer.51cto.com/art/201309/410276_1.htm…
RDD是什么? RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用. RDD内部可以有许多分区(partitions),每个分区又拥有大量的记录(records). 五个特征: dependencies:建立RDD的依赖关系,主要rdd之间是宽窄依赖的关系,具有窄依赖关系的rdd可以在同一个stage中进行计算. partition:一个rdd会有若干个分区,分区的大小决定了对这个…
RDD详解 原文连接 http://xiguada.org/spark_rdd/ RDD(Resilient Distributed Datasets弹性分布式数据集),是spark中最重要的概念,可以简单的把RDD理解成一个提供了许多操作接口的数据集合,和一般数据集不同的是,其实际数据分布存储于一批机器中(内存或磁盘中).当然,RDD肯定不会这么简单,它的功能还包括容错.集合内的数据可以并行处理等.图1是RDD类的视图. 图1 一个简单的例子 下面是一个实用scala语言编写的spark应用(…
原文连接 http://xiguada.org/spark/ Spark概述 当前,MapReduce编程模型已经成为主流的分布式编程模型,它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上.但是MapReduce也存在一些缺陷,如高延迟.不支持DAG模型.Map与Reduce的中间数据落地等.因此在近两年,社区出现了优化改进MapReduce的项目,如交互查询引擎Impala.支持DAG的TEZ.支持内存计算Spark等.Spark是UC Berkeley AM…
先来一个问题,也是面试中常问的: Spark为什么会流行? 原因1:优秀的数据模型和丰富计算抽象 Spark 产生之前,已经有MapReduce这类非常成熟的计算系统存在了,并提供了高层次的API(map/reduce),把计算运行在集群中并提供容错能力,从而实现分布式计算. 虽然MapReduce提供了对数据访问和计算的抽象,但是对于数据的复用就是简单的将中间数据写到一个稳定的文件系统中(例如HDFS),所以会产生数据的复制备份,磁盘的I/O以及数据的序列化,所以在遇到需要在多个计算之间复用中间结果的操…
RDD是什么? RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD.从编程的角度来看,RDD可以简单看成是一个数组.和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理.因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果.本文为第一部分,将介绍Spark RDD中与Map和Reduce相关的API中.   如何创建RDD? RDD可以从普通数组创建出…
RDD是什么? RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD.从编程的角度来看, RDD可以简单看成是一个数组.和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理.因此,spark应用程序所做的无非是把需要处理的数据转换成RDD,然后对RDD进行一系列的变换和操作从而得到结果.本文为第一部分,将介绍Spark RDD中与Map和Reduce相关的API. 如何创建RDD? RDD可以从普通数组创建出来,…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是spark第三篇文章,我们继续来看RDD的一些操作. 我们前文说道在spark当中RDD的操作可以分为两种,一种是转化操作(transformation),另一种是行动操作(action).在转化操作当中,spark不会为我们计算结果,而是会生成一个新的RDD节点,记录下这个操作.只有在行动操作执行的时候,spark才会从头开始计算整个计算. 而转化操作又可以进一步分为针对元素的转化操作以及针对集合的转化操作. 针对元素的转化操作…
Transformation和action详解 视频教程: 1.优酷 2.YouTube 什么是算子 算子是RDD中定义的函数,可以对RDD中的数据进行转换和操作. 算子分类: 具体: 1.Value数据类型的Transformation算子,这种变换并不触发提交作业,针对处理的数据项是Value型的数据. 2.Key-Value数据类型的Transfromation算子,这种变换并不触发提交作业,针对处理的数据项是Key-Value型的数据对. 3.Action算子,这类算子会触发SparkC…