hadoop4--深入mapreduce
2015-06-15 22:14
246 查看
运行结果附图
本节课程主要内容为深入学习MapReduce原理,并编写java程序对日志文件进行流量统计。首先编写MapReduce代码,并在Eclipse中调试成功
代码主要思路:
map阶段:
以user:spname组成的Text作为key;以uploadTraffic,downloadTraffic组成的Text作为value,进行map映射
reduce阶段:
仍以user:spname组成的Text作为key; 对于value的操作:先从Text中拆分出uopladTraffic和downloadTraffic,转换成long型分别作累加,得到uploadTrafficSum和downloadTrafficSum,同时为此key进行计数得到count. 最后以count,uploadTrafficSum,downloadTrafficSum组成的Text作为value值
打jar包,通过Hue上传到HDFS,再下载到本地的docker中的master上
在Hadoop集群上运行jar包
查看运行结果
问题记录
在编写MapReduce的代码的时,输入输出的key,value的类型对应很重要,需要将以下几个地方设置好: 1.建立map类,reduce类的泛型 2.map函数和reduce函数的参数(其参数的前两个:key,value均代表输入类型) 3.main函数中的配置, 当map和reduce的输出类型相同时,可以直接使用 job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); 两个方法进行设置,并可以使用job.setCombinerClass(Reduce.class);将map的结果进行合并输出给reduce 但是当map和reduce的输出类型相不同时,需要分别设置map和reduce的输出类型,使用函数: job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(IntWritable.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); 并且不能进行job.setCombinerClass(Reduce.class);的设置
相关文章推荐
- 各家处理器资源网站
- Linux应用程序学习之进程通信之管道
- hadoop3--编写简单的map reduce
- opencv1:带滚动条的图片二值化处理
- hadoop学习2----HDFS操作
- bootm命令中的地址参数,内核加载地址以及入口地址
- 实验二-3 Hadoop&Paoding 中文词频统计
- uboot想Linux内核传递参数
- python的Nginx切割脚本
- VM中linux网卡问题
- CentOS7下安装coreseek
- 架构师速成2-概述
- 架构师速成2-概述 分类: 架构师速成 2015-06-15 21:40 228人阅读 评论(0) 收藏
- 用service命令和chkconfig命令管理服务进程
- 实验一 CentOS6.5(x64)安装HaDoop2.5.2
- Linux grep参数详解
- Linux-Unix环境高级编程(第三版)代码编译
- Program received signal SIGSEGV, Segmentation fault.(转)
- 34Exchange 2010升级到Exchange 2013-先觉条件及架构扩展
- 给kalilinux桌面添加系统监视窗口