大数据技术之Hadoop:提交MapReduce任务到YARN执行(八)

目录

一、前言

二、示例程序

2.1 提交wordcount示例程序

2.2 提交求圆周率示例程序

三、写在最后


一、前言

我们前面提到了MapReduce,也说了现在几乎没有人再写MapReduce代码了,因为它已经过时了。然而不写代码不意味着它没用,当下很火的HIve技术就到了MapReduce,所以MapReduce还是相当重要的。

但是本章我们暂时不用管MapReduce程序是如何编写的,它的语法结构是什么,我们通过Hadoop系统自带MapReduce示例程序到YARN运行。目的是让各位有一个直观的认识。

在部署并成功启动YARN集群后,我们就可以在YARN上运行各类应用程序了。

YARN作为资源调度管控框架,其本身提供资源供许多程序运行,常见的有:

  • MapReduce程序
  • Spark程序
  • Flink程序

SparkFlink是大数据后续的学习内容,我们目前先来体验一下在YARN上执行MapReduce程序的过程。

二、示例程序

Hadoop官方内置了一些预置的MapReduce程序代码,我们无需编程,只需要通过命令即可使用。

常用的有2MapReduce内置程序:

wordcount:单词计数程序统计指定文件内各个单词出现的次数
pi:求圆周率通过蒙特卡罗算法(统计模拟法)求圆周率

这些内置的示例MapReduce程序代码,都在:

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar 这个文件内

可以通过 hadoop jar 命令来运行它,提交MapReduce程序到YARN中。

语法: hadoop jar 程序文件 java类名 [程序参数] ... [程序参数]

2.1 提交wordcount示例程序

介绍

单词计数示例程序的功能很简单:

