Eclipse环境搭建并且运行wordcount程序

news2025/2/28 5:17:06

 一、安装Hadoop插件

  1. 所需环境

      hadoop2.0伪分布式环境平台正常运行

    所需压缩包:eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz
          在Linux环境下运行的eclipse软件压缩包,解压后文件名为eclipse
          hadoop2x-eclipse-plugin-master.zip
          在eclipse中需要安装的Hadoop插件,解压后文件名为hadoop2x-eclipse-plugin-master

    如图所示,将所有的压缩包放在同一个文件夹下并解压。

      

  2.编译jar包

      编译hadoop2x-eclipse-plugin-master的plugin 的插件源码,需要先安装ant工具

      

      接着输入命令(注意ant命令在什么路径下使用,具体路径在下一张截图中,不然这个命令会用不了):

ant jar -Dversion=2.6.0 -Declipse.home= '/home/xiaow/hadoop2.0/eclipse' # 刚才放进去的eclipse软件包的路径 -Dversion=2.6.0 hadoop的版本号
              -Dhadoop.home= '/home/xiaow/hadoop2.0/hadoop-2.6.0' # hadoop安装文件的路径

      

      等待一小会时间就好了
      编译成功后,找到放在 /home/xiaow/ hadoop2.0/hadoop2x-eclipse-pluginmaster/build/contrib/eclipse-plugin下, 名为hadoop-eclipse-plugin-2.6.0.jar的jar包, 并将其拷贝到/hadoop2.0/eclipse/plugins下

      输入命令:

cp -r /home/xiaow/hadoop2.0/hadoop2x-eclipse-plugin-master/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.6.0.jar /home/xiaow/hadoop2.0/eclipse/plugins/

      

      

      

二、Eclipse配置

    接下来打开eclipse软件

    

    一定要出现这个图标,没有出现的话前面步骤可能错了,或者重新启动几次Eclipse

    

    然后按照下面的截图操作:

    

    

    如此,Eclipse环境搭建完成。

 三、wordcount程序

     建工程:

    

    

    

    

    

    

    

    输入如下代码:

package wordcount;

import java.io.IOException;  
import java.util.StringTokenizer;  
import org.apache.hadoop.conf.Configuration;  
import org.apache.hadoop.fs.Path;  
import org.apache.hadoop.io.IntWritable;  
import org.apache.hadoop.io.LongWritable;  
import org.apache.hadoop.io.Text;  
import org.apache.hadoop.mapreduce.Job;  
import org.apache.hadoop.mapreduce.Mapper;  
import org.apache.hadoop.mapreduce.Reducer;  
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;  
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;  
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;  
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;  
import org.apache.hadoop.mapreduce.lib.reduce.IntSumReducer;
import org.apache.hadoop.util.GenericOptionsParser;
 
public class wordcount {  
   
    // 自定义的mapper,继承org.apache.hadoop.mapreduce.Mapper
    public static class WordCountMap  extends Mapper<longwritable, text,="" intwritable=""> {  
 
        private final IntWritable one =  new IntWritable( 1 );  
        private Text word =  new Text();  
       
        //  Mapper<longwritable, text,="" longwritable="">.Context context
        public void map(LongWritable key, Text value, Context context)    throws IOException, InterruptedException {  
            String line = value.toString();  
            System.out.println(line);
            // split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回,这里按照“\t”来分割text文件中字符,即一个制表符
            // ,这就是为什么我在文本中用了空格分割,导致最后的结果有很大的出入
            StringTokenizer token =  new StringTokenizer(line);  
            while (token.hasMoreTokens()) {  
                word.set(token.nextToken());  
                context.write(word, one);  
            }  
        }  
    }  
 
    // 自定义的reducer,继承org.apache.hadoop.mapreduce.Reducer
    public static class WordCountReduce  extends Reducer<text, intwritable,="" text,="" intwritable=""> {  
 
        // Reducer<text, longwritable,="" text,="" longwritable="">.Context context
        public void reduce(Text key, Iterable values, Context context)  throws IOException, InterruptedException {  
            System.out.println(key);
            System.out.println(values);
            int sum =  0 ;  
            for (IntWritable val : values) {  
                sum += val.get();  
            }  
            context.write(key,  new IntWritable(sum));  
        }  
    }  
 
