SPARKCORE的简单了解--大数据纪录片第十记

  今天不知道写什么好,想了一下,Hive和ElastICSearch都有一点了解,但是对于这两个没什么好记录的。因为Hive的一些问题会在后面有大数据相关问题和答案的总结,到时候会直接落实到面试笔试中的问题,更加直接。ES如果说概念上的话主要是倒排索引和各个类型与数据库的对应类型。所以想了想还是写一下SparkCore的一些解析,后续会有SparkCore内置函数的介绍。

  RDD

    RDD(Resilient Distributed Dataset)是sparkcore的基石,叫做弹性分布式数据集,它代表不可变、可分区、里面的元素可并行计算的集合。在Spark中的主要操作就是对RDD的创建、转化已有RDD和对调用RDD操作进行求值。每个RDD都被分为多个分区,这些分区运行在集群中的不同节点上。

    RDD的操作分为两种:转换操作(transformations)和行为操作(actions)。转换操作是将RDD转换为另一个RDD,行为操作是向RDD外的驱动器程序返回结果或者把结果写入外部系统的操作。spark是惰性计算模式,RDD只有在第一次执行行为操作的时候才会真正的计算。

    RDD的一些属性:

      1、partition:分片是RDD的基本组成单位。每个RDD都会被一个计算任务处理,并决定并行计算的粒度。用户可以在创建RDD的时候指定分片的个数,如果没有指定则默认为程序所分配到的CPU的数量

      2、一个计算每个分区的函数。spark中RDD的计算是以分片为单位的,每个RDD都会实现compute函数以达到这个目的

      3、RDD之间的依赖关系。RDD的每次转换操作都会生成一个新的RDD,所以RDD就会形成类似流水一样的前后依赖,数据丢失时可以通过依赖重新计算丢失的数据

      4、partitioner,RDD的分片函数。spark中实现两种类型的分配函数,一个是基于Hash的HashPartitioner,一个是基于范围的RangePartitioer。只有基于key-value的RDD才会有partitioner

  对于spark觉得是很大的一个东西,很多要写,就更不知道要写什么。之前对spark core,spark sql,spark streaming都有一点了解,所以一直想这个项目或者实例来把这些东西用起来。

猜你喜欢

转载自www.cnblogs.com/qugemingzihaonan13/p/9888275.html