Hive 数据倾斜判断、定位和解决
什么是数据倾斜 当数据分布不均匀,集中在少数几个 Key上,进行处理时,数据和运算会集中在少数上,造成数据热点,称之为数据倾斜。 当数据倾斜出现时,会出现任务进度长时间维持在99%(或100%)上,一直卡在少量 Reduce 任务上,甚至因为超时被杀掉。 如何判断数据倾斜 1. 通过任务时间判断 如果个别Reduce的时间比其它Reduce时间长的多,例如大部分Reduce任务都在5分钟之内完成,
什么是数据倾斜 当数据分布不均匀,集中在少数几个 Key上,进行处理时,数据和运算会集中在少数上,造成数据热点,称之为数据倾斜。 当数据倾斜出现时,会出现任务进度长时间维持在99%(或100%)上,一直卡在少量 Reduce 任务上,甚至因为超时被杀掉。 如何判断数据倾斜 1. 通过任务时间判断 如果个别Reduce的时间比其它Reduce时间长的多,例如大部分Reduce任务都在5分钟之内完成,
存储格式 行式存储和列式存储 行式存储的优点:查询满足条件的一整行数据时,行式存储的数据查询更快。因为行存储只需要找到其中一个值,其余的值都在相的邻地方,而列式存储则需要去每个聚集的字段找到对应的每列的值。 列式存储的优点:查询满足条件的一整列数据时,列式存储的数据查询更快。因为列存储只需要找到其中一个值,其余的值都在相邻的地方,而行存储则需要去每个聚集的字段找到对应的每个行的值。另一方面,列式存
Hive 的数据类型分为简单类型和复杂类型。Hive 不支持日期类型,STRING 类型不能声明长度,理论上最大支持 2GB。Hive 会隐式转换类型,也能通过 CAST 进行显示转换。
首发于公众号【KAMI说】(kami-said),原文:《大数据开发需要掌握什么技能》 一般来说,从事数据开发,我们需要熟悉: Java,Python,SQL,Shell等语言 Pandas、Numpy、Scipy等数据处理常用的库和包 Hadoops 生态圈、Spark、Storm、Flink、TensorFlow、Keras等你的业务依赖的框架 对于上面提及的语言和库,我们需要熟悉如何用它们实
首发于公众号【KAMI说】(kami-said),原文:(实时计算的业务劣势、思维误区和推进策略 技术优势如何变成业务劣势? “实时”一词过于笼统,我们不妨通过“时效性”来进行量化: 时效性为“天”级别以上的,从业务习惯来讲我们称之为“离线计算”; 时效性为“小时”级别的,我们称之为“准实时计算”; 时效性为“分”、“秒”级别的,我们称之为“实时计算”; “时效性”常常和“时间精度”混淆。其实两者
首发于公众号【KAMI说】(kami-said),原文:《Flink 并不适合实时指标计算》 Flink 通过提供 ANSI 标准 SQL 和 Retract 特性,保证聚合计算的精确一致性。 使用 Flink SQL 计算分析指标,例如 PV/UV 等,在语义和功能上是没有问题的。 然而,从代价和效果来讲,Flink 并不适合进行实时指标计算。 IO 和计算的代价太大 进行指标计算,几乎都会涉及