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的执行模式以及各种执行模式的差别,參考例如以下:
mode>)
独立模式无需执行不论什么守护进程(daemon),全部程序都在单个JVM上执行。因为在本机模式下測试和调试MapReduce程序较为方便,因此,这样的模式适宜用在开发阶段。
(2)分布式模式(pseudo-distributed model)
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守护进程。
本地模式中,文件系统能够使用本地文件系统(file:///)也能够使用HDFS文件系统(hdfs://),假设使用hdfs文件系统的话。则须要设置fs.default.name属性。
本地模式中。mapreduce等一系列过程直接执行在ecipse启动的单个JVM进程内,程序的执行全然与hadoop集群没有不论什么关系(不使用hdfs文件系统的前提下)。这时,你假设关闭了hadoop集群,对程序的执行没有不论什么影响(不使用hdfs文件系统的前提下)。
事实上就是说eclipse把任务提交给hadoop集群了。这时,你打开jobtracker或者namenode、datanode的相应的网页监控页面的话,能够看到执行状态和日志。
hadoopproject的环境变量中去。