目录
1 eclipse中hadoop环境部署概览
2 部署环境机器相关配置
3 eclipse中hdfs及mapreduce环境部署
3.1 Linux中eclipse安装
3.2 eclipse环境部署
4 eclipse中直接提交mapreduce任务(此处以wordcount为例,同时注意hadoop集群防火墙需对该机器开放相应端口)
4.1 首先新建Map/Reduce工程(无须手动导入hadoop jar包),或者新建java工程(需要手动导入hadoop相应jar包)。
 4.2 eclipse直接提交mapreduce任务所需环境配置代码如下所示:
4.3 修改后的wordcount代码如下
首页 数据库 mysql教程 eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

Jun 07, 2016 pm 03:00 PM
eclipse 环境 部署

1eclipse中hadoop环境部署概览 eclipse中部署hadoop包括两大部分:hdfs环境部署和mapreduce任务执行环境部署。一般hdfs环境部署比较简单,部署后就 可以在eclipse中像操作windows目录一样操作hdfs文件。而mapreduce任务执行环境的部署就比较复杂一点,不同版

1 eclipse中hadoop环境部署概览

    eclipse中部署hadoop包括两大部分:hdfs环境部署和mapreduce任务执行环境部署。一般hdfs环境部署比较简单,部署后就 可以在eclipse中像操作windows目录一样操作hdfs文件。而mapreduce任务执行环境的部署就比较复杂一点,不同版本对环境的要求度 高低不同就导致部署的复杂度大相径庭。例如hadoop1包括以前的版本部署就比较简单,可在windows和Linux执行部署运行,而hadoop2 及以上版本对环境要求就比较严格,一般只能在Linux中部署,如果需要在windows中部署需要使用cygwin等软件模拟Linux环境,该篇介绍在Linux环境中部署hadoop环境。该篇假设hadoop2.3.0集群已经部署完成,集群访问权限为hadoop用户。这种在eclipse上操作hdfs和提交mapreduce任务的方式为hadoop客户端操作,故无须在该机器上配置hadoop集群文件,也无须在该机器上启动hadoop相关进程。

2 部署环境机器相关配置

  • Centos6,32位

  • Hadoop2.3.0

  • Eclipse4.3.2_jee Linux版

  • JDK1.7 Linux版

3 eclipse中hdfs及mapreduce环境部署

3.1 Linux中eclipse安装

          3.1.1 在Linux中选择一个eclipse安装目录如/home目录,将eclipse压缩包eclipse-standard-kepler-SR2-linux-gtk.tar.gz在该目录下解压即可,解压命令如下:

                tar -zxvf eclipse-standard-kepler-SR2-linux-gtk.tar.gz

           3.1.2  解压后的eclipse目录需要赋予hadoop用户权限chown -R hadoop:hadoop /home/eclipse,解压后eclipse目录如下图所示:

            eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

        3.1.3 将自己打包或者下载的hadoop和eclipse直接的插件导入eclipse的 plugins目录(复制进去即可),该篇使用直接下载的插件hadoop-eclipse-plugin-2.2.0.jar,然后启动eclipse。

3.2 eclipse环境部署

        3.2.1    打开eclipse后切换到mapreduce界面会出现mapreduce插件图标,一个是DFS显示的位置,一个是mapreduce显示的位置,具体如下图所示:

    eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

        3.2.2 在MapReduce Locations出处点击右键新建mapreduce配置环境,具体图示如下:

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

        3.2.3 进入mapreduce配置环境,具体如下图所示。其中,Location name可任意填写,Mapreduce Master中Host为resourcemanager机器ip,Port为resourcemanager接受任务的端口号,即yarn-site.xml文件中yarn.resourcemanager.scheduler.address配置项中端口号。DFS Master中的Host为namenode机器ip,Port为core-site.xml文件中fs.defaultFS配置项中端口号。

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

        3.2.4 上一步骤配置完成后,我们看到的界面如下图所示。左侧栏中即为hdfs目录,在每个目录上课点击右键操作。

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

4 eclipse中直接提交mapreduce任务(此处以wordcount为例,同时注意hadoop集群防火墙需对该机器开放相应端口)

    如果我们将hadoop自带的wordcount在eclipse中执行是不可以的,调整后具体操作如下。

