zoukankan      html  css  js  c++  java
  • 使用hadoop ecipse插件须要注意的问题

    1.关于run on hadoop的问题:

    在未用hadoop eclipse插件前,我以为通过hadoop eclipse 插件不但能够管理hdfs,还能够自己主动打包程序。并帮我自己主动设置Configuration对象的mapred.jar属性值。但用了之后,才发现,这个插件仅仅能管理hdfs。至于打包程序等操作,还得自己手动进行。

    我用的hadoop 版本号为1.2.1,hadoop eclipse插件个人亲自编译生成,保证无不论什么问题,我一開始用的是MyEclipse后来换成Eclipse。但试用了,仍存在这个问题。

    "run as——>run on hadoop"并未弹出例如以下所看到的窗体:


    而是直接执行了,效果跟"run as——>run configurations——>填写參数值——>run"的效果一致。

    不知道是不是这个hadoop 1.2.1版本号的ecipse插件都存在这个问题,还是我个人使用出现的问题,假设有哪位童鞋们知道这个问题,能够赐教下


    2.关于通过ecipse设置hadoop执行模式的问题:

    说先,我们要明白hadoop的执行模式以及各种执行模式的差别,參考例如以下:

     (1)独立模式<standalone>(也叫本地模式<local mode>)
    独立模式全然执行在本地。不会载入不论什么MapReduce服务,因而不会涉及Mapreduce最核心的代码实现。


            独立模式无需执行不论什么守护进程(daemon),全部程序都在单个JVM上执行。因为在本机模式下測试和调试MapReduce程序较为方便,因此,这样的模式适宜用在开发阶段。
    (2)分布模式(pseudo-distributed model)

    当中,分布模式分为两种:伪分布式模式和全分布式模式。
    a.伪分布式模式:
    伪分布式模式即为“单点集群”。在该模式下全部的守护进程均会执行在单个节点上。
            b.全分布模式(fully distributed model)
            Hadoop守护进程执行在一个真实的集群上,如NameNode、SeconeNameNode、Jobtracker、TaskTracker等分别执行在不同机器上。

    注:当中,独立模式和单机模式均执行在单机环境中


            在特定模式下执行Hadoop须要关注两个因素:正确设置属性和启动Hadoop守护进程。


            下表列举了配置各种模式所须要的最小属性集合:

    组件名称

    属性名称

    独立模式

    伪分布模式

    全分布模式

    Common

    fs.default.name

    file:///(默认)

    hdfs://localhost/

    hdfs://namenode/

    HDFS

    dfs.replication

    N/A

    1

    3(默认)

    MapReduce

    mapred.job.tracker

    local(默认)

    localhost:8021

    jobtracker:8021

     在独立模式下,将使用本地文件系统(默觉得本地文件系统,也能够设置文件系统为hdfs)和本地MapReduce作业执行。在分布式模式下,将启动HDFS和MapReduce守护进程。


    在明晰了上述差别后,我们再说在eclipse中执行hadoop程序的问题。
    注:在这里,我们不区分伪分布式模式和全分布式模式。把他们都叫做分布式模式。
    在eclipse中执行hadoop程序能够採用本地立模式和分布式模式,假设没有设置mapred.job.tracker属性值的话。默认採用本地模式执行。

    本地模式中,文件系统能够使用本地文件系统(file:///)也能够使用HDFS文件系统(hdfs://),假设使用hdfs文件系统的话。则须要设置fs.default.name属性。

    本地模式中。mapreduce等一系列过程直接执行在ecipse启动的单个JVM进程内,程序的执行全然与hadoop集群没有不论什么关系(不使用hdfs文件系统的前提下)。这时,你假设关闭了hadoop集群,对程序的执行没有不论什么影响(不使用hdfs文件系统的前提下)。

    假设设置了mapred.job.tracker属性值的话。则採用分布式模式执行。eclipse在此事实上是充当了“client”的角色,将程序提交给jobtracker,有jobtracker来分配和管理任务的执行。

    事实上就是说eclipse把任务提交给hadoop集群了。这时,你打开jobtracker或者namenode、datanode的相应的网页监控页面的话,能够看到执行状态和日志。

    注:上面所说的设置mapred.job.tracker属性值和设置fs.default.name属性值能够在程序中设置Configuration对象或者分别将mapred-site.xml文件(相应mapred.job.tracker配置)、core-site.xml、hdfs-site.xml(这两个文件相应fs.default.name配置)分别放入eclipse hadoopproject的环境变量中去。




  • 相关阅读:
    linux驱动开发学习一:创建一个字符设备
    如何高效的对有序数组去重
    找到缺失的第一个正整数
    .NET不可变集合已经正式发布
    中国人唯一不认可的成功——就是家庭的和睦,人生的平淡【转】
    自己动手搭建 MongoDB 环境,并建立一个 .NET HelloWorld 程序测试
    ASP.NET MVC 中如何用自定义 Handler 来处理来自 AJAX 请求的 HttpRequestValidationException 错误
    自己动手搭建 Redis 环境,并建立一个 .NET HelloWorld 程序测试
    ServiceStack 介绍
    一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5082169.html
Copyright © 2011-2022 走看看