2016-02-12 71 views
0

一點介紹 - 我正在學習Hadoop。我已經在Hadoop(集羣)之上實現了機器學習算法,並且僅在一個小例子(30MB)上進行了測試。在YARN上調整Hadoop作業執行

幾天前,我安裝了Ambari,並創建了一個由四臺機器組成的小型集羣(主人和3名工人)。 Master擁有資源管理器和NameNode。

現在我通過增加數據量(300MB,3GB)來測試我的算法。我正在尋找一個如何調整我的迷你集羣的指針。具體來說,我想知道如何確定Ambari中的MapReduce2和YARN設置。

如何確定容器的最小/最大內存,容器的預留內存,排序分配內存,映射內存和減少內存?

問題是,我的作業執行在Hadoop上非常緩慢(並且集羣是一種迭代算法,這使得情況變得更糟)。

我有一種感覺,我的羣集設置是不好的,因爲以下原因:

  • 我運行30MB的數據集(我設置塊存儲器的一個工作,這個工作是8MB中,由於數據是小和加工是密集的) - 執行30分鐘的時間
  • 我運行相同的工作,但乘以相同的數據集的10倍 - 300MB(相同的塊大小,8MB) - 執行時間:2小時
  • 現在相同量的數據 - 300MB,但塊大小爲128MB - 執行時間相同,甚至可能大於2小時

HDFS上塊的大小是128MB,所以我認爲這會導致加速,但情況並非如此。我的疑惑是集羣設置(最小/最大RAM大小,地圖和減少RAM)並不好,因此即使更大的數據局部性實現它不能提高。

難道這是一個糟糕的設置的結果,還是我錯了?

回答

相關問題