操作背景

jdk的版本为1.8以上

ubuntu12

hadoop2.5伪分布

安装 Hadoop-Eclipse-Plugin

要在 Eclipse 上编译和运行 MapReduce 程序,需要安装 hadoop-eclipse-plugin,可下载 Github 上的 hadoop2x-eclipse-plugin(备用下载地址:http://pan.baidu.com/s/1i4ikIoP)。

下载后,将 release 中的 hadoop-eclipse-kepler-plugin-2.6.0.jar (还提供了 2.2.0 和 2.4.1 版本)复制到 Eclipse 安装目录的 plugins 文件夹中,运行

eclipse -clean 重启 Eclipse 即可(添加插件后只需要运行一次该命令,以后按照正常方式启动就行了)。

配置 Hadoop-Eclipse-Plugin

在继续配置前请确保已经开启了 Hadoop

1. 按照如下流程进入Hadoop Map/Reduce界面

Window--》Preference--》Hadoop Map/Reduce

点击右侧的Browse...选择Hadoop的安装路径,然后点击ok即可

2.按照如下操作到切换 Map/Reduce 开发视图

Window--》Open Perspective--》Other

弹出一个窗口选择Map/Reduce即可

3.建立与 Hadoop 集群的连接

点击 Eclipse软件右下角的 Map/Reduce Locations 面板,在面板中单击右键,选择 New Hadoop Location

在弹出的General选项面板里

设置两处

1.Location Name随便写就是连接名

2.DFS Master的Port与fs.defaultFS(设置为hdfs://localhost:9000)的端口号相同为9000

设置完成以后配置好后,点击左侧 Project Explorer 中的 MapReduce Location (点击三角形展开)就能直接查看 HDFS 中的文件列表了,双击可以查看内容,右键点击可以上传、下载、删除

在 Eclipse 中创建 MapReduce 项目

用刚刚创建的Map/Reduce视图新建目录mymapreduce1/in,在此目录下上传文件文件名为buyer_favorite1,

这个文件的目录和名字可以自行修改,但要注意修改代码中的Path in的路径和文价名

此文件为某电商网站用户对商品的收藏数据,记录了用户收藏的商品id以及收藏日期

buyer_favorite1包含:买家id,商品id,收藏日期这三个字段

内容如下

买家id   商家id     收藏日期
10181   1000481   2010-04-04 16:54:31
20001   1001597   2010-04-07 15:07:52
20001   1001560   2010-04-07 15:08:27
20042   1001368   2010-04-08 08:20:30
20067   1002061   2010-04-08 16:45:33
20056   1003289   2010-04-12 10:50:55
20056   1003290   2010-04-12 11:57:35
20056   1003292   2010-04-12 12:05:29
20054   1002420   2010-04-14 15:24:12
20055   1001679   2010-04-14 19:46:04
20054   1010675   2010-04-14 15:23:53
20054   1002429   2010-04-14 17:52:45
20076   1002427   2010-04-14 19:35:39
20054   1003326   2010-04-20 12:54:44
20056   1002420   2010-04-15 11:24:49
20064   1002422   2010-04-15 11:35:54
20056   1003066   2010-04-15 11:43:01
20056   1003055   2010-04-15 11:43:06
20056   1010183   2010-04-15 11:45:24
20056   1002422   2010-04-15 11:45:49
20056   1003100   2010-04-15 11:45:54
20056   1003094   2010-04-15 11:45:57
20056   1003064   2010-04-15 11:46:04
20056   1010178   2010-04-15 16:15:20
20076   1003101   2010-04-15 16:37:27
20076   1003103   2010-04-15 16:37:05
20076   1003100   2010-04-15 16:37:18

点击File--》New--》Other找到Map/Reduce Project点击创建即可。

然后将以下代码放到项目中

代码是是统计每个买家收藏商品数量

import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
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.output.FileOutputFormat;public class WordCount {public static void main(String[] args) throws IOException,ClassNotFoundException, InterruptedException {Job job = Job.getInstance();job.setJobName("WordCount");job.setJarByClass(WordCount.class);job.setMapperClass(doMapper.class);job.setReducerClass(doReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//这个路径是存放用户收藏商品的信息Path in = new Path("hdfs://localhost:9000/mymapreduce1/in/buyer_favorite1");//这个路径也可自行设置,但是路径必须不存在Path out = new Path("hdfs://localhost:9000/mymapreduce1/out");FileInputFormat.addInputPath(job, in);FileOutputFormat.setOutputPath(job, out);System.exit(job.waitForCompletion(true) ? 0 : 1);}/*** * 第一个Object表示输入key的类型;第二个Text表示输入value的类型;*第三个Text表示表示输出键的类型;第四个IntWritable表示输出值的类型*/public static class doMapper extendsMapper<Object, Text, Text, IntWritable> {public static final IntWritable one = new IntWritable(1);public static Text word = new Text();protected void map(Object key, Text value, Context context)throws IOException, InterruptedException {//StringTokenizer是Java工具包中的一个类,用于将字符串进行拆分 //StringTokenizer构造函数的第二个参数是分割符,确认文件中的分割符是三个空格或者一个tabStringTokenizer tokenizer = new StringTokenizer(value.toString(),"   ");word.set(tokenizer.nextToken());context.write(word, one);}}//参数同Map一样,依次表示是输入键类型,输入值类型,输出键类型,输出值类型public static class doReducer extendsReducer<Text, IntWritable, Text, IntWritable> {private IntWritable result = new IntWritable();@Overrideprotected void reduce(Text key, Iterable<IntWritable> values,Context context) throws IOException, InterruptedException {int sum = 0;for (IntWritable value : values) {sum += value.get();}result.set(sum);context.write(key, result);}}
}

右键此Map/Reduce Project=>Run As=>Run on Hadoop

Map/Reduce视图工具查看输出目录中的part-r-00000文件

结果如下

参考资料

http://dblab.xmu.edu.cn/blog/hadoop-build-project-using-eclipse/?tdsourcetag=s_pcqq_aiomsg

转载于:https://www.cnblogs.com/wei-jing/p/9971690.html

大数据学习——MapReduce学习——字符统计WordCount相关推荐

  1. 大数据之Hadoop学习——动手实战学习MapReduce编程实例

    文章目录 一.MapReduce理论基础 二.Hadoop.Spark学习路线及资源收纳 三.MapReduce编程实例 1.自定义对象序列化 需求分析 报错:Exception in thread ...

  2. 大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】

    视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g 提取码: 6666 [P001-P ...

  3. 进阶大数据架构师学习路线

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/25b820fe1d054f53bab70310694faffe.jpeg#pic_center 文末有惊喜 大数据架 ...

  4. 大数据时代需要学习些什么?

    我们现在正处于"互联网+"的时代,将互联网和传统行业融合,往往可以创造出1+1>2的效果.这种1+1的模式,在编程语言的使用上也通用,比如Python+大数据开发,就可以在数 ...

  5. 图解大数据 | 应用Map-Reduce进行大数据统计@实操案例

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/84 本文地址:http://www.showmeai.tech/article-det ...

  6. 大数据之spark学习记录二: Spark的安装与上手

    大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...

  7. 数据科学 怎样进行大数据的入门级学习?

    转:数据科学 怎样进行大数据的入门级学习? 数据科学并没有一个独立的学科体系,统计学,机器学习,数据挖掘,数据库,分布式计算,云计算,信息可视化等技术或方法来对付数据. 但从狭义上来看,我认为数据科学 ...

  8. 基于大数据与深度学习的自然语言对话

    基于大数据与深度学习的自然语言对话 发表于2015-12-04 09:44| 7989次阅读| 来源<程序员>电子刊| 5 条评论| 作者李航.吕正东.尚利峰 大数据深度学习自然语言处理自 ...

  9. 谷俊丽:基于大数据的深度学习

    嘉宾介绍:谷俊丽,博士学历,毕业于清华大学-美国University of Illinois Urbana-champaign大学,在清华期间作为核心人员研发过超长指令字数字信号处理器,在美期间曾参与 ...

  10. 【转】谷俊丽:基于大数据的深度学习

    对于我这种小白,还比较通俗易懂,顺便也介绍了深度学习一些概况,留着有用! 嘉宾介绍:谷俊丽,博士学历,毕业于清华大学-美国University of Illinois Urbana-champaign ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:构建机器学习项目(机器学习策略)(1)
  2. 如何撰写将赢得客户青睐的自由职业者提案和免费模板
  3. 智办事:高效的目标管理,让企业战略目标得以实现
  4. 实验三:XML模型(二)
  5. 数据库复杂查询,多表多联
  6. 典型微型计算机控制系统的实例,微型计算机控制系统概述.ppt
  7. PHP之wampserver修改根目录与默认页面
  8. springmvc配置servlet
  9. mysql 中国省份城市数据库表
  10. 修改移动光猫,提升上网速度
  11. jdy ble sdk android,JDY-18蓝牙模块 连接blinker超时
  12. IE兼容性视图无法添加网站
  13. 弹出菜单 PopupMenu 的使用
  14. 专项审计有哪些?专项审计报告包含哪些内容?
  15. 如何动态创建水晶报表
  16. 连接MySql报错【ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)】
  17. 字符串数据处理 arduino
  18. Mac使用技巧:在 iPhone 或 iPad 上自动更新应用程序
  19. MTK Camera上电流程分析
  20. 福大软工 · 第十次作业 - 项目测评(团队) [已完成]

热门文章

  1. golang协程特点
  2. 逻辑运算符''取某值
  3. 什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
  4. C++中构造函数和析构函数可以抛出异常吗?
  5. JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转
  6. Framework7 4.1.0 发布,全功能 HTML 框架
  7. 从零开始学 Web 之 BOM(四)client系列
  8. 发现藏匿在加密流量中的威胁
  9. Redis、Memcache和MongoDB的区别
  10. 系统测试方案如何写?