4.1 首先新建Map/Reduce工程(无须手动导入hadoop jar包),或者新建java工程(需要手动导入hadoop相应jar包)。

        4.1.1 新建Map/Reduce工程(无须手动导入hadoop jar包),具体图示如下图所示:

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

         4.1.1.1 点击next输入hadoop工程名即可,具体如下图所示:

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

         4.1.1.2 新建的hadoop工程如下图所示:

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

         4.1.2 新建java工程(需要手动导入hadoop相应jar包),具体如下图所示:

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

            4.1.2.1 新建java工程完成后,下面添加hadoop相应jar包,hadoop2.3.0相应jar包在/hadoop-2.3.0/share/hadoop目录中。

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

            4.1.2.2 进入Libraries,点击Add Library添加hadoop相应jar包。

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

            4.1.2.3 新建hadoop相应library成功后添加hadoop相应jar包到该library下面即可。

eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任

            4.1.2.4 需要添加的hadoop相应jar包有:

                /hadoop-2.3.0/share/hadoop/common下所有jar包,及里面的lib目录下所有jar包

                /hadoop-2.3.0/share/hadoop/hdfs下所有jar包,不包括里面lib下的jar包

                /hadoop-2.3.0/share/hadoop/mapreduce下所有jar包,不包括里面lib下的jar包

                /hadoop-2.3.0/share/hadoop/yarn下所有jar包,不包括里面lib下的jar包

 4.2 eclipse直接提交mapreduce任务所需环境配置代码如下所示:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;

public class EJob {

    // To declare global field
    private static List<URL> classPath = new ArrayList<URL>();

    // To declare method
    public static File createTempJar(String root) throws IOException {
        if (!new File(root).exists()) {
            return null;
        }
        Manifest manifest = new Manifest();
        manifest.getMainAttributes().putValue("Manifest-Version", "1.0");
        final File jarFile = File.createTempFile("EJob-", ".jar", new File(System.getProperty("java.io.tmpdir")));

        Runtime.getRuntime().addShutdownHook(new Thread() {
            public void run() {
                jarFile.delete();
            }
        });

        JarOutputStream out = new JarOutputStream(new FileOutputStream(jarFile), manifest);
        createTempJarInner(out, new File(root), "");
        out.flush();
        out.close();
        return jarFile;
    }

    private static void createTempJarInner(JarOutputStream out, File f,
            String base) throws IOException {
        if (f.isDirectory()) {
            File[] fl = f.listFiles();
            if (base.length() > 0) {
                base = base + "/";
            }
            for (int i = 0; i < fl.length; i++) {
                createTempJarInner(out, fl[i], base + fl[i].getName());
            }
        } else {
            out.putNextEntry(new JarEntry(base));
            FileInputStream in = new FileInputStream(f);
            byte[] buffer = new byte[1024];
            int n = in.read(buffer);
            while (n != -1) {
                out.write(buffer, 0, n);
                n = in.read(buffer);
            }
            in.close();
        }
    }

    public static ClassLoader getClassLoader() {
        ClassLoader parent = Thread.currentThread().getContextClassLoader();

        if (parent == null) {
            parent = EJob.class.getClassLoader();
        }
        if (parent == null) {
            parent = ClassLoader.getSystemClassLoader();
        }
        return new URLClassLoader(classPath.toArray(new URL[0]), parent);
    }

    public static void addClasspath(String component) {

        if ((component != null) && (component.length() > 0)) {
            try {
                File f = new File(component);

                if (f.exists()) {
                    URL key = f.getCanonicalFile().toURL();
                    if (!classPath.contains(key)) {
                        classPath.add(key);
                    }
                }
            } catch (IOException e) {
            }
        }
    }

}
登录后复制

4.3 修改后的wordcount代码如下

登录后复制

   4.4 在eclipse中提交mapreduce任务

        在eclipse中代码区点击右键,点击里面的run on hadoop即可运行该程序。



Java自学之道完整版 CSDN 下载地址: http://download.csdn.net/detail/longdeyun/5839581

Java自学之道完整版 开源中国 下载地址: http://www.oschina.net/news/42748/java-self-study-guide

Java自学之道技术分享及经验交流群:301318062

Java、hadoop、spark相关技术共享交流群:287683381

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在Eclipse中如何调整背景颜色设置 在Eclipse中如何调整背景颜色设置 Jan 28, 2024 am 09:08 AM

如何在Eclipse中设置背景颜色?Eclipse是广受开发人员欢迎的集成开发环境(IDE),可用于各种编程语言的开发。它非常强大且灵活,可以通过设置来自定义界面及编辑器的外观。本文将介绍如何在Eclipse中设置背景颜色,并提供具体的代码示例。一、更改编辑器背景颜色打开Eclipse,并进入“Windows”菜单。选择“Preferences”。在左侧导航

