Windws环境下eclipse中开发MapReduce程序详细步骤

Step1: 下载Hadoop

利用Xftp软件连接(一台主机)Linux文件目录,将Linux集群中配置的hadoop-2.8.5文件夹下载到windows本地目录(放到一个目录),下面的讲解是以F盘为例。

Step2: 工具配置

下载windows环境下的hadoop工具,hadoop.dll和winutils.exe

链接:https://pan.baidu.com/s/1MnOs40WF0n1umkd0El173A

提取码:j1x2

将下载的hadoop.dll和winutils.exe工具放到F:\hadoop-2.8.5\bin目录下,如下图。

Windws环境下eclipse中开发MapReduce程序详细步骤_第1张图片

将下载的hadoop-eclipse-plugins插件包选择hadoop对应的版本放到eclipse的安装目录plugins下,如下图。

Windws环境下eclipse中开发MapReduce程序详细步骤_第2张图片

然后用文本编辑器打开F:\hadoop-2.8.5\etc\hadoop\hadoop-env.cmd文件,修改如下:

Windws环境下eclipse中开发MapReduce程序详细步骤_第3张图片

为什么是这样

1、DOS系统文件夹名,文件名简写的原则是:长于8个字符的文件名和文件夹名,都被简化成前面6个有效字符,后面~1,有重名的就 ~2,~3。

2、并且Program Files这个文件夹名有空格,在dos中会出错,根据原则更为Progra~1代替。

解决方案(选一种即可)

1.使用引号:set JAVA_HOME=”C:\Program Files\Java\jdk1.8.0_171”;

2.使用~1: set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_171;(推荐)

Step3: 环境配置

1.先决条件是确定Java环境变量配置是否成功(输入java、javac命令是否有提示信息)。

2.配置JAVA_HOME和HADOOP_HOME环境变量(这里我都是使用的绝对路径,也可以用%JAVA_HOME%\jdk……和%HADOOP_HOME%\bin等)

3.并将Java和Hadoop的bin目录配置到Path环境变量中(如果要在cmd    下执行命令的话),如下图。

4.Hadoop对于Windows用户人性化了,可以用cmd(也可以进行复杂的cygwin的配置)

Windws环境下eclipse中开发MapReduce程序详细步骤_第4张图片

5.最后hadoop环境配置成功后:win+R打开cmd界面:输入hadoop version

Windws环境下eclipse中开发MapReduce程序详细步骤_第5张图片

6.出现hadoop版本说明hadoop环境配置成功。

Step4: eclipse配置MapReduce

这一步,打开eclipse配置hadoop。Windows -> Preferences -> Hadoop Map/Reduce,如下,指定Hadoop的目录。

Windws环境下eclipse中开发MapReduce程序详细步骤_第6张图片

打开MapReduce视图,点击右上角的Quick Access图标,如下图操作。

Windws环境下eclipse中开发MapReduce程序详细步骤_第7张图片

打开后会出现,Map/Reduce的控制台,首次进入是空白,然后点击鼠标右键New Hadoop Location。如下图:

Windws环境下eclipse中开发MapReduce程序详细步骤_第8张图片

Windws环境下eclipse中开发MapReduce程序详细步骤_第9张图片

 

以上配置成功。

 

Step5: 开发MapReduce程序

1.有了hadoop-eclipse-plugins-2.x.x.jar插件后,可以快速新建MapReduce Project项目File -> Project -> 然后搜索MapReduce即可。

Windws环境下eclipse中开发MapReduce程序详细步骤_第10张图片

新建成功后,会自动将MapReduce所需Jar包导入进来,可以看到有Referenced Library,就不需要手动导入Jar包了。

2.在src下右键new package,新建一个空包,鼠标左键点中新建的空包,File -> New -> Mapper,就进入如下图:

Windws环境下eclipse中开发MapReduce程序详细步骤_第11张图片

最后,创建Reducer类,同理。

3.创建MapReduce主入口

public static void main(String[] args) throws Exception {

         Configuration conf = new Configuration();

         //JobConf job = new JobConf(conf);

         //job.setJobName("NBCReduce");

         Job job = new Job(conf,"reduce");

        

         job.setJarByClass(NBCPredictResult.class);

         job.setMapperClass(NBCMapper.class);

         //指定结合类,提高计算效率

         job.setCombinerClass(NBCReducer.class);

         job.setReducerClass(NBCReducer.class);

         job.setOutputKeyClass(Text.class);

         job.setOutputValueClass(IntWritable.class);

        

         FileInputFormat.addInputPath(job, new Path(inputPath));

         FileOutputFormat.setOutputPath(job, new Path(outPutPath));

        

         System.exit(job.waitForCompletion(true) ? 0 : 1);

        

}

另外,如果你想手动导入Jar包也可以的。就以下面的步骤操作即可:

4.进入hadoop目录,F:\hadoop-2.8.5\share\hadoop,如下图,进入图中勾选的文件夹下的jar包,其中勾选的文件夹下还有lib文件夹,lib中有jar(不需要导入),点击项目右键找到Configure Build Path然后将选中的Jar包丢进Build Path即可。

Windws环境下eclipse中开发MapReduce程序详细步骤_第12张图片

写Mapper类:新建一个类,然后继承Mapper类(所导入的jar包中),重写Mapper类中的map方法。

写Reducer类:新建一个类,然后继承Reducer类(同上),重写Reducer类中的reduce方法。

写main函数:指定Mapper、Reducer类;输入、输出格式;输入、输出路径。同3中的main函数。

 

运行:运行在hadoop上,将main()函数Run As -> Run On Hadoop

 

总结,整理不易,希望以上对读者有帮助。

你可能感兴趣的:(Hadoop)