![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark系列专栏
文章平均质量分 75
Spark系列专栏
白眼黑刺猬
技术分享 ,线上线下授课
微信 17710299606
展开
-
Flink双流connect的用法
业务需求:根据id将两个流中的数据匹配在一起组合成新的流数据,默认两个流的最大延迟时间为60s超过60s还未匹配成功,意味着当前只有一个流来临,则任务流信息异常,需要将数据侧流输出思路:先将两个流keyBy(),再connect,然后调用CoProcessFunction函数,在里面处理流1和流2,再设置一个60s的定时器,如果60s内另一个流没来,则把达到的流侧输出// 流1 要先按照id分组,再设置水印和事件时间,因为后面注册的定时器是基于事件时间的DataStreamSource<.原创 2021-07-27 22:28:28 · 2312 阅读 · 1 评论 -
Spark连接Hive的metastore异常
spark操作hive的时候出现错误,不过有时候我们在创建SQLContext实例的时候遇到类似下面的异常: java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient at org.apache.hadoop.hive.ql.session.Sessio...原创 2021-10-19 21:43:04 · 1181 阅读 · 1 评论 -
spark封神之路(15)-广播变量
简介广播变量可以让我们在每台计算机上保留一个只读变量,而不是为每个任务复制一份副本。例如,可以使用他们以高效的方式为每个计算节点提供大型输入数据集的副本。Spark也尽量使用有效的广播算法来分发广播变量,以降低通信成本。 另外,Spark action操作会被划分成一系列的stage来执行,这些stage根据是否产生shuffle操作来进行划分的。Spark会自动广播每个stage任务需要的通用数据。这些被广播的数据以序列化的形式缓存起来,然后在任务运行前进行反序列化。也就是说,在以下两种情况下显示的创原创 2021-06-27 12:41:50 · 1376 阅读 · 1 评论 -
spark封神之路(14)-累加器
基本使用累加器用来把Executor端变量信息聚合到Driver端。在 Driver程序中定义的变量,在Executor端的每个Task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回 Driver端进行merge。观察一个问题: 原因是数据在executor端执行完毕以后并没有将acc结果数据返回def main(args: Array[String]): Unit = { val sc: SparkContext = SparkUtil.getSc va原创 2021-06-27 12:36:27 · 280 阅读 · 1 评论 -
spark封神之路(13)-RDD分区详解
1 简介简介理解RDD是spark中封装的用来处理数据的一种抽象概念,其主要包含处理逻辑和要处理的数据! 无论是不读取文件获取的RDD还是从集合转换而来的RDD最终的目的都是为了处理对应的数据 ,数据量海量的话 , 我们应该很容易的想到让数据并行化分布式运算!牵扯到分布式那必然存在数据任务划分的问题!那么RDD在创建的时候就对数据进行了有效的分区!当然我们也可以合理的改变RDD的分区来提高运算效率!一个partitioner,即RDD的分片函数。当前Spark中实现了两种类型的分片函数.原创 2021-06-23 08:54:48 · 1384 阅读 · 1 评论 -
spark封神之路(12)-RDD checkpoint
1 checkpoint介绍把rdd中的数据,直接存储到hdfs中或者本机目录中。适用场景: 非常非常非常不容易得到的数据。迭代次数非常多的数据 SQL Server 数据库引擎可以在意外关闭或崩溃后从恢复期间开始应用日志中包含的更改 HDFS的元数据管理的时候我们提到过checkpoint机制 , 定期更新元数据的一种策略 所以你可以简单理解成 Checkpoint 是用来容错的,当错误发生的时候,可以迅速恢复的一种机制A checkpoint creates a known原创 2021-06-23 08:47:54 · 407 阅读 · 1 评论 -
spark封神之路(11)-RDD缓存
3.3.2 RDD缓存RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以缓存在JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action算子时,该RDD将会被缓存在计算节点的内存中,并供后面重用。当一个RDD多次被使用,或者是RDD的计算任务链比较长,计算的结果相对较珍贵的场景下图中标注的是两个Job中的RDD是不能同时使用一份数据使用缓存以后数据只加载一次 , 将多次使用的RDD数据缓存起来persist和cache..原创 2021-06-21 12:45:28 · 493 阅读 · 2 评论 -
spark封神之路(10)-RDD依赖和血缘
3.3 RDD进阶3.3.1 RDD依赖关系3.3.1.1 依赖和血缘依赖和血缘关系RDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列Lineage(血统)记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。(由于RDD中是不记录数据的,为了实现分布式计算中的容错 , RDD必须记录RDD之间的血缘关系)RDD之间的依赖关系相邻的两个RDD之间原创 2021-06-21 12:40:47 · 611 阅读 · 1 评论 -
spark封神之路(9)-RDD算子详解第三部分
RDD 是spark抽象出来的运算逻辑,RDD中是不存储数据的,只记录数据的操作和RDD之间的血缘关系,只有执行到行动算子的时候才会处理真正的数据!1.1 reducereduce将RDD中元素两两传递给输入函数,同时产生一个新值,新值与RDD中下一个元素再被传递给输入函数,直到最后只有一个值为止。def main(args: Array[String]): Unit = { val sc: SparkContext = SparkUtil.getSparkContext() val arr原创 2021-06-20 13:55:38 · 274 阅读 · 0 评论 -
spark封神之路(8)-RDD算子详解第二部分
1.8 sample def sortByKey(ascending: Boolean = true, numPartitions: Int = self.partitions.length)采样操作,用于从样本中取出部分数据。withReplacement; 参数一 是否放回fraction : 每个元素取出的比例seed: 随机种子 , 用于返回结果数据 def main(args: Array[String]): Unit = { val sc: SparkContext原创 2021-06-20 13:48:41 · 492 阅读 · 0 评论 -
spark封神之路(7)-RDD算子详解第一部分
算子简介算子是一个函数空间到函数空间上的[映射]O:X→X。广义上的算子可以推广到任何空间,如[内积空间]等。RDD上的方法称为算子在 RDD 上支持 2 种操作: transformation转换 从一个已知的 RDD 中创建出来一个新的 RDD 例如: map就是一个transformation. *action *行动 在数据集上计算结束之后, 给驱动程序返回一个值. 例如: reduce就是一个action.在 Spark 中几乎所有的transformation原创 2021-06-11 20:19:46 · 730 阅读 · 2 评论 -
spark封神之路(6)-RDD创建详解
3.2 RDD编程在 Spark 中,RDD 被表示为对象,通过对象上的方法调用来对 RDD 进行转换。经过一系列的transformations定义 RDD 之后,就可以调用 actions 触发 RDD 的计算action可以是向应用程序返回结果(count, collect等),或者是向存储系统保存数据(saveAsTextFile等)。在Spark中,只有遇到action,才会执行 RDD 的计算(即延迟计算),这样在运行时可以通过管道的方式传输多个转换(计算逻辑)。要使用 Spark,开发者需原创 2021-06-11 20:08:17 · 525 阅读 · 0 评论 -
spark封神之路(5)-图解运行流程
可将图片保存到本地细细观摩本专栏系列视频教程原创 2021-06-09 17:07:01 · 213 阅读 · 0 评论 -
spark封神之路(4)-RDD详解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数..原创 2021-06-08 13:38:34 · 332 阅读 · 0 评论 -
spark封神之路(3)-spark运行架构
3spark运行架构3.1核心组件在驱动程序中,通过SparkContext主导应用的执行 SparkContext可以连接不同类型的ClusterManager(Standalone、YARN、Mesos),连接后,获得集群节点上的Executor 一个Worker节点默认一个Executor,可通过SPARK_WORKER_INSTANCES调整 每个应用获取自己的Executor 每个Task处理一个RDD分区1、DriverSpark驱动节点,用于执行Spa...原创 2021-06-08 13:32:55 · 501 阅读 · 0 评论 -
spark封神之路(2)-spark运行模式
2spark运行模式入门1.官网地址http://spark.apache.org/2.文档查看地址https://spark.apache.org/docs/2.1.1/3.下载地址https://archive.apache.org/dist/spark/2.1idea编程开发创建maven项目,添加依赖<properties><maven.compiler.source>1.8</maven.compiler.so...原创 2021-06-08 13:18:18 · 892 阅读 · 3 评论 -
spark封神之路(1)-spark简介
1Spark简介Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache的顶级项目,2014年5月发布spark1.0,2016年7月发布spark2.0,2020年6月18日发布spark3.0.0快如闪电的统一分析引擎 分析处理海量的数据MapReduce:运算模型单一[map(落地)shufflereduce],和磁盘频繁的交...原创 2021-06-08 13:09:52 · 484 阅读 · 0 评论