无法引导到Windows恢复环境 无法引导到Windows恢复环境 Feb 19, 2024 pm 11:12 PM

Windows恢复环境(WinRE)是用于修复Windows操作系统错误的环境。进入WinRE后,您可以执行系统还原、出厂重置、卸载更新等操作。如果无法引导到WinRE,本文将指导您使用修复程序解决此问题。无法引导到Windows恢复环境如果无法引导至Windows恢复环境,请使用下面提供的修复程序:检查Windows恢复环境的状态使用其他方法进入Windows恢复环境您是否意外删除了Windows恢复分区?执行Windows的就地升级或全新安装下面,我们已经详细解释了所有这些修复。1]检查Wi

专业指导:如何成功安装Eclipse Lombok插件的专家建议和步骤 专业指导:如何成功安装Eclipse Lombok插件的专家建议和步骤 Jan 28, 2024 am 09:15 AM

专业指导:Eclipse安装Lombok插件的专家建议和步骤,需要具体代码示例摘要:Lombok是一种Java库,能够通过注解的方式简化Java代码的编写,并提供了一些功能强大的工具。本文将向读者介绍如何在Eclipse中安装和配置Lombok插件的步骤,并提供一些具体的代码示例,以便读者能够更好地理解和使用Lombok插件。下载Lombok插件首先,我们需

揭秘Eclipse代码运行问题的解决方案:助你排查各种运行错误 揭秘Eclipse代码运行问题的解决方案:助你排查各种运行错误 Jan 28, 2024 am 09:22 AM

Eclipse代码运行问题解决方案大揭秘:帮你排除各种代码运行错误,需要具体代码示例导言:Eclipse是一种常用的集成开发环境(IDE),被广泛用于Java开发。尽管Eclipse有着强大的功能和友好的用户界面,但是在编写和调试代码时,难免会遇到各种运行问题。本文将揭示一些常见的Eclipse代码运行问题,并提供解决方案。请注意,为了更好地帮助读者理解,本

用Eclipse更改背景颜色的逐步指南 用Eclipse更改背景颜色的逐步指南 Jan 28, 2024 am 08:28 AM

一步步教你在Eclipse中更改背景颜色,需要具体代码示例Eclipse是一款非常流行的集成开发环境(IDE),经常被用来编写和调试Java项目。在默认情况下,Eclipse的背景颜色是白色,但是有些用户可能希望更改背景颜色以适应自己的喜好或减轻眼部疲劳。本文将一步步教你如何在Eclipse中更改背景颜色,并提供具体的代码示例。步骤1:打开Eclipse首先

Eclipse中自定义快捷键设置的方法 Eclipse中自定义快捷键设置的方法 Jan 28, 2024 am 10:01 AM

如何在Eclipse中自定义快捷键设置?作为一名开发人员,在使用Eclipse进行编码时,熟练掌握快捷键是提高效率的关键之一。Eclipse作为一款强大的集成开发环境,不仅提供了许多默认的快捷键,还允许用户根据自己的偏好进行个性化的定制。本文将介绍如何在Eclipse中自定义快捷键设置,并给出具体的代码示例。打开Eclipse首先,打开Eclipse,并进入

eclipse字体大小设置方法 eclipse字体大小设置方法 Jan 23, 2024 pm 03:09 PM

设置步骤:1、打开Eclipse,进入菜单栏Window -> Preferences;2、选择General -> Appearance -> Colors And Fonts;3、展开Basic -> Text Font,并点击右侧的Edit按钮;4、选择字体、字形、大小等属性,根据个人需求选择合适的字体大小,例如12、14或16等;5、点击Apply按钮应用更改即可。

Yolov10:详解、部署、应用一站式齐全! Yolov10:详解、部署、应用一站式齐全! Jun 07, 2024 pm 12:05 PM

一、前言在过去的几年里,YOLOs由于其在计算成本和检测性能之间的有效平衡,已成为实时目标检测领域的主导范式。研究人员探索了YOLO的架构设计、优化目标、数据扩充策略等,取得了显着进展。同时,依赖非极大值抑制(NMS)进行后处理阻碍了YOLO的端到端部署,并对推理延迟产生不利影响。在YOLOs中,各种组件的设计缺乏全面彻底的检查,导致显着的计算冗余,限制了模型的能力。它提供了次优的效率,以及相对大的性能改进潜力。在这项工作中,目标是从后处理和模型架构两个方面进一步提高YOLO的性能效率边界。为此

See all articles