hadoop - 在第三方作业中添加第三方jar的问题

标签 hadoop mapreduce hive hdfs

我正在尝试将第三方jar添加到hadoop工作中。我正在使用DistributedCache.addFileToClassPath方法添加每个jar。我可以看到在作业xml文件中正确填充了mapred.job.classpath.files

-libjars也对我不起作用(很可能是因为我们未使用Toolrunner)

有什么建议,可能是什么问题?

最佳答案

将 jar 添加到HADOOP_CLASSPATH中

    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机器本身而不是HDFS上的路径

重新启动Hadoop

命令
hadoop classpath

应该在类路径中显示jar

现在照常运行MR工作
hadoop jar <MR-program jar> <MR Program class> <input dir> <output dir>

它将按预期使用该文件。

关于hadoop - 在第三方作业中添加第三方jar的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11444855/

相关文章:

hadoop - Hive服务器未启动

java - 输入大小为 ~ 2Mb 的 Hadoop mapreduce

database - 将Hive列从String转换为具有NaT值的时间戳

hadoop - 为什么分区+存储桶比从普通表查询花费更长的时间?

java - Spring-Hadoop使用mapper类中的spring对象

hadoop - 如何编写自定义输入格式

hadoop - 扩展 Hive : writing a UDF that does both Map and Reduce operations

hadoop - Apache Hadoop pig SPLIT 不工作。给出错误 1200

hadoop - Hadoop 有没有官方的 Docker 镜像?

java - 两个相等的组合键不会到达同一个 reducer