Scala / Java - 采用 MD5 加盐 实现 id 均匀分组 大量 id 场景下经常需要通过 id 进行 AB Test,最常见的就是使用尾号 hash 进行分组,但是由于 id 生成规则以及其他因素,按照尾号分组往往会造成 id 不匀,从而导致 AB Test 效果受影响,所以下文采用 md5 加盐 Hash 的方式,得到更均匀的分组与 AB Test 效果。......
Flink / Scala - 使用 RedisSink 存储数据 现在有一批流数据想要存储到 Redis 中,离线可以使用 Spark +foreach 搞定,由于是多流 join 且带状态,所以 SparkStreaming + foreach 也无法实现,而 Flink 不支持 foreach 操作触发 execute,这里采用 RedisSink 代替实现foreach 逻辑。...
Flink / Scala - 使用 CountWindow 实现按条数触发窗口 CountWindow 数量窗口分为滑动窗口与滚动窗口,类似于之前 TimeWindow 的滚动时间与滑动时间,这里滚动窗口不存在元素重复而滑动窗口存在元素重复的情况,下面 demo 场景为非重复场景,所以将采用滚动窗口。......
NoClassDefFoundError - hadoop/crypto/key/KeyProviderTokenIssuer && hadoop/fs/BatchListingOperations NoClassDefFoundError - hadoop/crypto/key/KeyProviderTokenIssuer && hadoop/fs/BatchListingOperations 报错解决与总结。
Flink - checkpoint Failure reason: Not all required tasks are currently running Flink 程序增加 readFile 生成文件流后,最初运行期间 CheckPoint 存储没有问题,待文件流 Finished 后 CheckPoint 存储报错: checkpoint Failure reason: Not all required tasks are currently running,下面分析并解决下。
LeetCode / Scala - 两数,三数,四数,N数之和 LeetCode 里分别有两数之和,三数之和,四数之和,主要实现方法为 Python,Java,C++,下面使用 scala 分别实现。
Flink - 读取 Parquet 文件 By Scala / Java parquet 文件常见与 Flink、Spark、Hive、Streamin、MapReduce 等大数据场景,通过列式存储和元数据存储的方式实现了高效的数据存储与检索,下面介绍 Flink 场景下如何读取 Parquet。
Goland / Mac - 安装 & HelloWorld Demo 本文将安装 go 语言常用编辑器 GoLand,其与 idea、pycharm 同属JetBrains 旗下,由于突破试用的限制,下面教程主要安装 2019 版 Goland + Go 1.15.x 版本,有高版本编译器或高版本 Go 语言需求的同学可以忽略后续,如果只是入门熟悉操作可以参考下面教程。...
Flink - NoSuchMethodError: com.twitter.chill.java.Java8ClosureRegistrar.areOnJava8()Z 使用 Flink 1.13.1 + scala 2.11.12 的组合进行 Flink 本地测试是,报错.NoSuchMethodError: com.twitter.chill.java.Java8ClosureRegistrar.areOnJava8()Z,经过前面多次的 noSuchMethod 的折磨,现在已经轻车熟路,直接开始排查。...............
Redis - Redis List 功能详解与工业应用 Redis 列表 List 是简单的字符串列表,按照插入顺序排序,一个列表最多可以包含 232- 1 个元素 (4294967295, 每个列表超过40亿个元素)。下面介绍下 Redis List 常用功能以及在工业场景下 Redis List 的几种使用场景。......
Spark - RangePartitioner rangeBounds 生成 源码分析 & 实践 本文主要探索RangePartitioner 源码中rangeBounds 的生成,rangeBounds 用于对 key 进行范围分区,通过源码可以学习到如何在分布式大数据下采样并获取近似均分的范围。
Spark - PartitionPruningRDD 详解 查看 RangePartition 的源码时发现内部用到了PartitionPruningRDD,翻译为分区修剪 RDD,下面简单介绍一下PartitionPruningRDD 的使用。
Spark - Illegal pattern component: XXX 与org.apache.commons.lang3.time.FastDateFormat incompatible 使用 sparkSession 读文件时出现java.lang.IllegalArgumentException: Illegal pattern component: XXX 报错,解决后又出现java.io.InvalidClassException: org.apache.commons.lang3.time.FastDateFormat; local class incompatible: stream classdesc serialVersionUID = 2,下面解决一下。...