2012-06-11 35 views
0

我有一個基於Hadoop的MapReduce程序。我知道如何使用$ {hadoop_home}/bin/hadoop jar命令來運行它。如何用testNG在Java中運行MapReduce程序?

但是,我想用testNG運行這個程序。我應該怎樣做hadoop啓動testNG案例?

+0

在@Test方法中調用您的MapReduce作業。 –

+0

要啓動@Test方法,我使用以下命令:$ java -classpath = $ {class_path} org.testng.TestNG arg1 arg2 ...「java」命令無法啓動hadoop。這是我的問題。 – JuliaLi

回答

1

如果您正在尋找單元測試框架,請查看mr-unit (Apache)。您可以將驅動程序代碼包裝在JUnit中,也可以假設TestNG(免責聲明 - 我只使用過JUnit)。

這使您可以通過映射或減速值壓並斷言特定輸出/計數器出來

+0

我的問題可能會引起誤解。我不打算測試MapReduce程序本身,但MR程序用於爲測試用例生成測試數據。 – JuliaLi

0

最後我想通了,關鍵的一點是類路徑設置。

除了Hadoop的核心的.jar,下$ {HADOOP_HOME} /股/ Hadoop的/ lib目錄/,jar文件的所有jar文件下$ {HADOOP_HOME} /股/ Hadoop的/ lib目錄/ JSP-/和程序代碼依賴的其他jar文件,「$ {hadoop.home}/conf」,「$ {hadoop.home}/share/hadoop」和MR程序本身必須被編譯和打包爲Jar文件並添加到運行時類路徑中。

設置完成後,調用MR方法的testNG測試用例可以按常規方式運行。