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 mapreduce


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.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.mfbz.cn/a/257633.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux Mint 21.3 代号为“Virginia”开启下载

Linux Mint 团队今天放出了 Linux Mint 21.3 Beta ISO 镜像&#xff0c;正式版计划在今年圣诞节发布。 支持 在实验性支持 Wayland 之外&#xff0c;Cinnamon 6.0 版 Linux Mint 21.3 Beta 镜像还带来了其它改进&#xff0c;Nemo 文件夹管理器右键菜单支持下载相关操作。 Cin…

SpringBoot之分层解耦以及 IOCDI的详细解析

### 3.2 分层解耦 刚才我们学习过程序分层思想了&#xff0c;接下来呢&#xff0c;我们来学习下程序的解耦思想。 解耦&#xff1a;解除耦合。 #### 3.2.1 耦合问题 首先需要了解软件开发涉及到的两个概念&#xff1a;内聚和耦合。 - 内聚&#xff1a;软件中各个功能模块内…

机器学习---聚类(原型聚类、密度聚类、层次聚类)

1. 原型聚类 原型聚类也称为“基于原型的聚类” (prototype-based clustering)&#xff0c;此类算法假设聚类结构能通过一 组原型刻画。算法过程&#xff1a;通常情况下&#xff0c;算法先对原型进行初始化&#xff0c;再对原型进行迭代更新求解。著 名的原型聚类算法&#…

OneBlog Shiro 反序列化漏洞复现

0x01 产品简介 OneBlog 是一个简洁美观、功能强大并且自适应的Java博客。使用springboot开发,前端使用Bootstrap。支持移动端自适应,配有完备的前台和后台管理功能。 0x02 漏洞概述 OneBlog v2.2.2 及之前的版本存在 shiro 反序列化漏洞,该漏洞源于软件存在硬编码的 shir…

【数据结构和算法】盛最多水的容器

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;暴力枚举 2.2 方法二&#xff1a;双指针 三、代码 3.1 方法一&#xff1a;暴力…

递归实现归并排序与测试各类排序的性能

目录 基本思想 代码实现 时空复杂度 测试各排序性能 基本思想 将待排序的数组不断二分&#xff0c;直到每个子数组只包含一个元素或为空。然后通过合并操作将这些子数组逐步合并成较大的有序数组&#xff0c;最终得到完全有序的结果&#xff1a; 下面是递归版本的归并排序…

Linux(4)-LAMP

L-LinuxA-apache/nginxM-mysqlp-php 搭建LAMP以及使用discuz搭建论坛网站 安装apache yum install httpd -y // 安装service httpd start // 启动Apache通过netstat -tunlp查看apache运行的端口&#xff0c;然后打开虚拟机ip 80端口能看到以下页面 或者 安装Mysql centOS6…

Python Pandas 重复值处理(第12讲)

Python Pandas 重复值处理(第12讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

基于JAVA的农村物流配送系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理&#xff1a;2.2.2 位置信息管理&#xff1a;2.2.3 配送人员分配&#xff1a;2.2.4 路线规划&#xff1a;2.2.5 个人中心&#xff1a;2.2.6 退换快递处理&#xff1a;…

yolov5障碍物识别-雪糕筒识别(代码+教程)

简介 这是一个检测交通锥并识别颜色的项目。我使用 yolov5 来训练和检测视锥细胞。此外&#xff0c;我使用 k 均值来确定主色&#xff0c;以对锥体颜色进行分类。目前&#xff0c;支持的颜色为红色、黄色、绿色和蓝色。其他颜色被归类为未知。 数据集和注释 我使用了一个自收…

SpringCloudAliBaba篇之Seata:分布式事务组件理论与实践

1、事务简介 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中&#xff0c;一个事务由一组SQL语句组成&#xff0c;事务具有4个属性&#xff1a;原子性、一致性、隔离性、持久性。这四个属性通常称为ACID原则。 原子性(atomici…

开源学习项目推荐

文章目录 koodo-reader凤凰架构学习项目NPS 内网穿透客户端 koodo-reader 项目地址&#xff1a;https://github.com/koodo-reader/koodo-reader 介绍&#xff1a;一个开源的阅读器&#xff0c;阅读pdf也有目录&#xff0c;作为epub阅读器和pdf阅读器看资料挺好 凤凰架构 项…

前端视角看 Docker :在国内的基础配置教程(含国内镜像源)

引言 在国内使用Docker时&#xff0c;直接从Docker Hub拉取镜像可能会遇到网络速度慢的问题。配置国内的镜像加速器可以显著提升拉取速度。本教程将指导您完成安装Docker后的基础配置&#xff0c;特别是设置国内镜像加速器。 1. 安装Docker 确保您已在系统上安装Docker。根…

基于Tkinter制作简易的CAN bootloader上位机

文章目录 1.前言2.测试设备3.上位机3.1 参考资料3.2 上位机主要功能3.3 上位机发送流程 升级测试例程分享 1.前言 之前基于S32K144EVB和Tkinter编写了一个简易的串口bootloader上位机&#xff0c;链接如下&#xff1a; 基于Tkinter制作简易的串口bootloader上位机 (qq.com) …

归一化和标准化(Z-Score)

在处理数据过程中&#xff0c;通常会有不同规格的数据&#xff0c;比如年龄的取值范围是0-130&#xff0c;收入的取值范围是0-100000等等&#xff0c;如果不进行归一化或标准化处理&#xff0c;梯度下降每次走过的相对长度就不一样&#xff0c;就导致某个参数很快就找到了最优解…

如何预防[[MyFile@waifu.club]].wis [[backup@waifu.club]].wis勒索病毒感染您的计算机?

导言&#xff1a; 近期&#xff0c;一种新兴的威胁[[MyFilewaifu.club]].wis [[backupwaifu.club]].wis勒索病毒&#xff0c;引起了广泛关注。这种恶意软件通过其高度复杂的加密算法&#xff0c;威胁着用户和组织的数据安全。本文将深入介绍[[MyFilewaifu.club]].wis [[backup…

Linux软件管理rpm和yum

rpm方式管理 rpm软件包名称: 软件名称 版本号(主版本、次版本、修订号) 操作系统 -----90%的规律 #有依赖关系,不能自动解决依赖关系。 举例&#xff1a;openssh-6.6.1p1-31.el7.x86_64.rpm 数字前面的是名称 数字是版本号&#xff1a;第一位主版本号&#xff0c;第二位次版本…

【ArkTS】路由传参

传参 使用router.pushUrl()&#xff0c;router.push()官方不推荐再使用了。 格式&#xff1a; router.pushUrl({url: 路由地址,params:{参数名&#xff1a;值} )跳转时需要注意路由表中是否包含路由地址。 路由表路径&#xff1a; entry > src > main > resources &g…

使用vite搭建项目时,在启动vite后,浏览器显示页面:找不到localhost的网页

现象 在使用前端工具vite&#xff08;版本5&#xff09;&#xff0c;搭建vue3项目时&#xff0c;启动vite&#xff0c;浏览器显示页面&#xff1a;找不到localhost的网页, 起初怀疑是 未加参数 --host0.0.0.0,导致&#xff0c;后加上该参数后问题依旧 解决 将index.html页面…

Python框架篇(6):FastApi-配置管理

提示: 微信搜索【猿码记】回复 【fastapi】即可获取源码信息~ 在这一篇文章中,对fastapi框架和pydantic进行了升级&#xff0c;然后就是各种不兼容&#xff0c;以后再也不敢轻易升级.... pydantic&#xff1a;从 1.10.11升级到 2.5.2&#xff0c;这里有坑&#xff0c;里面有很多…