window10下的eclipse用java连接hadoop执行mapreduce任务

window10下的eclipse用java连接hadoop执行mapreduce任务

 一.准备工作

1.eclipse连接hadoop的插件,需要版本匹配,这有几个常用的 2 版本的插件

hadoop2x-eclipse-plugin-master

 密码:feg1

2.hadoop-common-2.2.0-bin-master,这个跟版本无关,直接用就可以。

hadoop-common-2.2.0-bin-master

密码:nr3h    

 

二.环境搭建

1.将 hadoop2x-eclipse-plugin-master 中对应的插件放到 eclipse 目录中的 plugin 下。

 

 

2.放入插件后重启 eclipse 生效,点击 windows->preferences->搜索hadoop,搜索出来说明成功。右边有hadoop installation directory,点击browser,选择hadoop的解压路径。点击Apply -> OK(我的hadoop是配置好的再从linux 中复制出来的,配置文件齐全,不知道没有配置的hadoop行不行。。。)

 

3.配置这个插件,点击 windows -> show view -> other 

 

4.搜索 map,会出现如下图所示。

 

5.双击小黄象,在控制台会看到如下图

 

6.右击,选择第一个小蓝象。

 

7.配置连接信息

 

8.要注意的是两个端口号(hadoop2x)

port 50020是 mapred-site.xml 中配置的端口号,默认为9001

port 9000 是 core-site.xml 中配置的端口号,默认为9000

 

9.点击 finish 完成配置,会显示如下图,表示配置成功。

 

10.测试是否连接上 HDFS,点击右上角的 javaEE,会出现 DFS Locations

 

11.点击 DFS Locations,如果出现 HDFS 中的目录则连接成功。

 

12.配置HADOOP_HOME 和 path

 

 

13.配置 vinutils

将前面下载的 hadoop-common-2.2.0-bin-master 解压,复制 bin 里面的所有东西到本地的{HADOOP_HOME}/bin 下

 

14.把 hadoop-common-2.2.0-bin-master 下的bin的 hadoop.dll 放到 C:\Windows\System32 下,重启电脑

 

三.运行程序

1.伪造一份测试数据,并上传到HDFS中相应目录,在此省略。。

 

2.接下来运行 mapreduce 程序

 

 
  1. package test;

  2.  
  3. import java.io.IOException;

  4. import java.util.StringTokenizer;

  5. import org.apache.hadoop.conf.Configuration;

  6. import org.apache.hadoop.fs.Path;

  7. import org.apache.hadoop.io.IntWritable;

  8. import org.apache.hadoop.io.Text;

  9. import org.apache.hadoop.mapreduce.Job;

  10. import org.apache.hadoop.mapreduce.Mapper;

  11. import org.apache.hadoop.mapreduce.Reducer;

  12. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

  13. import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

  14. import org.apache.hadoop.util.GenericOptionsParser;

  15.  
  16. public class Wordcount {

  17. public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {

  18. private final static IntWritable one = new IntWritable(1);

  19. private Text word = new Text();

  20.  
  21. public void map(Object key, Text value, Context context) throws IOException, InterruptedException {

  22. StringTokenizer itr = new StringTokenizer(value.toString());

  23. while (itr.hasMoreTokens()) {

  24. word.set(itr.nextToken());

  25. context.write(word, one);

  26. System.out.println("hello");

  27. }

  28. }

  29. }

  30.  
  31. public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {

  32. private IntWritable result = new IntWritable();

  33.  
  34. public void reduce(Text key, Iterable<IntWritable> values, Context context)

  35. throws IOException, InterruptedException {

  36. int sum = 0;

  37. for (IntWritable val : values) {

  38. sum += val.get();

  39. }

  40. result.set(sum);

  41. context.write(key, result);

  42. }

  43. }

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

  46. Configuration conf = new Configuration();

  47. //System.setProperty("hadoop.home.dir", "F:\\课件\\hadoop\\hadoop-2.5.2");

  48. Job job = new Job(conf, "word count");

  49.  
  50. job.setJarByClass(Wordcount.class);

  51.  
  52. job.setMapperClass(TokenizerMapper.class);

  53.  
  54. job.setCombinerClass(IntSumReducer.class);

  55.  
  56. job.setReducerClass(IntSumReducer.class);

  57. job.setOutputKeyClass(Text.class);

  58. job.setOutputValueClass(IntWritable.class);

  59. FileInputFormat.addInputPath(job, new Path(args[0]));

  60. FileOutputFormat.setOutputPath(job, new Path(args[1]));

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

  62.  
  63. }

  64.  
  65. }

 

