数据结构之字典树 数据结构字典树的学习:TireTrie 树,也叫“字典树”,是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。树的本质,就是利用字符串之间的公共前缀,将重复的前缀合并在一起。Trie 树的本质,就是利用字符串之间的公共前缀,将重复的前缀合并在一起。实现将字符串集合构造成 Trie 树。这个过程分解开来的话,就是一个...
Spark内核解析1 Spark通讯架构 脚本探究: 概述Spark 内核泛指 Spark 的核心运行机制,包括 Spark 核心组件的运行机制、Spark 任务调度机制、Spark 内存管理机制、Spark 核心功能的运行原理。核心组件DriverSpark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作。Driver...
Spark内核解析2 Spark的交互流程- - -节点启动: Master启动时首先创一个RpcEnv对象,负责管理所有通信逻辑Master通过RpcEnv对象创建一个Endpoint,Master就是一个Endpoint,Worker可以与其进行通信Worker启动时也是创一个RpcEnv对象Worker通过RpcEnv对象创建一个EndpointWo...
Spark之GraphX GraphX相关学习: 简介GraphX 是 Spark 图表和图形并行计算的新组件。GraphX 延伸 Spark RDD 通过引入新的图形的抽象:计算与连接到每个顶点和边缘性的向量。以支持图形计算,GraphX 公开了一组基本的操作符(例如 subgraph, joinVertices和 aggregateMessages)以及一...
Spark之StructuredStreaming Structured Streaming相关学习: 简介 Structured Streaming是Spark2.0版本提出的新的实时流框架,是一种基于Spark SQL引擎的可扩展且容错的流处理引擎。在内部,默认情况下,结构化流式查询使用微批处理引擎进行处理,该引擎将数据流作为一系列小批量作业处理,从而实现低至100毫秒的端到端延迟和...
Spark之SparkStreaming的DStream操作 DStream的转换操作和输出、累加器等: 转换DStream上的原语分为Transformations(转换)和Output Operations(输出)两种,此外转换操作中还有一些比较特殊的原语,如:updateStateByKey()、transform()以及各种Window相关的原语。TransformationM...
Spark之SparkStreaming数据源 SparkStreaming的数据源 文件 Flume Kafka: DStreams输入Spark Streaming原生支持一些不同的数据源。一些“核心”数据源已经被打包到Spark Streaming 的 Maven 工件中,而其他的一些则可以通过 spark-streaming-kafka 等附加工件获取。每个接收器都以 Spa...
Spark之SparkStreaming理论篇 SparkStreaming的相关理论学习: 简介Spark Streaming用于流式数据的处理。Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如...
Spark之SparkSQL数据源 SparkSQL数据源:parquet Json Mysql Hive: SparkSQL数据源手动指定选项Spark SQL的DataFrame接口支持多种数据源的操作。一个DataFrame可以进行RDD的方式的操作,也可以被注册为临时表。把DataFrame注册为临时表之后,就可以对该DataFrame执行SQL查询。Spar...
Spark之SparkSQL理论篇 Spark SQL 理论学习: 简介Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。特点1)易整合2) 统一的数据访问方式3)兼容Hive4)标准的数据连接 SparkSQL可以看做是一个转换层,向下对接各种不同的结构化数据源...
Spark之SparkSQL实战 DataFrames 基本操作和 DSL SQL风格 UDF函数 以及数据源: SparkSQL查询Json数据准备123{"name":"Michael"}{"name":"Andy", "age":30}{"name":"Justin", "age":19}12345val df =spark.read.json("/input...
Spark之RDD实战篇3 键值对RDD、数据读取与保存、累加器、广播变量: 键值对RDDSpark 为包含键值对类型的 RDD 提供了一些专有的操作 在PairRDDFunctions专门进行了定义。这些 RDD 被称为 pair RDD。有很多种方式创建pair RDD,在输入输出章节会讲解。一般如果从一个普通的RDD转 为pair RDD时,可以调用map(...
Spark之RDD实战2 宽窄依赖、DAG RDD相关概念: 依赖RDD和它依赖的父RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency)。窄依赖窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用。宽依赖窄依赖指的是每一个父RDD的Partition...
Spark之RDD理论篇 Spark的基石RDD: RDD与MapReduceSpark的编程模型是弹性分布式数据集(Resilient Distributed Dataset,RDD),它是MapReduce的扩展和延申,解决了MapReduce的缺陷:在并行计算阶段高效地进行数据共享.运行高效的数据共享概念和类似于MapReduce操作方式,使并行计算高效运...
Spark之RDD实战篇 Spark RDD创建、转换、行动算子、RDD的持久化: RDD编程在Spark中,RDD被表示为对象,通过对象上的方法调用来对RDD进行转换。经过一系列的transformations定义RDD之后,就可以调用action触发RDD的计算,action可以是向应用程序返回结果(count, collect等),或者是向存储系统保存数据...
数据结构之哈希表 哈希表的相关学习: 哈希表散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到...
Spark生态圈及安装 Spark生态圈的简单介绍和安装: Spark2009年由马泰·扎哈里亚在加州伯克利分校的AMPLab实现开发的子项目,经过开源捐给了Apache基金会,最后成为了我们熟悉的Apache Spark,Spark式式由Scala语言实现的专门为大规模数据处理而设计的快速通用的计算引擎,经过多年的发展势头迅猛,当然,Flink的出现,也将...
数据结构之红黑树 2-3树和红黑树相关学习: 红黑树和2-3树本身是等价的,在学习红黑树之前我们不妨去了解一下2-3树的特性。当我们理解了2-3树之后,对于红黑树和通常用于磁盘存储,文件系统,数据库相应的B类树也是有帮助的。2-3树2-3树是最简单的B-树(或-树)结构,其每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。2-3树不是二叉树(满足...
数据结构之AVL树 AVL树相关学习与实现: 简介AVL树是最早被发明的自平衡二叉查找树。在AVL树中,任一节点对应的两棵子树的最大高度差为1,因此它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下的时间复杂度(都是$O(\log n)$。增加和删除元素的操作则可能需要借由一次或多次树旋转,以实现树的重新平衡。AVL树得名于它的发明者G. M. Ad...
数据结构之并查集 数据结构并查集的学习: 并查集在计算机科学中, 并查集是一种树型的数据结构 ,用于处理一些不交集(Disjoint Sets)的合并及查询问题。 有一个联合-查找算法 ( union-find algorithm )定义了两个用于此数据结构的操作:Find:确定元素属于哪一个子集。 它可以被用来确定两个元素是否属于同一子集。Uni...