MapReduce和Yarn部署+入门

看的黑马视频记的笔记


目录

1.入门知识点

分布式计算:

概念:

两种模式:

MapReduce(分布式计算,分散汇总模式)

      概念 

执行原理

注:

Yarn(分布式资源调度)

概述

 Yarn架构(核心架构+辅助架构)

核心架构(与HDFS非常相似、主从架构)

辅助架构

2.部署

mapred-env.sh

mapred-site.xml

yarn-env.sh

yarn-site.xml

分发到另外两个节点

启动YARN

启动WEB UI页面

 3.提交自带MapReduce示例程序到Yarn运行

wordcount

求圆周率



1.入门知识点

分布式计算:

概念:

        多个计算机合作,共同完成一个计算手段

两种模式:

        1.分散-->汇总(聚合)(MapReduce就为该种模式)

        2.中心调度-->步骤执行(Spark、Flink)

        指挥小弟执行第几阶段、计算完交换数据

MapReduce(分布式计算,分散汇总模式)

      概念 

        MapReduce是“分散->汇总模式的分布式计算框架,可供开发人员开发相关程序进行分布式数据计算。

        MapReduce提供了MapReduce2个编程接口:

        Map(分散)功能接口提供分散功能,有服务器分布式对数据进行处理

        Reduce(汇总)提供聚合功能,将分布式的处理结果汇总统计

执行原理

        假设有四台计算机,文件分成三份,三台各自处理数据统计,一台汇总

注:

        MapReduce尽管可以通过JavaPython等语言进行程序开发,但当下年代基本没人会写它的代码了,因为太过时了。   尽管MapReduce很老了,但现在仍旧活跃在一线,主要是Apache Hive框架非常火,而Hive底层就是使用的MapReduce

Yarn(分布式资源调度)

概述

        管控整个分布式服务器集群的全部资源,整合进行统一调度,可以提高资源利用率

        MapRudece是基于Yarn运行的,YARN用来调度资源给MapReduce分配和管理运行资源

        所以,MapReduce需要YARN才能执行(普遍情况)

 Yarn架构(核心架构+辅助架构)

核心架构(与HDFS非常相似、主从架构)

与HDFS非常相似

        ResourceManager:整个集群的资源调度者(集群资源的管家),负责协调调度各个程序所需的资源。

        NodeManager:单个服务器的资源调度者(单个设备的管家),负责调度单个服务器上的资源提供给应用程序使用。

        容器类似于一个集装箱,程序运行在容器内,无法突破容器的资源限制  

辅助架构

        代理服务器(ProxyServer):给Yarn提供一定的安全保障

        JobHistoryServer历史服务器:统一收集到HDFS,由历史服务器托管为WEB UI供用户在浏览器统一查看

管控整个分布式服务器集群的全部资源,整合进行统一调度

2.部署

        在node1以hadoop用户做出以下改进:

mapred-env.sh

export JAVA_HOME=/export/server/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value><description></description></property><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value><description></description></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value><description></description></property><property><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/data/mr-history/tmp</value><description></description></property><property><name>mapreduce.jobhistory.done-dir</name><value>/data/mr-history/done</value><description></description></property>
<property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
</configuration>

yarn-env.sh

export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
# export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

yarn-site.xml

<configuration><!-- Site specific YARN configuration properties -->
<property><name>yarn.log.server.url</name><value>http://node1:19888/jobhistory/logs</value><description></description>
</property><property><name>yarn.web-proxy.address</name><value>node1:8089</value><description>proxy server hostname and port</description></property><property><name>yarn.log-aggregation-enable</name><value>true</value><description>Configuration to enable or disable log aggregation</description></property><property><name>yarn.nodemanager.remote-app-log-dir</name><value>/tmp/logs</value><description>Configuration to enable or disable log aggregation</description></property><!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>node1</value><description></description></property><property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value><description></description></property><property><name>yarn.nodemanager.local-dirs</name><value>/data/nm-local</value><description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description></property><property><name>yarn.nodemanager.log-dirs</name><value>/data/nm-log</value><description>Comma-separated list of paths on the local filesystem where logs are written.</description></property><property><name>yarn.nodemanager.log.retain-seconds</name><value>10800</value><description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>Shuffle service that needs to be set for Map Reduce applications.</description></property>
</configuration>