3.将{‘HADOOP_HOME’}/etc/hadoop/log4j.properties 复制到该项目的 src 下面

 

右击 run as -> run configuration 

 

4.配置路径,这个是HDFS 中的输入和输出路径

对应 new Path(args[0]) 和new Path(args[1])

 

5.在 console 控制台会出现类似命令行运行成功的标志表示 job 运行成功

 

6.结果可以在左侧看,右击蓝色小象,点击 Reconnect 

 

注意问题:

java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray

如果 出现上面错误 。需要重新下载 

https://github.com/steveloughran/winutils/tree/master/hadoop-2.6.4/bin

2.4 前面版本和2.4 后面版本复制到 bin 和widows32目录下的文件不一样。

2、在hadoop中运行

hadoop jar /usr/local/hadoop_demo.jar test.mapreduce.WordCount /bbb.txt /output

hadoop jar 【jar包文件】 【jar包中main函数所在的类(包括包名)】 【需统计的文件】 【输出路径】 

将第三方包和项目打包到一块

step1:选中要导出的项目,右键选择Export

step2:选择java/Runable JAR file

step3:选择main主程序,选择第三方包打包的形式,推荐选择第二种

 

step4:打开cmd,进入jar包所在的位置,执行 java -jar hzf.jar

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Eclipse连接 Hadoop,需要进行以下步骤: 1. 安装 HadoopEclipse 插件 HadoopEclipse 插件叫做 Eclipse Plugin for Hadoop (EPH),可以从 Hadoop 官方网站或 GitHub 上下载。 下载地址: - 官方网站:http://hadoop.apache.org/releases.html#Download - GitHub:https://github.com/winghc/hadoop2x-eclipse-plugin 2. 安装 Eclipse 如果还没有安装 Eclipse,需要先下载并安装。 下载地址:https://www.eclipse.org/downloads/ 3. 将 EPH 安装到 Eclipse 将 EPH 解压后,将里面的 hadoop-eclipse-plugin-2.7.3.jar 文件复制到 Eclipse 的 plugins 目录下。 例如,如果 Eclipse 安装在 D:\eclipse 目录下,那么将 hadoop-eclipse-plugin-2.7.3.jar 复制到 D:\eclipse\plugins 目录下。 4. 配置 Hadoop连接信息 打开 Eclipse,依次选择 Window -> Preferences -> Hadoop,然后配置 Hadoop连接信息,包括 Hadoop 安装路径、Hadoop 配置文件路径、HadoopMapReduce Job Tracker 和 HDFS Name Node 的连接信息。 5. 创建 Hadoop 项目 在 Eclipse 中创建一个新的 Java 项目,然后右键单击项目,选择 New -> MapReduce Job。根据需要填写 MapReduce Job 的名称、输入路径、输出路径、Mapper、Reducer 等信息。 6. 运行 MapReduce Job 在 Eclipse 中右键单击 MapReduce Job 类,选择 Run As -> Run on HadoopEclipse 将会自动将 MapReduce Job 打包成 JAR 文件,并提交给 Hadoop 集群运行。可以在 Eclipse 的 Console 视图中查看 MapReduce Job 的运行日志。 以上就是 Eclipse 连接 Hadoop 的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值