随笔分类 -  spark

摘要:v> RDD 任务切分中间分为:Application、Job、Stage 和 Task Application:初始化一个 SparkContext 即生成一个 Application; Job:一个 Action 算子就会生成一个 Job; Stage:Stage 等于宽依赖(ShuffleDe 阅读全文
posted @ 2024-02-21 17:26 会飞的猪仔 阅读(21) 评论(0) 推荐(0) 编辑
摘要:分析源码步骤: 第一步程序入口: 第二步一直查看runjob方法,可以看出collect()是RDD行动算子,与Job运行提交相关 rdd.scala sparkcontext.scala sparkcontext.scala sparkcontext.scala 第三步runJob()与DAG调度 阅读全文
posted @ 2024-02-21 16:17 会飞的猪仔 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Spark glom 功能:该函数将RDD中每一个分区变成一个数组,并放置在新的RDD中,数组中元素的类型与原分区中元素类型一致 val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("mapPartitions 阅读全文
posted @ 2024-02-19 18:03 会飞的猪仔 阅读(71) 评论(0) 推荐(0) 编辑
摘要:dd的mapPartitions是map的一个变种,它们都可进行分区的并行处理。两者的主要区别是调用的粒度不一样:map的输入变换函数是应用于RDD中每个元素,而mapPartitions的输入函数是应用于每个分区。Map 算子是分区内一个数据一个数据的执行,类似于串行操作。而 mapPartiti 阅读全文
posted @ 2024-02-19 15:52 会飞的猪仔 阅读(86) 评论(0) 推荐(0) 编辑
摘要:流式任务需要 7*24 小时执行,但是有时涉及到升级代码需要主动停止程序,但是分布式程序,没办法做到一个个进程去杀死,所有配置优雅的关闭就显得至关重要了。使用外部文件系统来控制内部程序关闭。 其实就是单独起一个线程专门去专门查找程序是否停止的标志 import java.net.URI import 阅读全文
posted @ 2024-01-24 16:22 会飞的猪仔 阅读(65) 评论(0) 推荐(0) 编辑
摘要:输出操作指定了对流数据经转化操作得到的数据所要执行的操作(例如把结果推入外部数据库或输出到屏幕上)。与 RDD 中的惰性求值类似,如果一个 DStream 及其派生出的 DStream 都没有被执行输出操作,那么这些 DStream 就都不会被求值。如果StreamingContext 中没有设定输 阅读全文
posted @ 2024-01-24 16:08 会飞的猪仔 阅读(57) 评论(0) 推荐(0) 编辑
摘要:Window Operations 可以设置窗口的大小和滑动窗口的间隔来动态的获取当前 Steaming 的允许状态。所有基于窗口的操作都需要两个参数,分别为窗口时长以及滑动步长。 ➢ 窗口时长:计算内容的时间范围; ➢ 滑动步长:隔多久触发一次计算。 注意:这两者都必须为采集周期大小的整数倍。 o 阅读全文
posted @ 2024-01-24 11:17 会飞的猪仔 阅读(12) 评论(0) 推荐(0) 编辑
摘要:UpdateStateByKey 原语用于记录历史记录,有时,我们需要在 DStream 中跨批次维护状态(例如流计算中累加 wordcount)。针对这种情况,updateStateByKey()为我们提供了对一个状态变量的访问,用于键值对形式的 DStream。给定一个由(键,事件)对构成的 D 阅读全文
posted @ 2024-01-24 10:50 会飞的猪仔 阅读(103) 评论(0) 推荐(0) 编辑
摘要:无状态转化操作就是把简单的 RDD 转化操作应用到每个批次上,也就是转化 DStream 中的每一个 RDD。部分无状态转化操作列在了下表中。注意,针对键值对的 DStream 转化操作(比如reduceByKey())要添加 import StreamingContext._才能在 Scala 中 阅读全文
posted @ 2024-01-23 18:25 会飞的猪仔 阅读(5) 评论(0) 推荐(0) 编辑
摘要:RDD是怎么生成的? RDD依靠什么生成?根据DStream来的 RDD生成的依据是什么? Spark Streaming中RDD的执行是否和Spark Core中的RDD执行有所不同? 运行之后我们对RDD怎么处理? ForEachDStream不一定会触发Job的执行,但是它一定会触发job的产 阅读全文
posted @ 2024-01-23 17:20 会飞的猪仔 阅读(54) 评论(0) 推荐(0) 编辑
摘要:/** * Return a new DStream by applying 'join' between RDDs of `this` DStream and `other` DStream. * The supplied org.apache.spark.Partitioner is used 阅读全文
posted @ 2024-01-23 16:44 会飞的猪仔 阅读(38) 评论(0) 推荐(0) 编辑
摘要:/** * Return a new DStream in which each RDD is generated by applying a function * on each RDD of 'this' DStream. 在调用的stream的RDD中应用传入的函数,返回一个新的DStream 阅读全文
posted @ 2024-01-23 15:45 会飞的猪仔 阅读(42) 评论(0) 推荐(0) 编辑
摘要:spark streaming可以从任何数据源来接收数据,哪怕是除了它内置支持的数据源以外的其他数据源(比如flume、kafka、socket等)。如果我们想要从spark streaming没有内置支持的数据源中接收实时数据,那么我们需要自己实现一个receiver。实现一个自定义的receiv 阅读全文
posted @ 2024-01-22 17:54 会飞的猪仔 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Spark Streaming是个准实时、微批量的流式处理架构,数据是向水流一样一直不断流过来,那么我们该怎么配置数据的接收速率? Spark1.5以前的版本,用户若需要限制Receiver的数据接收速率,可以通过设置静态配置参数“spark.streaming.receiver.maxRate”的 阅读全文
posted @ 2024-01-22 11:06 会飞的猪仔 阅读(27) 评论(0) 推荐(0) 编辑
摘要:DataFrame、DataSet 和 Spark SQL 的实际执行流程都是相同的: 1.进行 DataFrame/Dataset/SQL 编程;2.如果是有效的代码,即代码没有编译错误,Spark 会将其转换为一个逻辑计划;3.Spark 将此逻辑计划转换为物理计划,同时进行代码优化;4.Spa 阅读全文
posted @ 2024-01-19 17:13 会飞的猪仔 阅读(91) 评论(0) 推荐(0) 编辑
摘要:Spark Streaming用于流式数据处理(准实时,微批次),Spark Streaming支持的数据源很多,例如:kafka、Flume、简单的TCP套接字等,数据输入后可以用Spark的高度抽象原语,如:map、join、reduce、window等进行运算,而结果也可以保存在很多地方,如: 阅读全文
posted @ 2024-01-18 11:42 会飞的猪仔 阅读(17) 评论(0) 推荐(0) 编辑
摘要:reduce(binary_function) reduce将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给输入函数,直到最后只有一个值为止。 具体过程,RDD有1 2 3 4 5 6 7 8 9 10个元素 阅读全文
posted @ 2019-03-26 16:27 会飞的猪仔 阅读(578) 评论(0) 推荐(0) 编辑
摘要:1. map会将每一条输入映射为一个新对象。{苹果,梨子}.map(去皮) = {去皮苹果,去皮梨子} 其中: “去皮”函数的类型为:A => B 2.flatMap包含两个操作:会将每一个输入对象输入映射为一个新集合,然后把这些新集合连成一个大集合。 {苹果,梨子}.flatMap(切碎) = { 阅读全文
posted @ 2019-03-26 16:00 会飞的猪仔 阅读(1273) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示