在Eclipse開發環境中,派發Mapreduce job到集羣的過程中,往往出現自己定義的Map及Reduce類找不到的情況。這個時候可以將工程打成jar包,然後將jar包添加到工程中。這種方法過於繁瑣,現只需要在配置job之前通過代碼將自己的Map及Reduce類上傳到集羣即可。代碼如下所示:
Method addURL = URLClassLoader.class.getDeclaredMethod("addURL",
new Class[] { URL.class });addURL.setAccessible(true);
URLClassLoader classloader = (URLClassLoader)ClassLoader.getSystemClassLoader();
String url = "file:///home/bi/Desktop/Job.jar"; // 包路徑位置
URL classUrl = new URL(url);
addURL.invoke(classloader, new Object[] { classUrl });