Hadoop之MapReduce01【自带wordcount案例】_hadoop官方示例源码wordcount-程序员宅基地

技术标签: wordcount  hadoop  大数据专栏  MapReduce  

一、什么是mapreduce

组件 说明
HDFS 分布式存储系统
MapReduce 分布式计算系统
YARN hadoop 的资源调度系统
Common 三大[HDFS,Mapreduce,Yarn]组件的底层支撑组件,
主要提供基础工具包和 RPC 框架等

  Mapreduce 是一个分布式运算程序的编程框架,是用户开发“基于 hadoop 的数据分析应用”的核心框架,Mapreduce 核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的 分布式运算程序,并发运行在一个 hadoop 集群上.

二、为什么需要mapreduce

  1. 海量数据在单机上处理因为硬件资源限制,无法胜任
  2. 而一旦将单机版程序扩展到集群来分布式运行,将极大增加程序的复杂度和开发难度
  3. 引入 MapReduce 框架后,开发人员可以将绝大部分工作集中在业务逻辑的开发上,而将 分布式计算中的复杂性交由框架来处理

三、mapreduce程序运行实例

  在 MapReduce 组件里, 官方给我们提供了一些样例程序,其中非常有名的就是 wordcount 和 pi程序。这些 MapReduce程序的代码都在hadoop-mapreduce-examples-2.6.4.jar包里,这个jar包在 hadoop安装目录下的/share/hadoop/mapreduce/目录里

在这里插入图片描述

wordcount案例

  执行wordcount案例来统计文件中单词出现的次数.

1.准备数据

在这里插入图片描述

2.HDFS中创建对应的文件夹

  在hdfs中创建文件夹存储需要统计的文件,及创建输出文件的路径

 hadoop fs -mkdir -p /wordcount/input
 hadoop fs -put a.txt /wordcount/input/

在这里插入图片描述

3.启动yarn

  要做分布式运算必须要启动yarn

start-yarn.sh

在这里插入图片描述

在这里插入图片描述

4.执行程序

hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /wordcount/input/ /wordcount/output

输出

[root@hadoop-node01 mapreduce]# hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /wordcount/input/ /wordcount/output
19/04/02 23:06:03 INFO client.RMProxy: Connecting to ResourceManager at hadoop-node01/192.168.88.61:8032
19/04/02 23:06:07 INFO input.FileInputFormat: Total input paths to process : 1
19/04/02 23:06:09 INFO mapreduce.JobSubmitter: number of splits:1
19/04/02 23:06:09 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1554217397936_0001
19/04/02 23:06:10 INFO impl.YarnClientImpl: Submitted application application_1554217397936_0001
19/04/02 23:06:11 INFO mapreduce.Job: The url to track the job: http://hadoop-node01:8088/proxy/application_1554217397936_0001/
19/04/02 23:06:11 INFO mapreduce.Job: Running job: job_1554217397936_0001
19/04/02 23:06:30 INFO mapreduce.Job: Job job_1554217397936_0001 running in uber mode : false
19/04/02 23:06:30 INFO mapreduce.Job:  map 0% reduce 0%
19/04/02 23:06:46 INFO mapreduce.Job:  map 100% reduce 0%
19/04/02 23:06:57 INFO mapreduce.Job:  map 100% reduce 100%
19/04/02 23:06:58 INFO mapreduce.Job: Job job_1554217397936_0001 completed successfully
19/04/02 23:06:59 INFO mapreduce.Job: Counters: 49
	File System Counters
		FILE: Number of bytes read=133
		FILE: Number of bytes written=214969
		FILE: Number of read operations=0
		FILE: Number of large read operations=0
		FILE: Number of write operations=0
		HDFS: Number of bytes read=240
		HDFS: Number of bytes written=79
		HDFS: Number of read operations=6
		HDFS: Number of large read operations=0
		HDFS: Number of write operations=2
	Job Counters 
		Launched map tasks=1
		Launched reduce tasks=1
		Data-local map tasks=1
		Total time spent by all maps in occupied slots (ms)=11386
		Total time spent by all reduces in occupied slots (ms)=9511
		Total time spent by all map tasks (ms)=11386
		Total time spent by all reduce tasks (ms)=9511
		Total vcore-milliseconds taken by all map tasks=11386
		Total vcore-milliseconds taken by all reduce tasks=9511
		Total megabyte-milliseconds taken by all map tasks=11659264
		Total megabyte-milliseconds taken by all reduce tasks=9739264
	Map-Reduce Framework
		Map input records=24
		Map output records=27
		Map output bytes=236
		Map output materialized bytes=133
		Input split bytes=112
		Combine input records=27
		Combine output records=12
		Reduce input groups=12
		Reduce shuffle bytes=133
		Reduce input records=12
		Reduce output records=12
		Spilled Records=24
		Shuffled Maps =1
		Failed Shuffles=0
		Merged Map outputs=1
		GC time elapsed (ms)=338
		CPU time spent (ms)=2600
		Physical memory (bytes) snapshot=283582464
		Virtual memory (bytes) snapshot=4125011968
		Total committed heap usage (bytes)=137363456
	Shuffle Errors
		BAD_ID=0
		CONNECTION=0
		IO_ERROR=0
		WRONG_LENGTH=0
		WRONG_MAP=0
		WRONG_REDUCE=0
	File Input Format Counters 
		Bytes Read=128
	File Output Format Counters 
		Bytes Written=79

