利用Xftp软件连接(一台主机)Linux文件目录,将Linux集群中配置的hadoop-2.8.5文件夹下载到windows本地目录(放到一个目录),下面的讲解是以F盘为例。
下载windows环境下的hadoop工具,hadoop.dll和winutils.exe
链接:https://pan.baidu.com/s/1MnOs40WF0n1umkd0El173A
提取码:j1x2
将下载的hadoop.dll和winutils.exe工具放到F:\hadoop-2.8.5\bin目录下,如下图。
将下载的hadoop-eclipse-plugins插件包选择hadoop对应的版本放到eclipse的安装目录plugins下,如下图。
然后用文本编辑器打开F:\hadoop-2.8.5\etc\hadoop\hadoop-env.cmd文件,修改如下:
为什么是这样:
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;(推荐)
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的配置)
5.最后hadoop环境配置成功后:win+R打开cmd界面:输入hadoop version
6.出现hadoop版本说明hadoop环境配置成功。
这一步,打开eclipse配置hadoop。Windows -> Preferences -> Hadoop Map/Reduce,如下,指定Hadoop的目录。
打开MapReduce视图,点击右上角的Quick Access图标,如下图操作。
打开后会出现,Map/Reduce的控制台,首次进入是空白,然后点击鼠标右键New Hadoop Location。如下图:
以上配置成功。
1.有了hadoop-eclipse-plugins-2.x.x.jar插件后,可以快速新建MapReduce Project项目,File -> Project -> 然后搜索MapReduce即可。
新建成功后,会自动将MapReduce所需Jar包导入进来,可以看到有Referenced Library,就不需要手动导入Jar包了。
2.在src下右键new package,新建一个空包,鼠标左键点中新建的空包,File -> New -> Mapper,就进入如下图:
最后,创建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即可。
写Mapper类:新建一个类,然后继承Mapper类(所导入的jar包中),重写Mapper类中的map方法。
写Reducer类:新建一个类,然后继承Reducer类(同上),重写Reducer类中的reduce方法。
写main函数:指定Mapper、Reducer类;输入、输出格式;输入、输出路径。同3中的main函数。
总结,整理不易,希望以上对读者有帮助。