win7下部署eclipse访问Linux下hadoop

准备工作:linux 下hadoop部署成功

win7上准备工作:

eclipse下载:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/kepler/SR2/eclipse-standard-kepler-SR2-win32-x86_64.zip

hadoop下载:http://archive.apache.org/dist/hadoop/core/hadoop-0.20.203.0/

hadoop插件下载:我的资源已上传 

hadoop-eclipse-plugin-1.0.4.jar

第一步:
安装eclipse,将hadoop-eclipse-plugin-1.0.4.jar拷贝到eclipse安装目录下的E:\baidu download\eclipse-standard-kepler-SR1-win32-x86_64\eclipse\plugins
重启eclipse,然后点击window->open perspective->other 然后出现Map/Reduce小象

第二步:window->preference
第三步:window->show views->other 

就会在控制台那个地方出现了
右击:新建一个新的hadoop位置

LocationName

这个不用在意,就是对这个MapReduce的标示,只要能帮你记忆即可

Map/ReduceMaster部分相关定义:

Host:搭建的集群中JobTracker所在的机器的IP地址

portJobTracker的端口

两个参数就是 mapred-site.xmlmapred.job.trackerip和端口

DFSMaster部分:

Host:集群搭建中Namenode所在机器IP

Port:就是namenode的端口

这两个参数是在 core-site.xmlfs.default.name里面的ip和端口

User Name

就是搭建Hadoop集群是所用的用户名,我这里用的是hduser

填写完以上信息以后,关闭Eclipse,然后重新启动。也需要启动虚拟机里的hadoopbin/start-all.

为什么这么做呢?因为如果不重新启动,Advanced Parameters里,有些重要的选项不能显示,重启后,来配制Advanced Parameters信息:

接下来设置advancedparameter,里面主要注意的是 hadoop.tmp.dir(要与配置文件中的临时目录一致,此配置在core-site.xml里面)

dfs.replication:

这个这里默认是3,但是要根据你的Datanode的个数来定,如果你仅有2datanode,那么就写2,如果只有一个,就写1,大于或者等于3个,写3,我们是伪分布式写1

hadoop.tmp.dir:

这个要跟上节建立的Hadoop集群配置中core-site.xml中的hadoop.tmp.dir设置一样

这些都配置好了之后重启eclipse。在左边会出现



说明配置正确,如果出现一个文件夹也可能是正确的。因为可能这时候还没有输入文件,等到将本地文件上传到hdfs端之后,才会出现user的文件夹。

一、  运行第一个程序

projectExplorer中右键->new ->mapreduce project然后点击 configure Hadoopinstall directory浏览到 hadoop0.20.2文件夹

,这样project就会自动把hadoop下的jar包导入到工程,然后把hadoop自带的wordcount源码复制到project src目录下(注意包名要一致)然后右键 Run As ->Run configuration,弹出配置窗口单击左边的javap Application 选择WordCount程序,然后在右侧的ArgumentsProgram arguments 中配置运行参数(hdfs://10.22.73.20:9000/user/grid/input  hdfs://10.22.73.20:9000/user/grid/output分别对应程序输入目录和输出目录)点击apply,然后再在wordcount上右键 ->run onhadoop 程序就能运行并在eclipse中打印日志信息了。

如下图:


但此时可能会出现类似异常信息:

12/04/24 15:32:44WARN util.NativeCodeLoader: Unable to load native-hadoop library for yourplatform... using builtin-java classes where applicable
12/04/24 15:32:44 ERROR security.UserGroupInformation:PriviledgedActionException as:Administrator cause:java.io.IOException: Failedto set permissions of path:\tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to0700
Exception in thread "main" java.io.IOException: Failed to setpermissions of path:\tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to0700
    atorg.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
    atorg.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:655)
    atorg.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
    atorg.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
    atorg.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
    atorg.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116)
    atorg.apache.hadoop.mapred.JobClient$2.run(JobClient.java:856)
    atorg.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
    at java.security.AccessController.doPrivileged(NativeMethod)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    atorg.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
    atorg.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:500)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
    atcom.hadoop.learn.test.WordCountTest.main(WordCountTest.java:85)

这是由于Windows下文件权限问题,在Linux下可以正常运行,不存在这样的问题。

参考:http://blog.csdn.net/keda8997110/article/details/8533633

解决方法是修改 \hadoop-0.20.203.0rc1\hadoop-0.20.203.0\src\core\org \apache\hadoop\fs\RawLocalFileSystem.java ,注释掉 checkReturnValue(有些粗暴,在Window下,可以不用检查)

1private 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  }

然后重新编译、打包 hadoop-core-0.20.203.0.jar ,再次运行即可成功。关于这个重新编译hadoop的方法我上面的压缩包里也有教程文档,为了方便起见,我把已经编译打包好的jar也上传了,你直接替换即可。我上传的资源。

ok,到此你现在应该可以在windows7下远程调试你的hadoop代码了,如果没有成功,请仔细核对各个步骤、各个配置项,Good Luck~


http://www.lupaworld.com/article-223719-1.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值