win7下eclipse配置hadoop开发环境

Windows下配置hadoop开发环境
1.开发环境操作系统:windows7 64
开发工具:eclipse3.3 64
Hadoop版本:0.20.2
2.安装hadoop开发插件将hadoop安装包hadoopcontribeclipse-pluginhadoop-0.20.2-eclipse-plugin.jar拷贝到eclipse的插件目录plugins下。
需要注意的是插件版本(及后面开发导入的所有jar包)与运行的hadoop一致,否则可能会出现EOFException异常。(hadoop0.20.2版本只能与eclipse3.3及以下版本可以正常使用
重启eclipse,打开windows->open perspective->other->map/reduce 可以看到map/reduce开发视图。

参数说明如下:
        Location name:任意
        map/reduce master:与mapred-site.xml里面mapred.job.tracker设置一致。
DFS master:与core-site.xml里fs.default.name设置一致。
User name: 服务器上运行hadoop服务的用户名。

        然后是打开“Advanced parameters”设置面板,修改相应参数。上面的参数填写以后,也会反映到这里相应的参数:
主要关注下面几个参数:
fs.defualt.name:                与core-site.xml里fs.default.name设置一致。
mapred.job.tracker:        与mapred-site.xml里面mapred.job.tracker设置一致。
dfs.replication:                与hdfs-site.xml里面的dfs.replication一致。
hadoop.tmp.dir:                与core-site.xml里hadoop.tmp.dir设置一致。(可以不配置)
hadoop.job.ugi:                填写hadoop集群的用户与组名(即启动hadoop使用的用户及其所在用户组)。(必须配置)

点击Finish后可以看到HDFS结构

3.运行程序3.1新建MR项目新建项目选择Map/Reduce Project

MR项目需要配置Hadoop安装路径

选择hadoop解压路径

点击OK完成配置。
输入项目名称点击Finish完成项目创建。
hadoop解压包中hadoop-0.20.2srcexamplesorgapachehadoopexamples路径下的WordCount.java复制到项目中。

修改包路径

配置java运行参数
        Run-->Open Run Dialog

Arguments下增加程序的输入输出地址

上传输入文件
input文件夹中上传测试使用文件,内容如下:
The number of milliseconds before a task will be
terminated if it neither reads an input, writes an output, nor
updates its status string.
Run as-->Run On Hadoop
将得到以下类似输出

13/05/25 10:20:25 WARN conf.Configuration: DEPRECATED: hadoop-site.xml found in the classpath. Usage of hadoop-site.xml is deprecated. Instead use core-site.xml, mapred-site.xml and hdfs-site.xml to override properties of core-default.xml, mapred-default.xml and hdfs-default.xml respectively
13/05/25 10:20:26 INFO input.FileInputFormat: Total input paths to process : 1
13/05/25 10:20:27 INFO mapred.JobClient: Running job: job_201305250948_0006
13/05/25 10:20:28 INFO mapred.JobClient:  map 0% reduce 0%
13/05/25 10:20:44 INFO mapred.JobClient:  map 100% reduce 0%
13/05/25 10:20:56 INFO mapred.JobClient:  map 100% reduce 100%
13/05/25 10:20:58 INFO mapred.JobClient: Job complete: job_201305250948_0006
13/05/25 10:20:58 INFO mapred.JobClient: Counters: 17
13/05/25 10:20:58 INFO mapred.JobClient:   Job Counters 
13/05/25 10:20:58 INFO mapred.JobClient:     Launched reduce tasks=1
13/05/25 10:20:58 INFO mapred.JobClient:     Launched map tasks=1
13/05/25 10:20:58 INFO mapred.JobClient:     Data-local map tasks=1
13/05/25 10:20:58 INFO mapred.JobClient:   FileSystemCounters
13/05/25 10:20:58 INFO mapred.JobClient:     FILE_BYTES_READ=280
13/05/25 10:20:58 INFO mapred.JobClient:     HDFS_BYTES_READ=140
13/05/25 10:20:58 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=592
13/05/25 10:20:58 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=182
13/05/25 10:20:58 INFO mapred.JobClient:   Map-Reduce Framework
13/05/25 10:20:58 INFO mapred.JobClient:     Reduce input groups=23
13/05/25 10:20:58 INFO mapred.JobClient:     Combine output records=23
13/05/25 10:20:58 INFO mapred.JobClient:     Map input records=3
13/05/25 10:20:58 INFO mapred.JobClient:     Reduce shuffle bytes=280
13/05/25 10:20:58 INFO mapred.JobClient:     Reduce output records=23
13/05/25 10:20:58 INFO mapred.JobClient:     Spilled Records=46
13/05/25 10:20:58 INFO mapred.JobClient:     Map output bytes=235
13/05/25 10:20:58 INFO mapred.JobClient:     Combine input records=24
13/05/25 10:20:58 INFO mapred.JobClient:     Map output records=24

4问题4.1DFS local无法显示文件

解决方法:
解决方法是:

1.在“Advanced parameters”设置面板,设置hadoop.job.ugi参数,将hadoop用户加上去。

2.conf.set("hadoop.job.ugi", "hadoop,hadoop"); //设置hadoop server用户名和密码,可以参考这个博客:

[url=http://jimey.com/2009/03/26/wi ... .html]http://jimey.com/2009/03/26/wi ... .html[/url]

我的做法是在服务器端配置,具体是在conf/mapred-site.xml中添加下面的配置:

   hadoop.job.ugi
   root,abc123456
   hadoop user access password


   mapred.system.dir
   /home/hadoop/hadoop-0.20.0/tmp/mapred/system
   

4.2 运行时报java.lang.IllegalArgumentException: XXX... not found.这是因为导入的hadoop lib中缺少相应类,暂时不明白这个类是做什么的,只需要删除
Advanced parameters下Io.comperssion.codecs 值中的对应类即可。

0 个评论

要回复文章请先登录注册