hadoop使用过程的问题

在这两天的研究与使用过程中,发现了几个比较重要的问题,也是困扰我两天的问题:

1、使用本地代码提交任务

问题由来:

通过对hadoop的学习,发现hadoop目前的工作方式是你自己开发的程序需要打包好,然后使用hadoop的命令加载并运行,使用起来不太方便,想通过本地的eclipse直接运行。

解决方法:

通过查找网上资料发现在hadoop的安装包中有一个目录contrib,里面有eclipse-plugin,但是版本是0.18的版本,目前我使用的是0.20,好像存在兼容问题。

在网上偶然发现一个博客http://www.cnblogs.com/spork/archive/2010/04/07/1706162.html,其中分析了hadoop命令中作业提交的实现原理和方式,并使用java程序实现了该功能,从而解决了使用代码实现作业提交的功能。

但是在使用过程中发现,如果提交作业的开发机用户名和hadoop服务启动时的用户名不一致是会出现权限问题,即不能在HDFS中创建目录,无法设置权限等,解决方式就是在本机创建一个同名用户就可以了。

2、MapRed集群不能正常工作

问题由来:

在使用过程中发现,虽然每个机器上的进程都已经启动完毕了,但是通过hadoop的web客户端查看状态发现如下情况:

在Cluster Summary中的Nodes总是不对,通过查看hadoop_home/logs目录中的hadoop-hadoop-tasktracker-gcpserver.log日志文件发现其中总是连接集群的主节点,总是连接不上在不断的重连。

分析发现,连接的服务地址使用的是hostname,不是ip地址。而在我的环境中hostname是存在重复的。而且我的开发机和服务器不在同一个网段内。

解决方法:

分别对每一台机器设置hosts文件,指定每个服务的hostname和ip,并且保持唯一,在开发机中也指定。重启后解决了该问题。

猜你喜欢

转载自zz-19830103.iteye.com/blog/1117205