6.0 MapReduce 服务使用教程

在学习了之前的 MapReduce 概念之后,我们应该已经知道什么是 Map 和 Reduce,并了解了他们的工作方式。

本章将学习如何使用 MapReduce。

Word Count

Word Count 就是"词语统计",这是 MapReduce 工作程序中最经典的一种。它的主要任务是对一个文本文件中的词语作归纳统计,统计出每个出现过的词语一共出现的次数。

Hadoop 中包含了许多经典的 MapReduce 示例程序,其中就包含 Word Count。

注意:这个案例在 HDFS 不运行的状态下依然可以运行,所以我们先在单机模式下测试

首先,启动一个之前制作的 hadoop_proto 镜像的新容器:

docker run -d --name=word_count hadoop_proto

进入容器:

docker exec -it word_count bash

进入 HOME 目录:

cd ~

现在我们准备一份文本文件 input.txt:

I love erdangjiade.com
I like erdangjiade.com
I love hadoop
I like hadoop

将以上内容用文本编辑器保存。

执行 MapReduce:

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount input.txt output

解释一下含义:

hadoop jar从 jar 文件执行 MapReduce 任务,之后跟着的是示例程序包的路径。

wordcount表示执行示例程序包中的 Word Count 程序,之后跟这两个参数,第一个是输入文件,第二个是输出结果的目录名(因为输出结果是多个文件)。

执行之后,应该会输出一个文件夹 output,在这个文件夹里有两个文件:_SUCCESS 和 part-r-00000。

其中 _SUCCESS 只是用于表达执行成功的空文件,part-r-00000 则是处理结果,当我们显示一下它的内容:

cat ~/output/part-r-00000

你应该可以看到如下信息:

I       4
hadoop  2
like    2
love    2
erdangjiade.com  2

集群模式

现在我们在集群模式下运行 MapReduce。

启动在上一章配置好的集群容器:

docker start nn dn1 dn2

进入 NameNode 容器:

docker exec -it nn su hadoop

进入 HOME:

cd ~

编辑 input.txt:

I love erdangjiade.com
I like erdangjiade.com
I love hadoop
I like hadoop

启动 HDFS:

start-dfs.sh

创建目录:

hadoop fs -mkdir /wordcount
hadoop fs -mkdir /wordcount/input

上传 input.txt

hadoop fs -put input.txt /wordcount/input/

执行 Word Count:

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount /wordcount/input /wordcount/output

查看执行结果:

hadoop fs -cat /wordcount/output/part-r-00000

如果一切正常,将会显示以下结果:

I       4
hadoop  2
like    2
love    2
erdangjiade.com  2

希望你也学会了,更多编程源码模板请来二当家的素材网:https://www.erdangjiade.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch中的nn.Embedding的使用、参数及案例

PyTorch中的nn.Embedding的使用 Embedding层在神经网络中主要起到降维或升维的作用。具体来说,它通过将输入(通常是离散的、不连续的数据,如单词或类别)映射到连续的向量空间,从而实现数据的降维或升维。 在降维方面&…

【SAR成像】基于RD、CS和ωk算法的合成孔径雷达成像算法原理与实现

基于RD、CS和ωk算法的合成孔径雷达成像算法实现 前言SAR基本概念雷达获取数据的几何关系低斜视角下的回波信号模型 RADARSAT-1主要参数数据预处理数据读取与再封装数据补零 成像算法坐标轴的产生RD算法距离压缩距离徙动矫正方位压缩 CS算法第一次相位相乘 变标后的信号第二次相…

Qt应用软件【协议篇】http协议get、post示例

