- 博客(60)
- 收藏
- 关注
原创 Spark RDD 介绍
弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合;
2024-07-26 16:19:05 521
原创 Spark 运行架构
Spark 框架的核心是一个计算引擎,整体来说,它采用了标准的 master-slave 结构。上图中的 Driver 表示 master ,负责管理整个集群中的作业任务调度;Executor 则是 slave,负责实际执行任务;
2024-07-23 17:53:45 793
原创 Hive 函数
UDF(User-Defined-Function) 普通函数,一进一出;例如:round 这样的函数;UDAF(User-Defined Aggregation Function)聚合函数,多进一出;例如:count、sum 这样的函数;UDTF(User-Defined Table-Generating Function)表生成函数,一进多出;例如:explode 函数。
2024-07-16 17:26:04 1012 1
原创 Hive 常见问题
UDF :用户自定义函数,一对一输出,例如 round;UDTF :用户自定义表生产函数,一对多输出,例如 explode;UDAF :用户自定义聚合函数,多对一输出,例如count,sum 等;数据倾斜是指在分布式处理中,数据不均匀,有部分数据比较集中;数据倾斜会使得在处理过程中,某个结点的处理效率过低,甚至造成内存溢出;
2024-07-15 12:18:07 1114
原创 Hive及其架构简介
Hive的order by和sort by的区别:orderby会对输入数据做全局排序,只有一个reduce,数据量较大时,很慢。sortby是局部排序,只能保证每个reduce有序,不能保证全局有序。Hive的数据倾斜:倾斜原因: map输出数据按key Hash的分配到reduce中,由于key分布不均匀、业务数据本身的特、建表时考虑不周、等原因造成的reduce 上的数据量差异过大。1)、key分布不均匀;2)、业务数据本身的特性;3)、建表时考虑不周;4)、某些SQL语句本身就有数据倾
2024-07-11 17:34:30 374 1
原创 Flink 容错机制
当 Flink 的 JobManager 发起一个 checkpoint 时,它会向所有的 TaskManager 发送一个 checkpoint barrier。当一个算子接收到 barrier ,它会停止处理新的输入数据,直到所有的并行实例都接受到 barrier 并准备好进行 checkpoint;Jobmanager 向失败的 TaskManager 发送恢复指令,指示它从特定的 checkpoint 恢复,TaskManager 接收到指令后,会加载对应的 checkpoint 的状态;
2024-07-02 10:02:23 591
原创 Flink 运行时架构
以上是从一个较为高级的视角,来看应用中各组件的交互协作。如果部署的集群环境不同,其中一些步骤可以省略,或是有些组件会运行在同一个 JVM 进程中。下面以具体部署到 Yarn 上为例:
2024-07-01 10:54:37 988
原创 Flink 状态管理
流式计算分为无状态和有状态两种情况。无状态的计算观察每个独立事件,并且根据最后一个事件输出结果。例如,流处理应用程序从传感器接收温度读数,并在温度超过90度时发出告警。有状态的计算则会基于多个事件输出结果。例如,计算过去一小时的平均温度。以及在一分钟之内收到两个相差20度以上的温度读数,则发出告警。上图中输入数据由黑条表示。无状态流处理每次只转换一条输入记录,并且仅根据最新的输入记录输出结果(白条)。
2024-06-25 16:41:46 760
原创 JVM 内存区域
Java 虚拟机在执行 Java 程序的过程中,会把它管理的内存划分成若干个不同的数据区域。JDK 1.8 和之前的版本略有不同,这里介绍 JDK 1.7 和 JDK 1.8 两个版本。
2024-06-24 21:22:35 903
原创 Flink 窗口函数
Flink 流式计算是一种被设计用于处理无限数据集的数据处理引擎,而无限数据集是指一种不断增长的本质上无限的数据集,而 window 是一种切割无线数据为有限块进行处理的手段。
2024-06-17 17:44:11 892
原创 JVM 类加载过程详情
最顶层的类加载器,由 C++ 实现,通常表示为 null,并且没有父级,主要用来加载 JDK 内部的核心类库(%JAVA_HOME%/lib 目录下的 rt.jar 、resource.jar 、charsets.jar 等jar包和类)以及被 -Xbootclasspath 参数指定的路径下的所有类;双亲委派模型保证了 Java 程序的稳定运行,可以避免类的重复加载(JVM 区分不同类的方式不仅仅根据类名,相同的类文件被不同的类加载器加载产生的是两个不同的类),也保证了Java 的核心API不被篡改。
2024-06-07 15:12:45 1038
原创 记一次宕机造成的flink消费Kafka topic失败问题
kafka报错:Error while fetching metadata with correlation id 72 :{topic=LEADER_NOT_AVAILABLE}
2023-04-13 16:32:16 838
原创 scala隐式转换
当scala编译器第一次编译失败的时候,会在当前的环境中查找能让代码编译通过的方法,用于将类型进行转换,实现二次编译。(类似于一个整数和一个浮点数相加,编译器可以自动把整数转换为浮点数。)scala中 1 to 10的写法就是用了隐式转换,实际是1.to(10),Int类型的1调用了RichInt的to()方法。
2022-10-11 11:10:02 196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人