Mapreduce实验之wordcount

简介: 利用hadoop函数,标准输出输出堆中的k个单词与频次。

一、在本地或云主机上编写程序并测试
1.编程语言:python
2.Mapper代码解析:
1)从标准输入中按行读入文本内容。
2)将每行文本按空格分割,删除其中的标点符号,获得一个个单词,并且用字典过滤掉冠词、连词、代词等语法型词汇。
3)用dict统计每个单词的出现频率
4)统计单词频数结束后,用标准输出输出键值对:(单词,出现频数),一行一个,键与值之间用制表符分割。
3.Reducer代码解析:
1)从命令行中获得k的值。
2)从标准输入中获取键值对,解析成单词及出现频数。用自己写的wordcount类来存放两者。
3)一个小根堆来存放出现频次前k的单词。当小根堆中单词已经满k个,比较堆顶单词的与目前接收到单词的频次,将频次较大那个留在堆中,这样来保证统计到top k单词。
4)利用hadoop函数,标准输出输出堆中的k个单词与频次。

二、在云主机上安装配置Hadoop伪分布式集群,上传数据到hdfs
1.安装Hadoop
1)安装java
踩了一个巨坑,开hadoop的时候发现sourcemanager和nodemanager开不起来,通过看日志才发现安装的jdk18和hadoop不兼容,查了我安装的hadoop2.7.6需要java8或者7才行。于是重下jdk。
解压官网下载的压缩包之后配置环境变量,java -version出现信息安装成功。

2)安装hadoop
下载安装包然后解压即可。在环境变量中添加hadoop安装目录,这样在命令行直接输入hadoop即可执行。

2.配置伪分布式集群
首先配置ssh免密登录。在~/.ssh新建一对公私钥。

配置core-site.xml。

配置hdfs-site.xml。

配置yarn-site.xml。

命令$HADOOP_HOME/sbin/start-all.sh启动所有的Hadoop守护进程。
利用jps命令查看是否已经启动成功。

查看一下webapp页面,访问成功。

3.上传数据到hdfs
将用ftp发到云服务器上的测试文本上传到hdfs上。

三、在Hadoop集群上提交MapReduce任务并查看结果
将mapper和reducer程序的py文件ftp发到服务器上。
然后找到hadoop-streaming.jar的地方。最后提交mapreduce用的命令语句如下:
指定了了mapper和reducer程序,制定了输入输出目录。这里的k值在命令行中获取到是20。

执行信息输出:

查看结果。

实验结束。

相关文章
|
14天前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
61 3
|
14天前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
34 1
|
2月前
|
分布式计算 Hadoop Java
Hadoop_MapReduce中的WordCount运行详解
MapReduce的WordCount程序在分布式系统中计算大数据集中单词出现的频率时,提供了一个可以复用和可伸缩的解决方案。它体现了MapReduce编程模型的强大之处:简单、可靠且将任务自动分布到一个集群中去执行。它首先运行一系列的Map任务来处理原始数据,然后通过Shuffle和Sort机制来组织结果,最后通过运行Reduce任务来完成最终计算。因此,即便数据量非常大,通过该模型也可以高效地进行处理。
81 1
|
4月前
|
分布式计算 数据挖掘
通过mapreduce程序统计旅游订单(wordcount升级版)
通过mapreduce程序统计旅游订单(wordcount升级版)
|
4月前
|
分布式计算 大数据
mapreduce 实现带有ex前缀的词频统计wordcount 大作业
mapreduce 实现带有ex前缀的词频统计wordcount 大作业
|
5月前
|
分布式计算 Hadoop Java
【集群模式】执行MapReduce程序-wordcount
【集群模式】执行MapReduce程序-wordcount
|
5月前
|
分布式计算 Java Hadoop
【本地模式】第一个Mapreduce程序-wordcount
【本地模式】第一个Mapreduce程序-wordcount
|
分布式计算 资源调度 Hadoop
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化
|
存储 编解码 分布式计算
云计算与大数据实验六 MapReduce综合应用
云计算与大数据实验六 MapReduce综合应用
276 0
|
分布式计算 Java Hadoop
云计算与大数据实验五 MapReduce编程
云计算与大数据实验五 MapReduce编程
317 0