MapReduce经典案例-词频统计。

已知有如下格式的日志文件,请统计每天的error次数。

2022-03-01 error:no boot disk has been detected

2022-03-01 warning:hardware failure detected

2022-03-01 error:flash download failed

2022-03-02 error:1d returned 1exit status

2022-03-05 error:expected expression

2022-03-05 warning:the high memory area

1.本地模式

(1)自定义mapper组件,map()方法指定的处理逻辑为:首先将每个键值对中的值转换为String类型,即获取数据块的每行数据;然后根据分隔符空格将每行数据拆分为多个单词,并将这些单词存放到数组;最后遍历数组以获取每个单词,将每个单词与值1组合成新的键值对<单词,1>,并输出到Reduce Task. 代码如下:

(2)自定义reducer组件,使用reducer组件处理数据,对mapper自建输出到reducer组件的数据进行处理,将相同对应的值累加,从而统计每个单词的出现次数,具体代码如下:

(3)编写驱动类,具体代码如下:

(4)运行结果:

2.集群模式

(1)mapper组件和reducer组件的定义和本地模式一样。

(2)驱动类需要将local改为yarn,文件的路径改为args[0]和args[1],代码如下:

(3)双击package将本项目打包成jar文件。

(4)将jar文件重命名:

(5)使用start-all.sh命令开启集群:

(6)使用rz命令上传jar文件:

(7)在HDFS上创建input文件夹:

(8)编写txt文件,并将该文件上传到HDFS上的/input目录下:

(9)在jar文件所在目录执行如下命令,将MapReduce程序提交到YARN集群运行:

(10)运行结果:

相关推荐
MATLAB代码顾问8 小时前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
wuminyu9 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
万粉变现经纪人9 小时前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
清风明月一壶酒10 小时前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
其实防守也摸鱼10 小时前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
callJJ11 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
小郑加油11 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习
AC赳赳老秦11 小时前
投标合规提效:用 OpenClaw 实现标书 / 合同自动审核、关键词校验、格式优化,降低废标风险
开发语言·前端·python·eclipse·emacs·deepseek·openclaw
KuaCpp11 小时前
C++面向对象(速过复习版)
开发语言·c++
wbs_scy11 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言