1.文档编写目的
在hue的使用过程中,由于hue会永久的保存所有数据,并且不会自动的去清理desktop_document, desktop_document2, oozie*, beeswax*这些tables里的data,因此在长时间高频次的使用后,可能会导致hue的性能下降,造成hue的登陆,运行,使用缓慢等性能问题。本文主要介绍如何进行hue的数据的清理。
1.Redhat7.6
2.采用root用户操作
3.MariaDB版本为5.5.60
4.CDH版本5.16.2
2.清理步骤
1.下载清理脚本到hue运行节点的/opt/cloudera目录下
git clone https://github.com/cmconner156/hue_scripts.git /opt/cloudera/hue_scripts
下载下来的脚本文件如下图
2.备份当前的hue数据库
[root@cdp01 ~]# mysqldump -u root -p hue > /db_hue.sql
3.检查当前hue数据库相关表的记录数
select count(*) from desktop_document;
select count(*) from desktop_document2;
select count(*) from beeswax_session;
select count(*) from beeswax_savedquery;
select count(*) from beeswax_queryhistory;
select count(*) from oozie_job;
4.修改相关脚本权限
chmod 700 /opt/cloudera/hue_scripts/script_runner
5.用root用户运行脚本,后面的参数--keep-days 30 可以根据集群的具体情况进行调整,这个参数是说清理30天之前的记录。需要确保设置的keep-days内数据不超过3万。假如设置了keep-days为30天,数据仍有10万,那么就需要将keep-days 继续调小直到数据量保持在30,000以内。
DESKTOP_DEBUG=True /opt/cloudera/hue_scripts/script_runner hue_desktop_document_cleanup --keep-days 30
6.检查清理后的相关表的记录数,看到已经清理掉了30天前的记录
3.总结
1.需要确保hue数据库相关表查询出来的数据不超过3万。假如设置了脚本参数keep-days为30天,数据仍有10万,那么就需要将脚本参数keep-days 继续调小直到数据量保持在30,000以内。
2.根据集群的使用情况,可以设置一个定时任务来定期的进行历史数据的清理,保证hue服务性能稳定。
3.日志文件存放在/var/log/hue/hue_desktop_document_cleanup.log日志文件中,可以从该文件中看到脚本执行的日志。