您的位置:首页 > 运维架构

mapreduce程序开发及伪分布式调试小结

2016-04-27 14:47 288 查看
在eclipse上编写好mapreduce程序后,就可以调试程序。

调试有两种方式,本地、hdfs.

博主只有一台电脑,因此用伪分布式模拟远程hdfs。

问题一:输入的input、output位置

默认情况下,输入的input、output文件位于mapreduce程序根目录下。

若要调试mapreduce程序在远程hdfs下的运行效果,效率问题,就需要设置远程hdfs的地址和端口号,以及input、output位置。

问题二:Caused by: java.net.ConnectException: 拒绝连接。远程hdfs访问被拒绝。

出现这个问题,一般是因为input、output目录位置所处的HDFS地址和端口号配错了。

如下设置ip及端口号,就能顺利连接到本机hdfs的位置及端口下的/user/hadoop/位置,输出结果也能及时在hadoop eclipse插件下看到。

final String inputPath = "hdfs://127.0.0.1:9000/user/hadoop/input";
final String outputPath = "hdfs://127.0.0.1:9000/user/hadoop/output";

hadoop eclipse插件目录结果如下:



补充说明:

这个问题折腾了一天。

刚开始以为是hadoop locations的的设置问题。由于我是伪分布式hadoop配置,把localhost改为本机地址127.0.0.1,也没解决报错问题。

后来根据官方文档和网上的各种建议,修改core-site.xml、hdfs-site.xml、mapred-site.xml均没有解决问题。

后来以为是必须开启yarn,又修改配置文件mapred-site.xml、yarn-site.xml,还是没有解决问题。

最后才知道input、output的端口号必须一致。不一致的是hadoop locations中dfs、map/reduce中不一样,我的分别是9000、50020.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop mapreduce