实战 windows7 下 eclipse 远程调试 linux hadoop
2013-08-20 14:38
519 查看
恩,之所以有这篇博客,是因为最近又有童鞋咨询怎么在 windows 7 下用eclipse远程调试部署在linux下的hadoop,其实我自己不这么混搭的,既然有童鞋这么问了,那我就索性随着折腾一把了。
首先说明几点:
远程调试对于本地hadoop版本、远程hadoop版本、eclipse版本都有极为严格的兼容性要求,我所采用的版本如下:
(1)本地hadoop:0.20.203(如果客户端和服务端hadoop版本不匹配可能会有协议错误)
(2)远程hadoop:0.20.203(因为各个版本的ipc协议都有变化)
下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-0.20.203.0/
(3)eclipse版本:indigo(这个也很重要,不匹配的话,可能eclipse压根就无法识别hadoop插件)
文件md5码以及下载地址:
http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2
(4)客户端操作系统:win7,远程操作系统:linux(ubuntu/centos等等,只要是linux均可)
上述搭配中如果有任意一项版本不匹配,均可能有异常发生,这都不在本文的讨论范畴,因此开始下文操作前,请务必核对你自己的版本。
第一步:先启动hadoop守护进程
具体参看:/article/5115845.html
第二步:在eclipse上安装hadoop插件
1.复制 hadoop安装目录/contrib/eclipse-plugin/hadoop-0.20.203.0-eclipse-plugin.jar 到 eclipse安装目录/plugins/ 下。
2.重启eclipse,配置hadoop installation directory。
如果安装插件成功,打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory。配置完成后退出。
3.配置Map/Reduce Locations。
在Window-->Show View中打开Map/Reduce Locations。
在Map/Reduce Locations中新建一个Hadoop Location。在这个View中,右键-->New Hadoop Location。在弹出的对话框中你需要配置Location name,如Hadoop,还有Map/Reduce
Master和DFS Master。这里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口。如:
Map/Reduce Master
DFS Master
配置完后退出。点击DFS Locations-->Hadoop如果能显示文件夹(2)说明配置正确,如果显示"拒绝连接",请检查你的配置。
如果这一步有问题,请看最后的“注意事项(1)”。
第三步:新建项目。
File-->New-->Other-->Map/Reduce Project
项目名可以随便取,如WordCount。
复制 hadoop安装目录/src/example/org/apache/hadoop/example/WordCount.java到刚才新建的项目下面。 或者参考:http://my.oschina.net/leejun2005/blog/83058
第四步:上传模拟数据文件夹。
为了运行程序,我们需要一个输入的文件夹,和输出的文件夹。
在本地新建word.txt
通过hadoop的命令在HDFS上创建/tmp/workcount目录,命令如下:bin/hadoop fs -mkdir /tmp/wordcount
通过copyFromLocal命令把本地的word.txt复制到HDFS上,命令如下:bin/hadoop fs -copyFromLocal /home/grid/word.txt/tmp/wordcount/word.txt
第五步:运行项目
1.在新建的项目Hadoop,点击WordCount.java,右键-->Run As-->Run Configurations
2.在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount
3.配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:
4.如果运行时报java.lang.OutOfMemoryError: Java heap space 配置VM arguments(在Program arguments下)
关于jvm内存分配理解,请参考:/article/2204178.html
5.点击Run,运行程序。
点击Run,运行程序,过段时间将运行完成,等运行结束后,查看运行结果,使用命令: bin/hadoop fs -ls /tmp/wordcount/out查看例子的输出结果,发现有两个文件夹和一个文件,使用命令查看part-r-00000文件,
bin/hadoop fs -cat /tmp/wordcount/out/part-r-00000可以查看运行结果。如果这一步有问题,请看最后的“注意事项(2)”。
截图如下:
注意事项:
(1)第2步eclipse可能会报无法连接的错:"Map/Reduce
location status updater". org/codehaus/jackson/map/JsonMappingException
经过查询,是由于hadoop的eclipse 插件里面缺少了一些包
按照这篇文章的说明 修改包后 重新运行成功
http://hi.baidu.com/wangyucao1989/blog/item/279cef87c4b37c34c75cc315.html
关于这个eclipse插件的问题,我已经打包好了,请从如下地址下载:
http://vdisk.weibo.com/s/xEJGZ
(2)第5步,可能会报错:
12/04/24 15:32:44 ERROR security.UserGroupInformation: PriviledgedActionException as:Administrator
cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging
to 0700
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
这是由于Windows下文件权限问题,在Linux下可以正常运行,不存在这样的问题。
参考:/article/7690943.html
解决方法是修改 F:\编程开发\hadoop\older\hadoop-0.20.203.0rc1\hadoop-0.20.203.0\src\core\org\apache\hadoop\fs\RawLocalFileSystem.java
,注释掉 checkReturnValue(有些粗暴,在Window下,可以不用检查)
然后重新编译、打包 hadoop-core-0.20.203.0.jar ,再次运行即可成功。关于这个重新编译hadoop的方法我上面的压缩包里也有教程文档,为了方便起见,我把已经编译打包好的jar也上传了,你直接替换即可。http://vdisk.weibo.com/s/xEJGZ
ok,到此你现在应该可以在windows7下远程调试你的hadoop代码了,如果没有成功,请仔细核对各个步骤、各个配置项,Good Luck~
REF:
基于Eclipse的Hadoop应用开发环境配置
/article/5115847.html (本文参考此文)
http://blog.sina.com.cn/s/blog_62186b4601012acs.html
cygwin中安装hadoop+eclipse编译源码并调试
http://dl.iteye.com/topics/download/04aca317-2d9f-3a95-90bf-ec569eb38bbc
windows上编译eclipse-plugin for hadoop-0.20.2-cdh3u3
/article/3757834.html
关于eclipse无法连接报错:
"Map/Reduce location status updater". org/codehaus/jackson/map/JsonMappingException
经过查询,是由于hadoop的eclipse 插件里面缺少了包
按照这篇文章的说明 修改包后 重新运行成功
http://hi.baidu.com/wangyucao1989/blog/item/279cef87c4b37c34c75cc315.html
如果已经安装了官方插件,发现没法连接的,需要先从eclipse中删除这个jar包.然后重启eclipse,(防止缓存)
然后再放入新jar包, 再重启eclipse.
windows下用eclipse连接linux中的hadoop,并执行mr
/article/3757815.html
注意:myeclipse有2点需要注意:
(1)Icon=/home/june/download/myeclipse-8.4.200-linux-gtk-x86/icon.xpm这里不能有空格、双引号等其它符号,空格转义即可。
(2)hadoop的jar包直接丢到 /home/june/Genuitec/MyEclipse 8.5 M2/dropins 即可,不需要找什么 plugins 目录。
Hadoop学习笔记(九):如何在windows上使用eclipse远程连接hadoop进行程序开发
/article/6469228.html
Hadoop作业提交多种方案具体流程详解
/article/4155466.html
Hadoop集群(第7期)_Eclipse开发环境设置
/article/4874022.html
首先说明几点:
远程调试对于本地hadoop版本、远程hadoop版本、eclipse版本都有极为严格的兼容性要求,我所采用的版本如下:
(1)本地hadoop:0.20.203(如果客户端和服务端hadoop版本不匹配可能会有协议错误)
(2)远程hadoop:0.20.203(因为各个版本的ipc协议都有变化)
下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-0.20.203.0/
(3)eclipse版本:indigo(这个也很重要,不匹配的话,可能eclipse压根就无法识别hadoop插件)
文件md5码以及下载地址:
9017a39354fa65375c6ee748963cf2ffeclipse-jee-indigo-SR2-win32.zip
http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2
(4)客户端操作系统:win7,远程操作系统:linux(ubuntu/centos等等,只要是linux均可)
上述搭配中如果有任意一项版本不匹配,均可能有异常发生,这都不在本文的讨论范畴,因此开始下文操作前,请务必核对你自己的版本。
第一步:先启动hadoop守护进程
具体参看:/article/5115845.html
第二步:在eclipse上安装hadoop插件
1.复制 hadoop安装目录/contrib/eclipse-plugin/hadoop-0.20.203.0-eclipse-plugin.jar 到 eclipse安装目录/plugins/ 下。
2.重启eclipse,配置hadoop installation directory。
如果安装插件成功,打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory。配置完成后退出。
3.配置Map/Reduce Locations。
在Window-->Show View中打开Map/Reduce Locations。
在Map/Reduce Locations中新建一个Hadoop Location。在这个View中,右键-->New Hadoop Location。在弹出的对话框中你需要配置Location name,如Hadoop,还有Map/Reduce
Master和DFS Master。这里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口。如:
Map/Reduce Master
1 | 192.168.1.101 9001 |
1 | 192.168.1.101 9000 |
配置完后退出。点击DFS Locations-->Hadoop如果能显示文件夹(2)说明配置正确,如果显示"拒绝连接",请检查你的配置。
如果这一步有问题,请看最后的“注意事项(1)”。
第三步:新建项目。
File-->New-->Other-->Map/Reduce Project
项目名可以随便取,如WordCount。
复制 hadoop安装目录/src/example/org/apache/hadoop/example/WordCount.java到刚才新建的项目下面。 或者参考:http://my.oschina.net/leejun2005/blog/83058
第四步:上传模拟数据文件夹。
为了运行程序,我们需要一个输入的文件夹,和输出的文件夹。
在本地新建word.txt
1 | java c++ python c |
2 | java c++ javascript |
3 | helloworld hadoop |
4 | mapreduce java hadoop hbase |
通过copyFromLocal命令把本地的word.txt复制到HDFS上,命令如下:bin/hadoop fs -copyFromLocal /home/grid/word.txt/tmp/wordcount/word.txt
第五步:运行项目
1.在新建的项目Hadoop,点击WordCount.java,右键-->Run As-->Run Configurations
2.在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount
3.配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:
1 | hdfs://centos1:9000/tmp/wordcount/word.txt hdfs://centos1:9000/tmp/wordcount/out |
1 | -Xms512m -Xmx1024m -XX:MaxPermSize=256m |
5.点击Run,运行程序。
点击Run,运行程序,过段时间将运行完成,等运行结束后,查看运行结果,使用命令: bin/hadoop fs -ls /tmp/wordcount/out查看例子的输出结果,发现有两个文件夹和一个文件,使用命令查看part-r-00000文件,
bin/hadoop fs -cat /tmp/wordcount/out/part-r-00000可以查看运行结果。如果这一步有问题,请看最后的“注意事项(2)”。
截图如下:
注意事项:
(1)第2步eclipse可能会报无法连接的错:"Map/Reduce
location status updater". org/codehaus/jackson/map/JsonMappingException
经过查询,是由于hadoop的eclipse 插件里面缺少了一些包
按照这篇文章的说明 修改包后 重新运行成功
http://hi.baidu.com/wangyucao1989/blog/item/279cef87c4b37c34c75cc315.html
关于这个eclipse插件的问题,我已经打包好了,请从如下地址下载:
http://vdisk.weibo.com/s/xEJGZ
(2)第5步,可能会报错:
12/04/24 15:32:44 ERROR security.UserGroupInformation: PriviledgedActionException as:Administrator
cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging
to 0700
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
这是由于Windows下文件权限问题,在Linux下可以正常运行,不存在这样的问题。
参考:/article/7690943.html
解决方法是修改 F:\编程开发\hadoop\older\hadoop-0.20.203.0rc1\hadoop-0.20.203.0\src\core\org\apache\hadoop\fs\RawLocalFileSystem.java
,注释掉 checkReturnValue(有些粗暴,在Window下,可以不用检查)
1 | private void checkReturnValue( boolean rv, Path p, FsPermission permission) |
2 | throws IOException { |
3 | /*if (!rv) { |
4 | throw new IOException("Failed to set permissions of path: " + p + " to " + |
5 | String.format("%04o", permission.toShort())); |
6 | }*/ |
7 | } |
ok,到此你现在应该可以在windows7下远程调试你的hadoop代码了,如果没有成功,请仔细核对各个步骤、各个配置项,Good Luck~
REF:
基于Eclipse的Hadoop应用开发环境配置
/article/5115847.html (本文参考此文)
http://blog.sina.com.cn/s/blog_62186b4601012acs.html
cygwin中安装hadoop+eclipse编译源码并调试
http://dl.iteye.com/topics/download/04aca317-2d9f-3a95-90bf-ec569eb38bbc
windows上编译eclipse-plugin for hadoop-0.20.2-cdh3u3
/article/3757834.html
关于eclipse无法连接报错:
"Map/Reduce location status updater". org/codehaus/jackson/map/JsonMappingException
经过查询,是由于hadoop的eclipse 插件里面缺少了包
按照这篇文章的说明 修改包后 重新运行成功
http://hi.baidu.com/wangyucao1989/blog/item/279cef87c4b37c34c75cc315.html
如果已经安装了官方插件,发现没法连接的,需要先从eclipse中删除这个jar包.然后重启eclipse,(防止缓存)
然后再放入新jar包, 再重启eclipse.
windows下用eclipse连接linux中的hadoop,并执行mr
/article/3757815.html
注意:myeclipse有2点需要注意:
01 | cat eclipse.desktop # chmod 777 注意权限 |
02 | [Desktop Entry] |
03 | Encoding=UTF-8 |
04 | Name=Eclipse |
05 | Comment=Eclipse IDE |
06 | Exec=/home/june/soft/eclipse/eclipse |
07 | Icon=/home/june/soft/eclipse/icon.xpm |
08 | Terminal= false |
09 | StartupNotify= true |
10 | Type=Application |
11 | Categories=Application;Development; |
(2)hadoop的jar包直接丢到 /home/june/Genuitec/MyEclipse 8.5 M2/dropins 即可,不需要找什么 plugins 目录。
Hadoop学习笔记(九):如何在windows上使用eclipse远程连接hadoop进行程序开发
/article/6469228.html
Hadoop作业提交多种方案具体流程详解
/article/4155466.html
Hadoop集群(第7期)_Eclipse开发环境设置
/article/4874022.html
相关文章推荐
- 实战 windows7 下 eclipse 远程调试 linux hadoop
- 小心得--实战windows7下eclipse远程调试linux hadoop
- 实战windows7下eclipse远程调试linux hadoop
- eclipse远程调试搭载在Linux上的Hadoop的步骤
- 实战 windows7 下 eclipse 远程调试 linux hadoop
- eclipse 远程调试hadoop代码 分类: Linux hadoop 2015-05-27 22:14 148人阅读 评论(0) 收藏
- 使用Windows上Eclipse远程调试Linux上的Hadoop
- eclipse 远程调试hadoop代码 分类: Linux hadoop 2015-05-27 22:14 149人阅读 评论(0) 收藏
- Linux下搭建Eclipse下Hadoop的开发环境以及远程调试
- 在Eclipse中远程调试Hadoop
- eclipse中集成hadoop插件以及远程调试hadoop的resourcemanager
- 搭建hadoop环境,在win7的eclipse上远程操作(Linux上)hadoop2.6.0出错的一些总结
- Windows eclipse远程调试Linux上的Java Web程序
- eclipse 远程图形化调试嵌入式linux c arm(beaglebone black),解决常见调试问题
- Eclipse进行远程调试linux 环境的tomcat配置 更新maven web项目
- Eclipse进行远程调试linux 环境的tomcat配置
- Windows Eclipse远程调试hadoop:ExitCodeException exitCode=-1073741515
- eclipse远程调试linux下tomcat
- [大数据入门-hadoop基础]eclipse远程调试出现Exception in thread "main" java.lang.UnsatisfiedLinkError
- eclipse远程调试linux下的项目