分发到另外两个节点

 node1配置完,为了省事直接分发给node2、node3

scp * node2:`pwd`/
scp * node3:`pwd`/

启动YARN

#一键启动YARN集群(可控制resourcemanager、nodemanager、proxyserver三种进程
):
$HADOOP_HOME/sbin/start-yarn.sh#启动历史服务器
$HADOOP_HOME/bin/mapred --daemon start historyserver jps

启动WEB UI页面

        在浏览器输入http://node1:8088

 3.提交自带MapReduce示例程序到Yarn运行

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

  1. MapReduce程序

  2. Spark程序

  3. Flink程序

wordcount

        这些内置的示例MapReduce程序代码,都在:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar文件内

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

#在/export操作
vim words.txt#填入
itheima itcast itheima itcast
hadoop hdfs hadoop hdfs
hadoop mapreduce hadoop yarn
itheima hadoop itcast hadoop
itheima itcast hadoop yarn mapreducehadoop 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.0.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://node1:8088/cluster/apps)

        查看结果:

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

查看到详细的运行日志信息

求圆周率

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar pi 3 1000#参数pi表示要运行的Java类,这里表示运行jar包中的求pi程序
#参数3,表示设置几个map任务
#参数1000,表示模拟求PI的样本数(越大求的PI越准确,但是速度越慢)

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

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

相关文章

VS Code配置Go语言开发环境

提示&#xff1a;首先这是一个新型语言&#xff0c;最好把vscode更新到最新版。 1&#xff1a;去官网下载Go语言编译器&#xff0c;之后配置到系统环境中&#xff0c;能看到版本就行。 2&#xff1a;创建一个文件夹&#xff0c;存放go的工具文件&#xff0c;我的在D:\GoFile\G…

【数据分析之Numpy】Numpy中复制函数numpy.repeat()与numpy.tile()的使用方法及区别

一、简介 numpy.repeat()与numpy.tile()都是Numpy库中的复制函数&#xff0c;用于将数组中的元素重复指定的次数。 numpy.repeat()函数接受三个参数&#xff1a;要重复的数组、重复的次数和重复的轴。 numpy.tile()函数接受两个参数&#xff1a;要重复的数组和重复的次数。 二…

前端技术的新趋势:React、Vue与Angular的比较

本文将比较当前最流行的前端框架React、Vue和Angular&#xff0c;探讨它们各自的优缺点&#xff0c;并分析它们在未来的发展趋势。 随着互联网技术的不断发展&#xff0c;前端技术也在不断演进。React、Vue和Angular作为当前最流行的前端框架&#xff0c;它们在开发效率、性能和…

使用AI大模型生成动漫人像

在线体验&#xff1a;点击【图像处理】即可使用 public static final String SELFIE_ANIME "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"; private static final String TOKEN_URL "https://aip.baidubce.com/oauth/2.0/token";…

HTTP协议:简单易用、可扩展的应用层协议

HTTP 协议是一种基于 TCP/IP 的应用层协议&#xff0c;是最常用的Web协议之一&#xff0c;用于客户端和服务器之间传递和交换数据&#xff0c;也常被称为超文本传输协议。在HTTP协议中&#xff0c;每一个TCP连接会产生两个并行的流&#xff0c;一个是传输客户端发送给服务器的请…

elasticsearch简单相关操作

查看索引 GET _cat/indices //获取所有的index GET account发送post不带id新建数据 POST user/_doc/ {"name":"bobby","compamy":"imooc" }如果post带id就和put一样的操作了&#xff0c; put是不允许不带id的 post _create 没有就…

【前端】vscode 相关插件

一 插件&#xff1a; 01、ESLint 用来识别并检查ECMAScript/JavaScript 代码的工具 02、Prettier 用来格式化代码&#xff0c;如.js、.vue、css等都可以进行格式化 03、Vetur 用来识别并高亮vue语法 04、EditorConfig 用来设置vscode的编程行为 二、安装依赖 01、…

干涉光学测试导论

1.用于光学测试的基本干涉仪 2。相移干涉术 3。专业光学测试 4。长波长干涉术 5。非球面试验 6。表面微观结构的测量 7。绝对测量 8。结束语 第1部分-光学测试用基本干涉仪 (1)双光束干涉 (2)菲佐干涉仪和特维曼-格林干涉仪 (3)测试平面和球面的基本技术 (4)球面的基本…

