您的位置:首页 > 编程语言 > Java开发

eclipse 与hadoop调试环境遇到的问题

2012-07-10 11:03 274 查看
配置:在win7中使用eclipse,在win7上虚拟一个linux,在linux里安装hadoop。

目的:在eclipse中编写mapreduce程序,连接到hadoop上直接调试执行。

遇到的几个问题如下:

        eclipse与hadoop-eclipse-plugin版本问题:试了很多版本,确定eclipse3.3.2版本+hadoop-0.20.2版本可用。hadoop插件就是hadoop自带的。

        如果出现问题,把eclipse workspace清空,因为之前试用的plugin会影响到eclipse的环境。

 

       连接问题:

                在linux中用 ifconfig 命令查看虚拟机的ip,在eclipse连接时,使用该ip。hadoop配置文件中,都使用ip,不用主机名,比如 core-xml.site mapred master slave

                在windows c盘的C:\Windows\System32\drivers\etc目录下修改 hosts文件,将虚拟机的ip和主机名加进去。

               连接的时候,在edit hadoop location时,使用的配置和linux下的hadoop配置要一致。

       以上基本可以run on hadoop,但是,想通过在线调试,出现了一个很棘手的问题:

               在hadoop 的mapred-site.xml配置:

                <property>

                            <name>mapred.child.java.opts</name>

                            <value>-Xmx200m -agentlib:jdwp=transport=dt_socket,address=8883,server=y,suspend=y</value>

                </property>

        在eclipse中的edit hadoop location 配置中也要配置 mapred.child.java.opts。

       但是,出现以下问题:

               12/07/10 10:46:57 WARN mapred.JobClient: Error reading task outputhttp://hadoop:50060/tasklog?plaintext=true&        taskid=attempt_201207101045_0001_m_000016_0&filter=stdout

12/07/10 10:46:57 WARN mapred.JobClient: Error reading task outputhttp://hadoop:50060/tasklog?plaintext=true&taskid=attempt_201207101045_0001_m_000016_0&filter=stderr  

               正在寻找解决方法:

       弄了半天,发现是内存不够引起的问题,因为设置的调试环境会另起一个进程,虚拟机可用内存不够起两个-Xmx200m的进程(一个运行,一个调试)。修改-Xmx200m为

-Xmx100m,这样连运行都不行了。所以,至少在这样的环境下是不能进行在线调试的。

               
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息