2013-01-24 110 views
3

我想爲使用junit和mockito的mapper和reducer運行一些單元測試。
我必須在每次運行測試時指定hadoop核心和commons jar文件在classpath中的位置嗎?
我以爲運行「hadoop」命令應該在運行時自動包含所有必需的庫。無論如何避免每次都輸入hadoop依賴關係?hadoop類路徑

hadoop -cp /home/xxx/Downloads/mockito-all-1.9.5.jar:/home/xxx/Downloads/junit-4.10.jar:/home/xxx/Downloads/hadoop-1.1.1/hadoop-core-1.1.1.jar:./classes:.:/home/xxx/Downloads/hadoop-1.1.1/lib/commons-logging-1.1.1.jar org.junit.runner.JUnitCore MaxTemperatureMapperTest 

回答

2

您可以在hadoop-env.sh中指定類路徑。 「export HADOOP_CLASSPATH = *」 下一次運行hadoop時,類路徑將自動添加。

+0

運行hadoop命令vs Java命令有什麼用處? 「export HADOOP_CLASSPATH = *」是做什麼的? – user1982993

+0

運行hadoop程序時,通常使用hadoop命令。當然,您可以查看bin/hadoop以查看hadoop命令實際執行的操作。使用導出,以便它自動添加到程序的類路徑中,以便每次運行時不必將其添加到參數中 – user1687035