本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
考量事項
在 Amazon EMR 上使用 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 發行歷史記錄。