    //  客户端代码,写完交给ResourceManager框架去执行
    public static void main(String[] args)  throws Exception {  
        Configuration conf =  new Configuration();  
        Job job =  new Job(conf, "word count" ); 
       
        //  打成jar执行
        job.setJarByClass(wordcount. class );     
       
        //  数据在哪里?
        FileInputFormat.addInputPath(job,  new Path(args[ 0 ])); 
       
        //  使用哪个mapper处理输入的数据?
        job.setMapperClass(WordCountMap. class ); 
        //  map输出的数据类型是什么?
        //job.setMapOutputKeyClass(Text.class);
        //job.setMapOutputValueClass(LongWritable.class);
       
        job.setCombinerClass(IntSumReducer. class );
       
        //  使用哪个reducer处理输入的数据
        job.setReducerClass(WordCountReduce. class ); 
       
        //  reduce输出的数据类型是什么?
        job.setOutputKeyClass(Text. class );  
        job.setOutputValueClass(IntWritable. class );  
  
 
//        job.setInputFormatClass(TextInputFormat.class);  
//        job.setOutputFormatClass(TextOutputFormat.class);  
  
        //  数据输出到哪里?
        FileOutputFormat.setOutputPath(job,  new Path(args[ 1 ]));  
 
        //  交给yarn去执行,直到执行结束才退出本程序
        job.waitForCompletion( true );  
       
        /*
        String[] otherArgs = new GenericOptionsParser(conf,args).getRemainingArgs();
        if(otherArgs.length<2){
            System.out.println("Usage:wordcount  [...] ");
            System.exit(2);
        }
        for(int i=0;i</text,></text,></longwritable,></longwritable,>

    

    

    

    

 

    将准备到的文档导入进去

    

    

    目录结构如下:

    

    运行mapreduce程序

    

    

    

    

    

    OK,搞定收工!!!

    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Mysql】事物处理(TransAction Processing)

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶最近在复习mysql&#xff0c;复习到了mysql事物处理&#xff08;TransAction&#xff09;&#xff0c;帮自己回顾一下&#xff0c;如果你也想了解什么是mysql的事物处理&#xff0c;希望这篇…

【SQL Server】无需公网IP,就可以远程连接SQL Server数据库

目录 1.前言 2.本地安装和设置SQL Server 2.1 SQL Server下载 2.2 SQL Server本地连接测试 2.3 Cpolar内网穿透的下载和安装 2.3 Cpolar内网穿透的注册 3.本地网页发布 3.1 Cpolar云端设置 3.2 Cpolar本地设置 4.公网访问测试 5.结语 1.前言 数据库的重要性相信大家…

基于html+css的自适应展示3

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

MySQL--库的操作--校验规则对于数据库的影响--0409

目录 1.库的基础操作 查看数据库 创建数据库 删除数据库 查看建库语句 修改数据库 2.字符集和字符集校验规则 2.1 查看系统默认字符集以及校验规则 2.2 使用特定的字符集创建数据库 2.3 不同校验规则对数据库的影响 2.3.1 大小写验证 2.3.2 排序验证 3.备份和恢复 3.1…

开启单细胞及空间组学行业发展黄金时代!首届国际单细胞及空间组学大会在穗闭幕

2023年4月16日&#xff0c;首届TICSSO国际单细胞及空间组学大会圆满闭幕&#xff0c;本次大会吸引了2000余位来自产、学、研、资、医、政、媒等业界人士齐聚羊城&#xff0c;注册总人数5398人&#xff0c;网络播放总量达548245人次&#xff0c;网络观看覆盖美国、德国、日本、澳…

Vue语法糖<script setup>详解,用最快的方式让你看懂和<script>的区别

前言 Vue3出来已经3年了&#xff0c;但是前两天在百度上搜索有关setup语法糖的细节时&#xff0c;发现很多博客关于语法糖细节部分&#xff0c;还是讲的很粗糙&#xff0c;因此决定自己来写一篇入门的博客&#xff0c;方便大家快速上手。 <script setup>简介 它是Vue3…

关于ASP.NET MVC与.NET CORE 的区别--小结

简述关于ASP.NET MVC与.NET CORE的区别 1、关于ASP.NET 关于MVC 刚开始接触这个技术的时候我经常不理解他们的名字&#xff0c;我相信许多学ASP.NET开发人员开始接触MVC应该也和我一样产生很多为什么&#xff0c;也会误认为认为MVC与ASP.NET完全没有关系&#xff0c;是一个全新…

基于ssm+vue的学生实习过程管理系统

基于ssmvue的学生实习过程管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍…

Kotlin与H5通信的实现方式

Kotlin与H5通信1、H5中主动的调用Kotlin中的程序1编写后端程序并且在服务器上运行2准备好AndroidStudio的界面布局中的WebView3编写工具类用来处理H5调用逻辑4通过addJavascriptInterface来构建桥梁5结果展示2在Kotlin中调用H5的程序1在H5中编写方法&#xff0c;来处理Kotlin的…

【C】Operator / Expression

系列连载 【python / C / C】 参考 《C语言程序设计&#xff08;第四版&#xff09;谭浩强》【C语言】C语言视频教程《郝斌 C 语言自学教程》 文章目录1 运算符1.1 基本的算术运算符2 表达式1 运算符 1.1 基本的算术运算符 注意&#xff0c; 是右结合的 “” 具有左结合性&…

C++ 面向对象、多继承

// Student.hclass Student { private: // 私有的&#xff0c;外界不能访问char *name;int age;public:void setAge(int age);void setName(char* name);int getAge();char* getName();// 空参构造函数Student(){}// 一参构造函数Student(char* name) : Student(name,80) {// 调…

干翻Hadoop系列:MapReduce详解

第一章&#xff1a;MapReduce原理 数据存储在分布式文件系统中HDFS里边&#xff0c;通过使用Hadoop资源管理系统YARN&#xff0c;Hadoop可以将MapReduce计算&#xff0c;转移到有存储部分的数据的各台机器上。 一&#xff1a;概念和原理 1&#xff1a;MapReduce作业 MapRed…

【机器学习】P16 激活函数 Activation Function

对于激活函数&#xff08;Activation Function&#xff09;&#xff0c;存在两个问题&#xff1a; 为什么要用激活函数&#xff1f;如何选择用哪种激活函数&#xff1f;如何使用激活函数&#xff1f; 本博文将围绕这两个问题&#xff0c;首先介绍激活函数的作用&#xff0c;从…

2023腾讯云轻量应用服务器性能评测

腾讯云轻量应用服务器性能如何&#xff1f;CPU型号主频、内存、公网带宽和系统盘存储多维对比&#xff0c;轻量应用服务器会不会比云服务器CVM性能差&#xff1f;相对于CVM云服务器轻量服务器更适合轻量级的应用&#xff0c;轻量服务适合中小企或个人开发者用于搭建We网站b应用…

利用Python生成和识读二维码(QR Code)和微二维码(Micro QR Code)

目录一、环境准备二、二维码&#xff08;QR Code&#xff09;生成和读取2.1 生成二维码2.2 读取二维码三、微二维码&#xff08;Micro QR Code&#xff09;生成和读取3.1 生成微二维码3.2 读取微二维码之前写的一篇 博客采用了segno库来做微二维码的生成&#xff0c;该库可以方…

AD9689 input clock not detect

在项目调试中&#xff0c;遇到的问题&#xff0c;在ADI论坛上发帖咨询&#xff0c;转发到这里。网址如下&#xff1a; AD9689 input clock not detect - Q&A - High-Speed ADCs - EngineerZone (analog.com) Our FPGA board has two AD9689&#xff0c;one works ok, but…

使用Marshaller 将Java对象转化为XML格式和字符串转为xml

使用Marshaller 将Java对象转化为XML格式 对象转xml内容 ①工具类 public static String convertObjectToXml(Object obj) throws Exception {StringWriter writer new StringWriter();// 创建 JAXBContext 和 MarshallerJAXBContext context JAXBContext.newInstance(obj.ge…

MySQL客观题

MySQL客观题 在数据库的三级模式结构中&#xff0c;描述数据库中全体数据的全局逻辑结构和特性的是&#xff08; A &#xff09; A 模式 B 内模式 C 存储模式 D 外模式 数据库系统的特点是&#xff08; A &#xff09;、数据独立、减少数据冗余、避免数据不一致和加强了数据保…

自定义jar项目上传到Maven中央仓库/maven仓库/阿里云效仓库

1.前言 如何把自己的项目Jar或者Starter上传到Maven中央仓库中。 2.https://issues.sonatype.org/注册账号 3.注册成功 登录新建项目 摘要随意填写 重点来了 groupId 如果有自己域名的就自己域名com.xxx 如果用的gitee那么填写com.gitee.自己gitee的用户名 projectUrl&…

ASEMI代理AD8603AUJZ-REEL7原装ADI车规级AD8603AUJZ-REEL7

编辑&#xff1a;ll ASEMI代理AD8603AUJZ-REEL7原装ADI车规级AD8603AUJZ-REEL7 型号&#xff1a;AD8603AUJZ-REEL7 品牌&#xff1a;ADI /亚德诺 封装&#xff1a;SOT-23-5 批号&#xff1a;2023 安装类型&#xff1a;表面贴装型 引脚数量&#xff1a;5 类型&#xff1…