2013-02-21 201 views
0

我正在研究AWS上的Hive(特別是EMR)。它們提供了兩個選項AWS EMR Auto Scaling

  1. 產生Ad-hoc羣集,其中在執行預先指定的Hive查詢(在引導程序中)後執行EMR羣集評估。
  2. 在交互模式下產生一個Hive集羣,其中一個可以通過SSH連接到主服務器,並使用hive命令行客戶端提供Hive查詢。

很明顯,在第二個選項中,集羣將保持活動狀態,直到明確要求終止。

我想修改一個keep alive hive集羣中的從節點數量。我在emr faq中讀到它只支持task-nodes的添加和刪除,但僅僅是添加(但不刪除)core-nodes。核心節點有助於HDFS存儲,但任務節點不會。

我想向正在運行的羣集添加更多核心節點,並在正在運行的查詢數較少時將其縮小。有沒有辦法做到這一點(可能是使用cloudwatch)?

回答

3

查詢數量的增加和減少與任務節點數量(Hadoop的計算部分)和核心節點數量(Hadoop的數據存儲部分)的數量相關性更大,因爲數據量沒有改變。

當您想要擴展和縮小查詢時,重新平衡和重新分配數據不是一個好主意。它太慢而且太複雜,不能提供任何真正的好處。

無需配置EMR的「支付使用費用」和快速啓動應該會鼓勵您在不需要它時終止集羣,並在需要時啓動新集羣。 您可以優化EMR上的Hive,以便在啓動羣集時將您的表元數據存儲在外部MySQL數據庫中,以避免丟失或重複表定義。

+0

那麼,如果需要什麼保持活躍的蜂巢集羣,避免設置新的EMR集羣爲每個查詢的開銷並在完成後撕毀它? – 2013-02-25 13:39:32

+0

也許你應該考慮Redshift(http://aws.amazon.com/redshift/) – Guy 2013-03-02 15:38:23

+0

是的,可以看看...感謝指向這個方向。我想我的用例不會通過虛擬hive emr集羣來實現,所以會關閉這個問題。 – 2013-03-03 16:26:20

1

使數據節點也可以放大也是有一定價值的。對於長時間運行的集羣,僅使用任務節點進行縮放可能會導致HDFS瓶頸(如果存在大量中間數據)。

您是否考慮過查看Qubole? Qubole提供基於負載的自動擴展和縮減。用戶使用最小和最大從節點配置羣集。這些將是任務節點和數據節點。

2

你可以看看Themis,一個在Atlassian開發的EMR自動縮放框架。目前的功能包括主動式和反應式自動縮放,它帶有一個Web UI,並且該工具非常易於配置。

(道歉,張貼在一個古老的線程,但得到的答覆仍然可以讓讀者發現這個線索很有趣。)