使用hadoop ecipse插件须要注意的问题

时间:2021-07-20 13:33:27

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"并未弹出例如以下所看到的窗体:

使用hadoop ecipse插件须要注意的问题

而是直接执行了,效果跟"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的环境变量中去。