很有可能在hadoop job时,我们会引入第三方包,暂时有效的方法:
- 将自己的程序,与第三方jar包的class文件一起打包成一个jar,有fatjar这麽个eclipse插件可简单打包;
- 将第三方jar包都拷贝到集群中所有节点的${HADOOP_HOME}/lib下或者${JAVA_HOME}/ext;
- 将第三方jar包放在叫lib的目录下,在通过eclipse导出jar包(Eclipse自带的导包)时,将这个lib目录一起打包,这样运行MapReduce任务时,hadoop能够加载到lib目录第三方的类;
- 通过-libjars运行参数来指定第三方包,但在我的hadoop2.2.0集群中并无效,还在琢磨中。
个人觉得第三,四种比较可行。