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的运行模式以及各种运行模式的区别,参考如下:
独立模式无需运行任何守护进程(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 |