

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 考量事項
<a name="emr-hue-considerations"></a>

在 Amazon EMR 上使用 [Hue](https://gethue.com) 時，請考慮下列限制。

## 具有大型 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.aws.amazon.com/emr/latest/ReleaseGuide/Hue-release-history.html)。