文章目录 QT Http的APIHTTP GET 请求示例HTTP POST 请求示例伪装chrome浏览器get请求 QT Http的API QNetworkAccessManager 作用:管理所有的网络请求,是发送请求和接收响应的中心点。主要功能: 发送HTTP请求(GET, POST, PUT, DE…

基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/n…

[Android] 240204批量生成联系人,短信,通话记录的APK

平常在做测试的时候,需要批量生成很多测试数据; 陌生人 联系人名字的生成支持随机生成,也可以自定义生成,自定义生成陌生人的数据,联系人的名字是否带索引; 通话记录 随机生成通话记录,在生…

云数据库RDS云监控

1. 什么是云数据库RDS?它有哪些特点? 云数据库RDS是一种在线关系型数据库服务,它具备的特点包括: 安全可靠:提供了容灾、备份、恢复等高可用性功能,确保数据的安全与可靠。弹性伸缩:用户可以根…

free5GC+UERANSIM

使用arp、ifconfig、docker inspect及网桥brctl 相关命令,收集容器IP及Mac地址相关信息,可以梳理出UERANSIMfree5GC模拟环境组网,如下图所示: 如上图所示:环境基于ubuntu 18.04 VMware虚机部署,5GC网元分别…

【React】memo()、useCallback()、useMemo()的区别及使用场景

介绍React中三个hooks方法memo useCallback useMemo的作用及使用场景示例 一、React.memo():用来控制函数组件的重新渲染,将组件作为参数,函数的返回值是一个新的组件。二、React.useCallback():将回调函数及依赖项数组作为参数传…

【Python】Unindent does not match any outer indentation level

这个问题一般是代码缩进问题导致的,规范代码缩进格式即可,如图: 这个问题是因为报异常的那行代码下的方法缩进问题导致,def calendar_f(): 方法名前面多了一个空格。 删除空格即可解决此问题。

【python】python爱心代码【附源码】

一、实现效果: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 二、完整代码: import math import random import threading import time from math import sin, cos, pi, log from tkinter import * import re# 烟花相关设置 Fireworks [] m…

Fink CDC数据同步(五)Kafka数据同步Hive

6、Kafka同步到Hive 6.1 建映射表 通过flink sql client 建Kafka topic的映射表 CREATE TABLE kafka_user_topic(id int,name string,birth string,gender string ) WITH (connector kafka,topic flink-cdc-user,properties.bootstrap.servers 192.168.0.4:6668…

iview 页面中判断溢出才使用Tooltip组件

使用方法 <TextTooltip :content"contentValue"></TextTooltip> 给Tooltip再包装一下 <template><Tooltip transfer :content"content" :theme"theme" :disabled"!showTooltip" :max-width"300" :p…

滴滴面经相关知识整理(基于newbing)

Vue2和Vue3有许多不同之处&#xff0c;以下是一些主要的区别&#xff1a; 数据劫持方式&#xff1a;Vue2主要是通过Object.defineProperty劫持数据&#xff0c;对于新增的对象属性&#xff0c;使用数组修改元素&#xff0c;视图无法更新1。 性能和体积&#xff1a;Vue3的运行速…

Spring auto-configuration的使用

简介 在构建Maven项目时&#xff0c;使用Spring Boot自动配置可以使项目更易于集成和使用。本文将向您展示如何创建一个Maven项目&#xff0c;并使用Spring Boot自动配置使其能够被其他组件方便地依赖。 步骤 1. 添加Spring Boot Starter依赖 确保您的Maven项目具有必要的S…

跟着cherno手搓游戏引擎【20】混合(blend)

抽象&#xff1a; Renderer.h: #pragma once #include"RenderCommand.h" #include "OrthographicCamera.h" #include"Shader.h" namespace YOTO {class Renderer {public:static void Init();static void BeginScene(OrthographicCamera& …

天拓四方:边缘计算网关功能、特点与应用举例

传统的数据处理方式面临网络延迟、带宽限制和安全风险等问题。为了解决这些问题&#xff0c;边缘计算技术应运而生&#xff0c;而边缘计算网关作为其核心组件&#xff0c;正发挥着越来越重要的作用。边缘计算网关位于数据源和云数据中心之间。它具备数据采集、协议转换、数据处…

Oracle 执行计划(Explain Plan)

执行计划&#xff1a;一条查询语句在 ORACLE 中的执行过程或访问路径的描述。即就是对一个查询任务&#xff0c;做出一份怎样去完成任务的详细方案。 如果要分析某条 SQL 的性能问题&#xff0c;通常我们要先看 SQL 的执行计划&#xff0c;看看 SQL 的每一步执行是否存在问题。…

视觉SLAM十四讲学习笔记(一)初识SLAM

目录 前言 一、传感器 1 传感器分类 2 相机 二、经典视觉 SLAM 框架 1 视觉里程计 2 后端优化 3 回环检测 4 建图 5 SLAM系统 三、SLAM 问题的数学表述 四、Ubuntu20.04配置SLAM十四讲 前言 SLAM: Simultaneous Localization and Mapping 同时定位与地图构建&#…

交友系统---让陌生人变成熟悉人的过程。APP小程序H5三端源码交付,支持二开。

随着社交网络的发展和普及&#xff0c;人们之间的社交模式正在发生着深刻的变革。传统的线下交友方式已经逐渐被线上交友取而代之。而同城交友正是这一趋势的产物&#xff0c;它利用移动互联网的便利性&#xff0c;将同城内的人们连接在一起&#xff0c;打破了时空的限制&#…

机器视觉系统设计:视觉系统中的成像基准

开发视觉系统的一个重要活动是验证其部署是否符合工程规范。一个成功的视觉应用程序的两个特点是它无需工程师干涉情况下正常工作了多长时间&#xff0c;以及它的维护和复制部署是多么简易。实现所有如上所述目标的一个关键步骤是确定视觉系统的基准。 在这里使用的上下文中&a…