- 博客(115)
- 收藏
- 关注
原创 SparkStreaming 有几种方式消费 Kafka 中的数据(与 kafka 集成的方式)
SparkStreaming 有哪几种方式消费 Kafka 中的数据,它们之间的区别是什么?
2022-06-19 22:58:35 538
原创 Kafka 消息丢失和重复问题
要确定 Kafka 的消息是否丢失或重复,从两个方面分析入手:消息发送和消息消费。消息发送Kafka 消息发送有两种方式:同步和异步,默认是同步方式,可通过 producer.type 属性进行配置。Kafka 通过配置 request.required.acks 属性来确认消息的生产:0——表示不进行消息接收是否成功的确认;1——表示当 Leader 接收成功时确认;-1——表示 Leader 和 Follower 都接收成功时确认;综上所述,有6种消息生产的情况,下面分情况来分析消息丢失的
2022-05-27 18:54:36 1901
原创 调优之前与调优之后性能的详细对比(例如调整 map 个数,map 个数之前多少、之后多少,有什么提升)
这里举个例子。比如我们有几百个文件,会有几百个 map 出现,读取之后进行 join 操作,会比较慢。这个时候我们可以进行 coalesce 操作,比如 240个 map,我们合成 60 个map,也就是 窄依赖。这样再shuffle,过程产生的文件数会大大减少。提高 join 的时间性能。...
2022-05-27 16:47:27 173
原创 如何使用Spark实现TopN的获取(描述思路或使用伪代码)
方法1:a. 按照 key 对数据进行聚合(groupByKey)b. 将 value 转换为数组,利用 scala 的 sortBy 或者 sortWith 进行排序(mapValues)注意:当数据量太大时,会导致OOM。val rddData1 = sparkSession.parallelize(Array(("sivela", 15),("sivela", 18),("sivela", 16),("Alice", 15),("Bob", 18)))val rddGroup = rdd.
2022-05-26 19:47:01 551
原创 Hadoop 解决数据倾斜方法
一般发生在 reduce端,其他任务10s以内就执行完了,有一个任务执行了50分钟还没有执行完,程序卡在99%不动了,甚至爆出了内存溢出。原因分析:导致数据倾斜的 key 大量分布在相同的 mapper,map 端解决:提前在 map 进行 combine,减少传输的数据量。在 Mapper 加上 combiner 相当于提前进行 reduce,即把一个 Mapper 中的相同 key 进行了聚合,减少了 shuffle 过程中传输的数据量,以及 Reducer 端的计算量。导致数据倾斜
2022-05-26 12:42:01 413 1
原创 Kafka 的 ISR 副本同步队列
ISR,副本同步队列。ISR 中包括 Leader 和 Follower。如果 Leader 进程挂掉,会在 ISR 队列中选择一个服务作为新的 Leader。有延迟条数和延迟时间两个参数决定一台服务是否可以加入 ISR 副本队列,在0.10 版本移除了 延迟条数 参数,防止服务频繁的进去队列。任意一个维度超过阈值都会把 Follower 剔除出 ISR,存入到 OSR 列表,新加入的 Follower 也会先存放在 OSR 中。...
2022-05-25 19:58:00 630
原创 请列举会引起 shuffle 过程的 spark 算子,并简述功能
byKey类的操作:比如 reduceByKey、groupByKey、sortByKey 等;因为要对一个key,进行聚合操作,那么肯定要保证集群中,所有节点上的,相同的 key,一定是到同一个节点上进行处理;a. reduceByKey :将数据按照相同的 key 对 value进行聚合;b. groupByKey :将数据按照相同的 key 对 value进行分组;c. aggregateByKey :将数据按照不同的规则进行分区内计算和分区间计算;d. foldByKey:当分区内计算规则.
2022-05-25 12:30:13 732 1
原创 在项目中是否自定义过UDF、UDTF函数,以及用他们处理了什么问题,及自定义步骤?
自定义过用 UDF 函数解析公共字段;用 UDTF 函数解析事件字段自定义 UDF:继承 UDF,重写 evaluate 方法自定义 UDTF:继承自 GenericUDTF,重写3个方法:initialize(自定义输出的列名和类型),process(将结果返回 forward(result)),close为什么要自定义 UDF/UDTF,因为自定义函数,可以自己埋点Log打印日志,出错或者数据异常,方便调试。...
2022-05-24 19:13:06 334
原创 简述 SparkSQL中RDD、DataFrame、DataSet 三者的区别与联系?
RDDRDD:是弹性分布式数据集**,是Spark中最基本的数据抽象,代表一个不可变,可分区、里面的元素可并行计算的集合。优点:a. 编译时类型安全:编译时就能检查出类型错误;b. 面向对象的编程风格:直接通过类名点的方式来操作数据;缺点:a. 序列化和反序列化的性能开销:无论是集群间的通信,还是IO操作都需要对对象的结构和数据进行序列化和反序列化;b. GC (垃圾回收)的性能开销,频繁的创建和销毁对象,势必会增加GC(程序进行GC时,所有任务都是暂停);DataFrameDa..
2022-05-24 12:16:02 825
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人