我是 Hadoop 新手。我已将 Gson API 添加到我的 MapReducing 程序中。当我运行程序时;
Error: java.lang.ClassNotFoundException: com.google.gson.Gson
有人可以建议我如何将第三方库添加到 Hadoop 中吗?
我是 Hadoop 新手。我已将 Gson API 添加到我的 MapReducing 程序中。当我运行程序时;
Error: java.lang.ClassNotFoundException: com.google.gson.Gson
有人可以建议我如何将第三方库添加到 Hadoop 中吗?
请务必在提交作业时添加任何依赖项,HADOOP_CLASSPATH
如下-libjars
例所示:
使用以下命令添加当前目录和lib
目录中的所有 jar 依赖项:
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:`echo *.jar`:`echo lib/*.jar | sed 's/ /:/g'`
请记住,当您开始工作时,hadoop jar
您还需要通过使用-libjars
. 我喜欢使用:
hadoop jar <jar> <class> -libjars `echo ./lib/*.jar | sed 's/ /,/g'` [args...]
注意:命令sed
需要不同的分隔符;是分开的,HADOOP_CLASSPATH
需要分开的。:
-libjars
,
在 HADOOP_CLASSPATH 中添加 Jar
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
添加最后一行
export HADOOP_CLASSPATH=/root/hadoop/extrajars/java-json.jar:$HADOOP_CLASSPATH
“/root/hadoop/extrajars/java-json.jar”是 linux box 本身而不是 HDFS 上的路径
重启hadoop
命令
hadoop classpath
应该在类路径中显示 jar
现在像往常一样运行 MR 作业
hadoop jar <MR-program jar> <MR Program class> <input dir> <output dir>
它将按预期使用文件。