2010-06-26 41 views
2

我想知道你的Hadoop開發環境是什麼樣的?
您是否將jar部署到測試羣集,或在本地模式下運行jar?
你使用什麼IDE,你使用什麼插件?
你如何部署完成的項目在服務器上運行? 關於設置我自己的Hadoop開發/測試環境的其他建議是什麼?Hadoop開發環境,你看起來像什麼?

+0

請標記投票問題的社區wiki'。 – danben 2010-06-26 13:06:32

回答

7

看到人們在Eclipse或IJ等IDE中編寫java MR作業是非常常見的。有些甚至使用像Karamasphere的開發工具那樣的插件,這些工具非常方便。至於測試,正常的過程是像平常那樣對業務邏輯進行單元測試。您可以使用MRUnit類對部分MR周邊基礎架構進行單元測試(請參閱Hadoop的contrib)。下一步通常是在本地作業運行器中進行測試,但請注意這裏有一些注意事項:分佈式緩存不能在本地模式下工作,並且您是單線程的(所以靜態變量可以以他們不會的方式訪問在生產中)。下一步(也是最常見的測試環境)是僞分佈式模式 - 所有守護進程都在運行,但在一個盒子中。這將在具有多個任務的不同JVM中並行運行代碼,並且會顯示大多數開發人員錯誤。

MR作業罐以不同的方式分發到客戶機。通常可以在這裏看到自定義部署流程有些人使用像Capistrano這樣的工具或Chef或Puppet等配置管理工具來自動執行此操作。

我的個人發展通常是在Eclipse中用Maven完成的。我使用Maven的Assembly插件構建jar包(將所有的依賴包打包在一個jar文件中,以方便部署,但jar包更加容易)。我經常使用MRUnit進行測試,然後使用僞分佈模式。我的經驗對當地的求職者來說並不是很有用。部署幾乎總是通過配置管理系統進行。測試可以通過像Hudson這樣的CI服務器實現自動化。

希望這會有所幫助。