2011-12-16 118 views
3
  1. Hadoop應用程序是否可以在任何一個羣集節點上引導,與節點類型無關?運行Hadoop應用程序

  2. 應該只在其中一個節點上引導應用程序嗎?

  3. Hadoop會將代碼移動到數據附近的合適節點嗎?

  4. Java RMI是用於移動代碼的目的嗎?

@EDIT

在每個Hadoop的安裝節點,誰是主節點應明確指定,通過爲Jobtrackermapred-stie.xmlNamenodemapred.job.tracker設定的core-site.xmlfs.default.name

但是,從節點DatanodeTasktracer不能被明確分配,可以嗎?

相反,它們在Hadoop dameon啓動時動態加入集羣,或者當守護進程停止時離開集羣,對嗎?

如果Hadoop安裝的節點既沒有分配給主節點,也沒有運行hadoop守護進程,它仍然可以啓動Hadoop應用,對吧?

@ 2日編輯

看來,從節點也應該明確在主節點上conf/slaves文件中列出,以共同啓動或停止在那裏。

+1

#1實際上是對我的更大的集羣新開發一個共同的問題。有一種常見的誤解,即您想在jobtracker節點上運行作業,這是運行作業最糟糕的地方之一。 – 2011-12-16 14:06:07

回答

4
  1. 只要core-site.xml配置設置正確,Hadoop作業就可以從任何地方觸發。這不一定是數據節點或主節點。在較大的羣集上,我們習慣於有一個「查詢節點」,它沒有運行任何Hadoop守護進程。

  2. 這不是什麼大不了的具有特定節點上的消防工作,除非你的程序做某種沉重的前或的MapReduce之外,計算後的。如果他們是,你想保留這些在他們自己的節點上。在數據節點上運行作業要比在主節點上運行作業要好。

  3. Hadoop將jar文件複製到所有位置,以便代碼在本地可用。我不認爲這使用RMI,但我可能是錯的。最終,這些都是從用戶身上抽象出來的,不是你需要注意的。

+0

Hadoop帶有自己的RPC機制,所以沒有RMI。 – 2011-12-16 14:41:16