执行成功,查看结果

在这里插入图片描述

[root@hadoop-node01 mapreduce]# hadoop fs -cat /wordcount/output/part-r-00000
1	1
2	1
3	1
a	4
b	2
c	1
hadoop	3
hdfs	2
hello	2
java	7
mapreduce	1
wordcount	2

注意:输出的目录不能存在。如果存在会爆如下错误。

在这里插入图片描述

源码内容可以自行观看,下篇介绍手动实现wordcount案例~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38526573/article/details/88984195

智能推荐

opencv python 各种轮廓排序_contours.sort-程序员宅基地

文章浏览阅读8k次,点赞10次,收藏53次。OpenCV轮廓排序如果轮廓线是闭合的 就使用面积来排序使用cv2.contourArea() 获得轮廓面积后进行排序:如下import cv2import numpy as npfrom numpy import random as nrfrom skimage import morphology,data,colorfrom skimage import img_as_float,img_as_ubytedef imgContoursROI(): """使用查找到的.._contours.sort

前端实现GIF图片压缩上传_前端如何上传gif图-程序员宅基地

文章浏览阅读1.5k次。前言最近接到上级通知,文件如下:奉天承运,公司诏曰:介于前端组表现优异,后端组忙里偷不出闲,GIF压缩这一块特赐予前端组。钦此,不一会后端群众就送来了亲切的问候,千万个草泥马在我的心中奔跑吃瓜不嫌事大骂骂咧咧过后,平复下心情,想想思路抛砖引玉-压缩图片之前做过图片压缩,无非是把file->base64->新建canvas画图->导出canvas->转fileinput 读取到 image/file ,使用 FileReader 将其转换为 base64 编码新._前端如何上传gif图

NOIP2015 pj-程序员宅基地

文章浏览阅读107次。达成成就!——尝试不看题解的情况下用cpp打完了一套NOIP pj题目全部在luogu上——P2669 金币题目描述国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连...

java中括号分隔,在Java中以逗号分隔的列表按索引顺序打印一个Vector,并用方括号([])括起来...-程序员宅基地

文章浏览阅读528次。只需将System.out.println()与Vector对象一起使用,就可以按索引顺序以逗号分隔的列表打印Vector,并用方括号([])括起来。演示此的程序如下所示-示例importjava.util.Vector;publicclassDemo{publicstaticvoidmain(Stringargs[]){Vectorvec=newVector(5);ve..._java字符串打印有方括号

神经网络反向传播-程序员宅基地

文章浏览阅读379次。神经网络应用于分类问题:假设训练样本有m个,每个包含一组输入x和一组输出y,L表示神经网络层数,SlS_{l}Sl​表示l层的神经元个数。神经网络分类问题有两种情况:(1)二元分类:y只能是0或1,有且仅有一个输出单元。(2)多类别分类:有K个不同的类,有K个输出单元,假设输出K维向量,yi=1y_{i}=1yi​=1表示分到第i类。多类别分类正则化后的代价函数为:J(θ)=−1m[∑i=1m∑k=1kyk(i)log(hθ(x(i)))k+(1−yk(i))log(1−(hθ(x(i)))k)]+λ_神经网络反向传播

c语言开发无人机自动驾驶仪,无人机自动驾驶仪.pdf-程序员宅基地

文章浏览阅读780次。无人机自动驾驶仪.pdf先进的多功能无人机自动驾驶仪 先进的多功能无人机自动驾驶仪 某 型 先 进 的 多 功 能 图 形 化 组 态 编 程 无 人 机 飞 行 控 制 系 统 ,非 常 适 合 用 户 根 据 个 性 化 需 求 进 行 二 次 开 发 和 功 能 扩 展 。它 集 飞 行 控 制 、数 据 采 集 、控 制 律 设 计 和 半 物 理 仿 真 四 大 功 能 于 一 体 ,适...

随便推点

温度测量与控制_区域温度测量 csdn-程序员宅基地

文章浏览阅读2.4k次。实验七 温度测量与控制三、实验内容掌握使用传感器测量与控制温度的原理与方法,使用C51语言编写实现温度控制的功能,使用超声波/温度实验板测量温度,将温度测量的结果(单位为摄氏度)显示到液晶屏上。编程实现测量当前教室的温度,显示在LCM液晶显示屏上。通过S1设定一个稳定的目标温度值。编程实现温度的控制,将当前温度值控制到目标温度值并稳定的显示。四、实验步骤1.预习,参考_区域温度测量 csdn

iOS开发笔记之六十九——FRP与RAC介绍(二)_ios rac双向绑定-程序员宅基地

文章浏览阅读1.1w次。******阅读完此文,大概需要20分钟******本篇章主要以介绍RAC的常见操作、常见使用场景、双向绑定、RACCommd等相关内容。一、RACSignal信号的过滤、筛选、合并等常见操作示例代码如下:- (void)coldSignalTest{ //信号的创建 RACSignal *signal = [RACSignal createSignal:^RA..._ios rac双向绑定

taskdef class com.android.ant.SetupTask cannot be found using the classloader AntClassLoader_using the classloader antclassloader[]-程序员宅基地

文章浏览阅读1.7k次。refs:http://stackoverflow.com/questions/15713871/taskdef-class-com-android-ant-setuptask-cannot-be-found-using-the-classloader-anI'm trying to get some simple Android apps working from_using the classloader antclassloader[]

Neither SQLALCHEMY_DATABASE_URI...或者找不到mkvirtualenv命令或者启动.bashrc后出现No module named virtualenvwrapper_no module named mkvirtualenv-程序员宅基地

文章浏览阅读317次。出现UserWarning: Neither SQLALCHEMY_DATABASE_URI…的时候,加上圈起来的那一句话可能会好哦_no module named mkvirtualenv

【Leetcode】312. Burst Balloons_带权值的戳气球-程序员宅基地

文章浏览阅读94次。题目地址:https://leetcode.com/problems/burst-balloons/给定一个数组AAA,A[i]A[i]A[i]代表下标为iii的气球所带的权值。可以按某种顺序戳破气球,每次戳破气球之后,会得到一个分数,这个分数等于A[i]A[i]A[i]与其左边最近的未戳破的气球的权值的乘积再乘以其右边最近的未戳破的气球的权值。如果要戳的气球刚好在边上,则设想边界上有一个权值为111的气球即可。问最多能得多少分。法1:记忆化搜索。先把AAA的左右两边都添上一个111,接着设f[i][_带权值的戳气球

javascript分号情况分析_js判断有没有分号-程序员宅基地

文章浏览阅读228次。javascirpt一般采用分号(;)将语句分隔开,利于代码可读性和整洁性。但是js中可选分号的问题有几个细节:1.js中分号可以省略;例如以下代码:a=3;b=4;可将分号省略,但如果是a=3;b=4则不可省略,那是不是理解为可以用换行代替分号,不是的。总的来说,javascript中,如果当前语句和随后的非空格字符不能当成一个整体来解析的话,js就在当前语句结束处填补分号。例如:var a..._js判断有没有分号