使用hadoop eclipse plugin提交Job并添加多个第三方jar

来自:http://heipark.iteye.com/blog/1171923

通过 "conf.set("tmpjars", jars);" 可以设置第三方jar,之前一直只是添加一个jar,运行OK,今天打算添加多个jar的时候发现mapreduce在运行时找不到 class(ClassNotFoundException),跟踪代码发现jar文件的确上传到了HDFS中,所以甚是无解,后来上传jar到 hdfs,然后使用DistributedCache.addFileToClassPath()方法也不行。郁闷半天,后来看到job.xml中有一段 奇怪的设置,mapred.job.classpath.files的value为"/user/heipark/lib/commons-lang- 2.3.jar;/user /heipark/lib/guava-r08.jar",可以看到这个分隔符是分号(我的OS是windows),在linux系统和hadoop系统 一般都是逗号和冒号分隔,然后我继续挖,发现DistributedCache.addArchiveToClassPath()方法(tmpjars也 会用这个方法)中使用了“System.getProperty("path.separator")”,于是灵感闪现,修改该值为linux系统的冒 号,我嚓,居然成功了,搞了我4个小时,eclipse终于可以添加多个第三方jar包了。封装了方法,在main方法直接添加jar包就可以了。

调用:

addTmpJar("D:/Java/new_java_workspace/scm/lib/guava-r08.jar", conf);

方法定义:

/**
     * 为Mapreduce添加第三方jar包
     *
     * @param jarPath
     *            举例:D:/Java/new_java_workspace/scm/lib/guava-r08.jar
     * @param conf
     * @throws IOException
     */
    public static void addTmpJar(String jarPath, Configuration conf) throws IOException {
        System.setProperty("path.separator", ":");
        FileSystem fs = FileSystem.getLocal(conf);
        String newJarPath = new Path(jarPath).makeQualified(fs).toString();
        String tmpjars = conf.get("tmpjars");
        if (tmpjars == null || tmpjars.length() == 0) {
            conf.set("tmpjars", newJarPath);
        } else {
            conf.set("tmpjars", tmpjars + "," + newJarPath);
        }
    }

使用hadoop eclipse plugin提交Job并添加多个第三方jar

时间: 2024-11-01 02:51:00

使用hadoop eclipse plugin提交Job并添加多个第三方jar的相关文章

2.1 Hadoop Eclipse Plugin 配置及安装

Hadoop Eclipse 开发工具 主要分为 1.根据Hadoop版本生成插件 2.安装Hadoop Eclipse插件 3.配置Hadoop目录 4.配置Hadoop连接 5.新一个MapReduce工程 WordCount.java MapReduce--WordCount问题总结 参考:http://blog.sina.com.cn/s/blog_7fcb1aef0100zpux.html 正成功输入出后信息: 14/05/21 23:06:47 INFO input.FileInpu

windows Hadoop环境搭建之三---Hadoop eclipse Plugin

准备环境 先下载htrace-core-3.0.4.jar文件 官网链接: http://mvnrepository.com/artifact/org.htrace/htrace-core/3.0.4 copy到Hadoop的share/hadoop/common/lib目录下 避免出现错误找不到文件的错误. 下载hadoop2x-eclipse-plugin 官网地址: https://github.com/winghc/hadoop2x-eclipse-plugin 解压后,上传到 Hado

Hadoop eclipse plugin

我的eclipse是在win7上,hadoop在win7里的虚拟机里的ubuntu上,为了方便起见,想在eclipse上安装hadoop的插件,主要参考 https://my.oschina.net/muou/blog/408543,上面写得蛮详细的,配置完后,出现在上面所写的问题一,按照他所说的创建目录后,eclipse里的 DFS Locations 里面依旧显示Connection Refused.找到了官方文档: https://wiki.apache.org/hadoop/Connec

Eclipse远程提交hadoop集群任务

文章概览: 1.前言 2.Eclipse查看远程hadoop集群文件 3.Eclipse提交远程hadoop集群任务 4.小结 1 前言 Hadoop高可用品台搭建完备后,参见<Hadoop高可用平台搭建>,下一步是在集群上跑任务,本文主要讲述Eclipse远程提交hadoop集群任务. 2 Eclipse查看远程hadoop集群文件 2.1 编译hadoop eclipse 插件 Hadoop集群文件查看可以通过webUI或hadoop Cmd,为了在Eclipse上方便增删改查集群文件,我

Hadoop 2.5.2 eclipse plugin 编译 win7 集成

一.hadoop集群环境配置 参考我的前一篇文章(ubuntu + hadoop2.5.2分布式环境配置 http://www.cnblogs.com/huligong1234/p/4136331.html) 我是在自己的Linux上编译了一一下, centos 64位 编译环境: 二.windows基础环境准备 windows7(x64),jdk,ant,eclipse,hadoop 1.jdk环境配置 jdk-6u26-windows-i586.exe安装后好后配置相关JAVA_HOME环境

CentOS 6.5 编译Eclipse plugin for hadoop 2.5及加载连接

1. rpm -ivh jdk-7u67-linux-x64.rpm cd /opttar zxf /root/hadoop-2.2.0.tar.gztar zxf /root/apache-ant-1.9.4-bin.tar.gztar zxf /root/apache-maven-3.2.3-bin.tar.gztar zxf /root/eclipse-java-luna-SR1-linux-gtk-x86_64.tar.gzunzip -x /root/hadoop2x-eclipse-

(转)Hadoop Eclipse开发环境搭建

来源:http://www.cnblogs.com/justinzhang/p/4261851.html This document is from my evernote, when I was still at baidu, I have a complete hadoop development/Debug environment. But at that time, I was tired of writing blogs. It costs me two day’s spare tim

关于自编译hadoop eclipse 插件

由于在eclipse下开发hadoop 程序需要插件支持,而且hadoop报下已经没有插件了,所以需要我们自己编译,操作步骤如下 1.进入D:\hadoop-1.2.1\src\contrib目录,找到build-contrib.xml文件 ,将hadoop.root改为hadoop解压目录. <property name="hadoop.root" location="D:\hadoop-1.2.1"/> 在下面添加如下两行:Eclipse安装根目录,

Hadoop Eclipse开发环境搭建

    This document is from my evernote, when I was still at baidu, I have a complete hadoop development/Debug environment. But at that time, I was tired of writing blogs. It costs me two day's spare time to recovery from where I was stoped. Hope the b