dart遍历树及查找

省市区三级联动后端返回用户选择字符串&#xff0c;前端遍历查找&#xff0c;本来想用递归。后来看了一篇文章&#xff0c;作者使用js写的。目前&#xff0c;我在写flutter项目所以该用dart。文章地址&#xff0c;作者讲解的很详细&#xff0c;不再赘述。 /** 深度遍历树查找*…

QT视频报错:DirectShowPlayerService::doRender: Unresolved error code 0x80040266

原因&#xff1a;QT使用windows默认解码器&#xff0c;如果没有安装有相关DirectShowService解码器&#xff0c;则运行程序也是没法播放视频的&#xff0c;必须安装相关directshow解码器&#xff0c;安装位置在你的qt安装目录&#xff0c;安装完重启电脑就可以解决了。 解决办…

如何获取旧版 macOS

识别机型支持的最新的兼容操作系统 识别 MacBook Air - 官方 Apple 支持 (中国) 社区网站&#xff1a;AppStore 无法找到macos cata… - Apple 社区 官网链接隐藏比较深&#xff1a;如何下载和安装 macOS - 官方 Apple 支持 (中国) 获取磁盘映像 Lion 10.7 https://update…

maui中实现加载更多 RefreshView跟ListView(2)

一个类似商品例表的下拉效果&#xff1a; 代码 新增个类为商品商体类 public class ProductItem{public string ImageSource { get; set; }public string ProductName { get; set; }public string Price { get; set; }}界面代码&#xff1a; <?xml version"1.0&quo…

我的创作纪念日365

机缘 提示&#xff1a;可以和大家分享最初成为创作者的初心 例如&#xff1a; 实战项目中的经验分享日常学习过程中的记录通过文章进行技术交流… 收获 提示&#xff1a;在创作的过程中都有哪些收获 例如&#xff1a; 获得了多少粉丝的关注获得了多少正向的反馈&#xff0c…

通过费用流中的贪心来保证计数正确性:P4249剪刀石头布

https://vj.imken.moe/contest/598718#problem/K 三元环数量尽量多&#xff0c;也就是非三元环数量尽可能少。非三元环的充要条件是存在一个点度数为2&#xff0c;而每条边可以给一个点一个度数&#xff0c;然后就变成了经典网络流问题。 但是&#xff0c;对于一个点&#xf…

计算机与自动医疗检查仓:技术革新引领医疗未来

计算机与自动医疗检查仓&#xff1a;技术革新引领医疗未来 一、引言 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;已经成为现代社会不可或缺的一部分。它们的应用领域日益扩展&#xff0c;从简单的日常任务到复杂…

数据结构--图

树具有灵活性&#xff0c;并且存在许多不同的树的应用&#xff0c;但是就树本身而言有一定的局限性&#xff0c;树只能表示层次关系&#xff0c;比如父子关系。而其他的比如兄弟关系只能够间接表示。 推广--- 图 图形结构中&#xff0c;数据元素之间的关系是任意的。 一、图…

The Great Common Factor

描述 输入N及N个正整数。N不大于1000。 输出这N个数的最大公约和最小公倍数 输入 输入N及N个正整数。N不大于1000。 输出 输出这N个数的最大公约和最小公倍数 样例输入 3 2 4 8 5 3 6 8 9 12样例输出 2 8 1 72 思路 gcd&#xff08;greatest common divisor&#xff09;计…

基于ssm的航班订票管理系统论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对航班订票信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差…

【PID学习笔记10】PID公式分析

写在前面 前面已经将控制系统的基础知识点过了一遍&#xff0c;从本节开始&#xff0c;将正式学习PID控制的相关知识&#xff0c;将会从基本的PID公式概念解释&#xff0c;再基于matlab仿真介绍十几种数字式PID的基本概念。本文重点讲解PID的经典公式。 一、连续与离散的概念…

基于PaddleOCR一键搭建文字识别和身份证识别web api接口

前言 通过这篇文章【基于PaddleOCR的DBNet神经网络实现全网最快最准的身份证识别模型】开发的身份证识别模型&#xff0c;还无法进行部署应用&#xff0c;这篇文章就已经开发好的代码如何部署&#xff0c;并如何通过api的接口进行访问进行讲解。 项目部署 以windows系统为例&…