大数据学*??MapReduce学*??字符统计WordCount

发布时间:2021-11-29 02:16:55

操作背景


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 extends
Mapper {
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构造函数的第二个参数是分割符,确认文件中的分割符是三个空格或者一个tab
StringTokenizer tokenizer = new StringTokenizer(value.toString(),
" ");
word.set(tokenizer.nextToken());
context.write(word, one);
}
}
//参数同Map一样,依次表示是输入键类型,输入值类型,输出键类型,输出值类型
public static class doReducer extends
Reducer {
private IntWritable result = new IntWritable();

@Override
protected void reduce(Text key, Iterable 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

相关文档

  • 冬至日有什么传统
  • 人家也是干 IT 的。
  • 七夕单身个性签名
  • Git TortoiseGit使用方法
  • 五一劳动节的黑板报
  • Go语言解决读取文件乱码
  • 成都有什么特产成都买什么东西好
  • eclipse没有日志_强化IPFS的公开DHT以抵抗eclipse的攻击
  • 骨肉相连青豆粥的做法步骤
  • 学习的滋味作文400字
  • 女属狗和男属鼠相配
  • 描写黄河的现代散文诗歌
  • unity开发游戏开场问答系统(梦幻模拟战手游)
  • 我眼中的春天
  • 二年级上册期末学生评语
  • C#.NET常见问题(FAQ)-控制台程序如何做弹窗
  • 2020年上半年宁夏固原隆德县中小学教师资格认定公告
  • 写给最亲的人一封信
  • 科室上半年工作总结开头
  • 朋友圈2017到2019对比是什么意思2017和2019的对比是什么梗
  • 姓莫女宝宝简单的取名方法
  • 重阳节的讲话稿三分钟
  • 关于来自毕业生的感谢信范文五篇精选
  • 名人传读后感400
  • 剁椒的做法步骤和技巧
  • 餐饮演讲稿多篇2020年
  • 修真资料---茅山道法
  • 小学一年级英语期中试卷三套分享
  • 军训之后的感想
  • 论文的页码怎么编辑
  • 猜你喜欢

  • 江苏省泰州中学附属初级中学2017届九年级上学期期中考试化学试题
  • 初一作文日记《考场如战场》300字(共6页PPT)
  • 【推荐K12】九年级道德与法治上册第一单元富强与创新第二课创新驱动发展达标检测新人教版
  • linux下使用自带mail发送邮件(超简单)
  • 工作总结五年级英语教学工作计划
  • 2019年小学五年级数学期末卷面分析
  • 学校安全工作专题会议讲话稿范文
  • 中国*代报刊的产生与初步发展概述
  • 小学三年级数学下册第二单元试题
  • (强烈推荐)年产120万*方米钢化玻璃项目研究建议书_
  • 一个医药代表的述职报告
  • 芝麻酱鸡块面的做法芝麻酱鸡块面怎么做
  • 五年级作文写人:爸爸妈妈我想对你们说
  • MRP基本理论介绍
  • 训练集、测试集loss容易出现的问题总结
  • 海南万园椰子产业有限公司企业信用报告-天眼查
  • 2019年中考英语二轮复*阅读理解基础优题10人教新目标版
  • 我理解的数字证书-1-公钥,私钥和数字证书
  • ArtM-2009中华轿车T动力体验营结案报告200904
  • 上海嘉定某社区736例消化性溃疡的特点分析
  • 国有企业思想政治工作科学化探究
  • 如何巧妙地赞美别人
  • Windows Embedded POSReady 7 Datasheet
  • 2019年写银杏树叶的作文500字
  • 杭州人常识
  • 学年高一物理人教版必修一同课异构课件:第三章 相互
  • 2020新人教版五下数学第4单元《分数的意义和性质》测试卷 (3)
  • 历史趣谈:康熙皇帝盛赞郑成功是明朝忠臣 并非乱臣贼子
  • 经典的创业要决
  • 高校管理信息公开制度的创新探索
  • 【教育学*文章】学校“纪念中国人民解放军建军90周年”主题活动总结
  • 辽宁省盘锦市双子台区2018-2019学年七年级下学期期末考试数学试题含答案
  • 基于COBIT的会计业务流程控制
  • 语文培训学习心得体会3篇
  • 船员工资休假的规定
  • 民航通信工程中无线电干扰研究
  • 加强高校青年教师的职业道德建设
  • 2014年苏州大学241英语考研真题考研试题硕士研究生入学考试试题
  • 拍雪进屋
  • 《孙权劝学》很实用ppt课件(33页)
  • 每日工作体会精选多篇
  • (目录)2018-2024年锚泊设备市场深度调研及发展战略研究咨询报告
  • 电脑版