第三方jar包解决方案
方案1:可以将任务jar中建立lib目录把依赖的jar放入该目录,此时项目运行时会自动寻找lib目录下的jar
Task运行期间Jars依赖 可以通过以下方案
方案2:
conf.set("tmpjars","file:///jar路径 ");
hadoop jar xxx.jar xxx入口类 -libjars jar路径
例如:
conf.set("tmpjars","file:///root/test/mysql-connector-java-5.1.41.jar ");
hadoop jar xxx.jar xxx入口类 -libjars /root/test/mysql-connector-java-5.1.41.jar
如果是任务提交前期需要的jar文件
方案3:
配置HADOOP_CLASSPATH环境变量解决(~/.bashrc)
HADOOP_CLASSPATH=/root/test/mysql-connector-java-5.1.41.jar
HADOOP_HOME=/usr/hadoop-2.6.0
JAVA_HOME=/usr/java/latest
CLASSPATH=.
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME
export PATH
export CLASSPATH
export HADOOP_HOME
export HADOOP_CLASSPATH
HADOOP_HOME=/usr/hadoop-2.6.0
JAVA_HOME=/usr/java/latest
CLASSPATH=.
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME
export PATH
export CLASSPATH
export HADOOP_HOME
export HADOOP_CLASSPATH
配置完成后
source .bashrc
[root@CentOS ~]# hadoop classpath (查看类路径下有没有新添HADOOP_CLASSPATH,jar包)
代码中添加
conf.set("tmpjars","file:///jar路径 ");