给定数据输入的路径(HDFS)、给定结果输出的路径(HDFS

将输入路径内的数据中的单词进行计数,将结果写到输出路径

步骤

我们可以准备一份数据文件,并上传到HDFS中。

itheima itcast itheima itcast
hadoop hdfs hadoop hdfs
hadoop mapreduce hadoop yarn
itheima hadoop itcast hadoop
itheima itcast hadoop yarn mapreduce

将上述内容保存到Linux中为words.txt文件,并上传到HDFS。

hadoop fs -mkdir -p /input/wordcount
hadoop fs -mkdir /output
hadoop fs -put words.txt /input/wordcount/

执行如下命令,提交示例MapReduce程序WordCount到YARN中执行

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount hdfs://node1:8020/input/wordcount/ hdfs://node1:8020/output/wc1

注意:

  • 参数wordcount,表示运行jar包中的单词计数程序(Java Class
  • 参数1是数据输入路径(hdfs://node1:8020/input/wordcount/)
  • 参数2是结果输出路径(hdfs://node1:8020/output/wc1) 需要确保输出的文件夹不存在

提交程序后,可以在YARNWEB UI页面看到运行中的程序(http://centos100:8088/cluster/apps)

执行完成后,可以查看HDFS上的输出结果

 

  • _SUCCESS文件是标记文件,表示运行成功,本身是空文件
  • part-r-00000,是结果文件,结果存储在以part开头的文件中

执行完成后,可以借助历史服务器查看到程序的历史运行信息

ps:如果没有启动历史服务器和代理服务器,此操作无法完成(页面信息由历史服务器提供,鼠标点击跳转到新网页功能由代理服务器提供)

查看运行的日志

2.2 提交求圆周率示例程序

可以执行如下命令,使用蒙特卡罗算法模拟计算求PI(圆周率)

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar pi 3 1000

  • 参数pi表示要运行的Java类,这里表示运行jar包中的求pi程序
  • 参数3,表示设置几个map任务
  • 参数1000,表示模拟求PI的样本数(越大求的PI越准确,但是速度越慢)

如图,运行完成,求得PI值(样本1000太小,不够精准,仅演示)

三、写在最后

到这一章结束,我们的Hadoop学习就告一段落了。不是说Hadoop技术学完了,而是可以说已经入门了。至于后续要深入学习也有了方向性。下一步我们将讲解Hive技术。过程中会补充MapReduce的一些知识点。

最难不过坚持,加油!🧡

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

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

相关文章

103. 二叉树的锯齿形层序遍历

103. 二叉树的锯齿形层序遍历 题目-中等难度示例1. bfs 题目-中等难度 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行&#xff09…

Elasticsearch:使用 ESRE 和生成式 AI 了解 TLS 日志错误

作者:DAVID HOPE 本博客介绍了 Elasticsearch 相关性引擎 (ESRE​​) 及其 Elastic Learned Sparse Encoder 功能的新颖应用,特别是在日志分析中。 最近发布的 Elasticsearch Relevance Engine™ (ESRE™) 包含一系列重要功能,可增强搜索能力…

OSPF路由计算

1、Router LSA LSA 链路状态通告,是OSPF进行路由计算的主要依据,在OSPF的LSU报文中携带,其头重要字段及解释: LS Type(链路状态类型):指示本LSA的类型。 在域内、域间、域外…

goweb入门

创建gomod项目 go mod init web01新建main.go package mainimport ("fmt""net/http" )func handler(writer http.ResponseWriter, request *http.Request) {fmt.Fprintf(writer, "Hello World,%s!", request.URL.Path[1:]) } func main() {fmt…

李宏毅深度学习self-attentin学习笔记

self-attention 一、self-attention的起源二、self-attention网络架构三、multi-head self-attention四、positional encoding五、pytorch实现 一、self-attention的起源 self-attention初始也是用于解决seq2seq的问题。即input是一堆序列,而output也是一段长度固定…

网络层--IP协议

引入: IP协议主要解决什么问题呢? IP协议提供一种将数据从主机A 发送到 主机B的能力。(有能力不一定能做到,比如小明很聪明,可以考100分,但是他也不是每次搜能考100分&#xff0…

java面试题(17):链表两数相加

两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头…

基于SpringBoot+微信小程序的智慧医疗线上预约问诊小程序

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 近年来,随…

MyBatis 框架入门理论与实践

文章目录 1. MyBatis 框架介绍1.1 MyBatis优点1.2 MyBatis 不足 2. MyBatis 框架整体架构3. MyBatis 的 ORM 介绍4. MyBatis 框架入门开发4.1 入门案例的搭建4.1.1 准备SQL数据4.1.2 新建 SpringBoot 项目4.1.3 pom文件:4.1.4 配置文件4.1.5 mapper 和 mapper.xml4.…

mysql修改密码

1.mysql5.7以后和8.0版本的修改方法 摘要:经常会遇到mysql忘记密码,以及在公司中,交接没有完成导致无法进入数据库,下面提供了mysql的修改密码方法和使用图形化工具连接数据库的方法以及不需要密码直接进入数据库。 启动mysqld进…

电商类面试问题--01Elasticsearch与Mysql数据同步问题

在实现基于关键字的搜索时,首先需要确保MySQL数据库和ES库中的数据是同步的。为了解决这个问题,可以考虑两层方案。 全量同步:全量同步是在服务初始化阶段将MySQL中的数据与ES库中的数据进行全量同步。可以在服务启动时,对ES库进…

二分搜索树层序遍历(Java 实例代码)

目录 二分搜索树层序遍历 Java 实例代码 src/runoob/binary/LevelTraverse.java 文件代码: 二分搜索树层序遍历 二分搜索树的层序遍历,即逐层进行遍历,即将每层的节点存在队列当中,然后进行出队(取出节点&#xff0…

注意力机制讲解与代码解析

一、SEBlock(通道注意力机制) 先在H*W维度进行压缩,全局平均池化将每个通道平均为一个值。 (B, C, H, W)---- (B, C, 1, 1) 利用各channel维度的相关性计算权重 (B, C, 1, 1) --- (B, C//K, 1, 1) --- (B, C, 1, 1) --- sigmoid 与原特征相…

Jmeter进阶使用指南-使用参数化

Apache JMeter是一个广泛使用的开源负载和性能测试工具。在进行性能测试时,我们经常需要模拟不同的用户行为和数据,这时候,参数化就显得尤为重要。此文主要介绍如何在JMeter中使用参数化。 什么是参数化? 参数化是一种将静态值替…

机器学习:自然语言处理上的对抗式攻击

Attacks in NLP 相关话题 Introduction 以前的攻击专注于图像和语音上,而NLP上的内容比较少。而NLP的复杂度跟词典有关系: NLP只能在embedding后的特征上加噪声 Evasion Attacks 电影的评论情感分类,将film换成films后,评论从…

制作立体图像实用软件:3DMasterKit 10.7 Crack

3DMasterKit 软件专为创建具有逼真 3D 和运动效果的光栅图片而设计:翻转、动画、变形和缩放。 打印机、广告工作室、摄影工作室和摄影师将发现 3DMasterKit 是一种有用且经济高效的解决方案,可将其业务扩展到新的维度,提高生成的 3D 图像和光…

STM32低功耗分析

1.ARM发布最新内核 2023 年5 月 29 日,Arm 公司今天发布了处理器核心:Cortex-X4、Cortex-A720 和Cortex-A520。这些核心都是基于 Arm v9.2 架构,只支持 64 位指令集,不再兼容 32 位应用。Arm 公司表示,这些核心在性能…

postgresql-常用日期函数

postgresql-常用日期函数 简介计算时间间隔获取时间中的信息截断日期/时间创建日期/时间获取系统时间时区转换 简介 PostgreSQL 提供了以下日期和时间运算的算术运算符。 获取当前系统时间 select current_date,current_time,current_timestamp ;-- 当前系统时间一周后的日…

Selenium - Tracy 小笔记2

selenium本身是一个自动化测试工具。 它可以让python代码调用浏览器。并获取到浏览器中加们可以利用selenium提供的各项功能。帮助我们完成数据的抓取。它容易被网站识别到,所以有些网站爬不到。 它没有逻辑,只有相应的函数,直接搜索即可 …

在Linux系统上用C++将主机名称转换为IPv4、IPv6地址

在Linux系统上用C将主机名称转换为IPv4、IPv6地址 功能 指定一个std::string类型的主机名称&#xff0c;函数解析主机名称为IP地址&#xff0c;含IPv4和IPv6&#xff0c;解析结果以std::vector<std::string>类型返回。解析出错或者解析失败抛出std::string类型的异常消…