

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 注意事项
<a name="emr-hue-considerations"></a>

使用 [Hue](https://gethue.com) on Amazon EMR 时应注意以下限制。

## 大型 Hue 元数据表的性能
<a name="emr-hue-considerations-performance"></a>

如果 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 文档中的参考页面](https://docs.gethue.com/administrator/administration/reference/#general)。

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 不兼容
<a name="emr-hue-considerations-incompatibility"></a>

如果您在多个启用 Hue 的集群中使用相同的 Hue 元数据数据库，建议这些集群运行相同版本的 Hue。不同版本的 Hue 可能具有不同的 Hue 元数据数据库架构。在不同版本中使用相同的数据库会导致 Hue 安装失败。例如，如果尝试对安装了 4.10.0 和 4.11.0 的两个集群使用相同的数据库，可能导致尝试登录 4.10.0 集群的用户出现登录错误。

有关 Amazon EMR 发行版标签和相应的 Hue 已安装版本的列表，请参阅 [Hue 版本历史](https://docs.amazonaws.cn/emr/latest/ReleaseGuide/Hue-release-history.html)记录。