Monthly Archives: September 2017

hive生命周期

功能 当前线上系统情况: hadoop集群小文件数太多 hive的meta存储压力,有hive分区表有75W+分区 释放非必要存储资源,中间层的数据较容易重新生成 规范业务Hive使用,数据治理 名词: 路径不规范: 库路径无重合 库路径下不能有其它库 库路径必须在库所有者目录(/user/{Database.getOwnerName()}/…)下 表是在所在库路径下 表路径下不能有其它库 表路径下不能有其它表 表路径必须在表所有者目录(/user/{Table.getOwnerName()}/…)下 TTL: 数据保留时间(单位:天) LEVEL:数据级别(0:永久保留;1:需要进行生命周期) 需要实现的功能: 新建表将纳入生命周期,增加库表TTL和LEVEL的设置功能 新建表未指定生命周期会使用默认值,默认生命周期会删除60天前未更新的数据,除非新建表对应的库设置了生命周期,此种情况下,新建表会继承对应库的生命周期,建议创建表时设置,避免数据误删除;配置方式:CREATE EXTERNAL TABLE guoguo.t_test_02(id string) … TBLPROPERTIES (‘LEVEL’=’1′,’TTL’=’70’) 配置了生命周期的非分区表到期会Drop表,分区表则只Drop分区 判断数据更新时间的标准是: 1)表分区元数据更新时间,2)表分区对应的hdfs数据更新时间 取两者的最大值做为数据更新的时间 生命周期清理数据时基于数据更新时间后推ttl天清理 数据安全方案 邮件:执行删除前一周会分别和库、表的所有者发送其负责的待删除的库、表的通知 邮件:执行日报,每天把当天执行的情况汇总按需发给管理员,库所有者,表所有者 邮件:路径不规范的库和表,不会进行处理,并每天有报警邮件,会给相关负责人发送,提醒业务整改 备份:清理数据是先移动数据到每天生成的一个处理备份目录,然后再清理元数据 hive有内部表和外部表之分,内部表删除会影响内部表的元数据和底层数据存储,为保持处理一致,不采用只删除元数据,到期再清理数据的方案 移动数据会把meta信息和权限信息一同带到备份目录 … Continue reading

Posted in 未分类 | Leave a comment