-
COMPLETE:如果mapreduce只有map而没有reduce,就会进入这个阶段;
-
PARTIAL1:正常mapreduce的map阶段;
-
PARTIAL2:正常mapreduce的combiner阶段;
-
FINAL:正常mapreduce的reduce阶段;
每个阶段被调用的方法
-
开发UDAF时,要继承抽象类GenericUDAFEvaluator,里面有多个抽象方法,在不同的阶段,会调用到这些方法中的一个或多个;
-
下图对每个阶段调用了哪些方法说得很清楚:
- 下图对顺序执行的三个阶段和涉及方法做了详细说明:
-
以上两张图片的出处都是kent7306的文章《Hive UDAF开发详解》,地址:https://blog.csdn.net/kent7306/article/details/50110067
-
上面两幅图将抽象方法和每个阶段的关系都梳理得很清晰了,接下来咱们开始编码;
源码下载
- 如果您不想编码,可以在GitHub下载所有源码,地址和链接信息如下表所示:
| 名称 | 链接 | 备注 |
| :-- | :-- | :-- |
| 项目主页 | https://github.com/zq2599/blog_demos | 该项目在GitHub上的主页 |
| git仓库地址(https) | https://github.com/zq2599/blog_demos.git | 该项目源码的仓库地址,https协议 |
|
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
git仓库地址(ssh) | git@github.com:zq2599/blog_demos.git | 该项目源码的仓库地址,ssh协议 |
- 这个git项目中有多个文件夹,本章的应用在hiveudf文件夹下,如下图红框所示: