首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hadoop环境中添加外部Jar?

如何在hadoop环境中添加外部Jar?
EN

Stack Overflow用户
提问于 2018-02-27 15:11:20
回答 3查看 1.3K关注 0票数 0

我在运行map reduce作业时遇到了一些问题。

我曾使用JSON jar处理HDFS中的JSON文件,并编写了逻辑,但在运行作业时遇到错误(无法找到类表示为ClassNotFoundException)。

我不知道HADOOP如何能够检测到我的jar放在哪里。

在哪里设置jar路径?在哪个文件中?

有人能解决我的问题吗?

EN

回答 3

Stack Overflow用户

发布于 2018-02-27 16:23:31

设置HADOOP_CLASSPATH环境变量

代码语言:javascript
复制
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:<DEPENDENT_JARS_USED_BY_ CLIENT_CLASS>

在提交作业时使用-libjars选项

代码语言:javascript
复制
hadoop jar example.jar com.example.Tool -libjars mysql-connector-java.jar,abc.jar
票数 1
EN

Stack Overflow用户

发布于 2018-02-27 16:13:03

实际上,我不知道HADOOP如何能够检测到我的jar放在哪里

它从纱线容器的类路径中读取。

添加库的最简单方法是将所需的任何JSON库“隐藏”(使用Maven)到MapReduce程序的JAR文件中。

(可以说)更容易处理JSON的方法是使用Spark、Drill或Hive

票数 0
EN

Stack Overflow用户

发布于 2018-02-28 02:01:23

假设您的项目是一个maven项目,只需创建一个包含所有依赖jar的胖jar即可。请看这里:

https://www.mkyong.com/maven/create-a-fat-jar-file-maven-assembly-plugin/

并且依赖的jars将可用于类路径。另一种选择是将jar添加到driver类中的分布式缓存:

代码语言:javascript
复制
DistributedCache.addFileToClassPath(yourJar, conf);

另一种选择是在hadoop类路径中设置jar。

代码语言:javascript
复制
export HADOOP_CLASSPATH=3rd_party_jar
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49003072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档