HIVE 数据仓库容量清理的一般操作
本博客结合笔者公司,总结了一下一般的数据仓库容量清理手段,见识浅陋,如有大佬路过,欢迎指点
随着数据仓库数据量的不断上升,一些表的文件越来越大,HADOOP 集群需要不断的加机器,随着不断的拓展,我们会发现:优化和清理同样重要,优化和清理的尽头才是加机器
此时我们需要对HIVE的容量着手,开始考虑如何清理容量,一般有有一下几点:
清理无用数据
无用的数据很主观,需要对整个仓库的表进行梳理,主要针对以下这些表:
① 临时表
测试或者临时使用的表,这些表的数据一般是无用的
② 中间表
我们在计算过程中,可能会使用一些中间表,如果是分区表,我们就要考虑下,如果这个中间表的数据可以溯源重新计算出来,那么这样的数据可以清理。中间表应该制定规范,尽量少使用中间表,使用完及时清理。
③ ODS 层的表
ODS 层一般是贴源层,抽取业务数据库的数据。如果每天抽取的数据都是全量同时表为分区表,那么历史分区是可以清除的。
…
归档访问频率低的冷历史数据
在 HDFS
的设计中,文件系统中的文件数量直接影响 namenode
中的内存消耗。虽然对于小型集群来说通常不是问题,但当有大量文件时,单个机器上的内存使用可能会达到可访问内存的极限。在这种情况下,尽可能少的文件是有利的。
Hadoop 归档后的文件格式为 Har(一种存储格式) 文件,是一个单独的文件,可以直接访问,但是 HAR 文件并非是压缩的. 因此也不会节约存储空间
Hadoop Archives 是减少文件数量的一种手段,对于访问频率低的冷历史数据我们可以考虑归档方案。
① 归档历史分区
② 归档不常用的数据
③ 归档某个分区下小文件过多的问题
-- 归档后会生成 har 文件
set hive