本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
注意事项
使用 Hue
大型 Hue 元数据表的性能
如果 Hue 元数据数据库变得太大,性能可能会下降。要检查表的大小,请先使用 SSH 连接到 Amazon EC2 集群上的 Amazon EMR 的主节点,然后运行命令sudo mysql -u root
启动 MySQL CLI。要获取表的大小,请运行查询 SELECT COUNT(*) FROM hue.
。有关<table_name>
<table_name>
可能的内容,请参见以下内容:
-
desktop_document
-
desktop_document2
-
oozie_job
-
beeswax_savedquery
-
beeswax_session
-
beeswax_queryhistory
如果运行该查询返回的计数超过 100000,则应运行以下清理命令来删除旧记录。
cd /opt/cloudera/parcels/CDH/lib/hue # Hue home directory ./build/env/bin/hue desktop_document_cleanup
有关清理数据库的更多信息,请参阅 Hue 文档中的参考页面
Hue 不会自动清理表,但 Amazon EMR 5.12.0 及更高版本提供了删除表中旧文档的方法。创建以下 shell 脚本,并将其作为 Amazon EMR 集群中的一个步骤运行,其中的整数参数代表元数据数据库中文档的最长保存天数。
#!/bin/bash if grep isMaster /mnt/var/lib/info/instance.json | grep false; then echo "This is not the primary node; do nothing, exiting" exit 0 fi while [ ! -f /usr/lib/hue/desktop/core/src/desktop/management/commands/desktop_document_cleanup.py ] do sleep 1 done sudo systemctl stop hue.service sudo sed -i 's+ LOG.warn+ # LOG.warn+g' /usr/lib/hue/desktop/core/src/desktop/management/commands/desktop_document_cleanup.py sudo /usr/lib/hue/build/env/bin/hue desktop_document_cleanup --keep-days $1 sudo systemctl start hue.service
不同版本的 Hue 不兼容
如果您在多个启用 Hue 的集群中使用相同的 Hue 元数据数据库,建议这些集群运行相同版本的 Hue。不同版本的 Hue 可能具有不同的 Hue 元数据数据库架构。在不同版本中使用相同的数据库会导致 Hue 安装失败。例如,如果尝试对安装了 4.10.0 和 4.11.0 的两个集群使用相同的数据库,可能导致尝试登录 4.10.0 集群的用户出现登录错误。
有关 Amazon EMR 发行版标签和相应的 Hue 已安装版本的列表,请参阅 Hue 版本历史记录。