本文主要介绍以下几个知识:
一、老的 hadoop框架存在的问题
二、yarn框架的优势
三、yarn框架中几个功能组件介绍
一:老的 hadoop框架存在的问题
首先我们要了解老hadoop框架中任务流程
1:首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框架的中心,他需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败、重启等操作。
2:TaskTracker 是 Map-reduce 集群中每台机器都有的一个部分,他做的事情主要是监视自己所在机器的资源情况。
3:TaskTracker 同时监视当前机器的 tasks 运行状况。TaskTracker 需要把这些信息通过 heartbeat 发送给 JobTracker,JobTracker 会搜集这些信息以给新提交的 job 分配运行在哪些机器上。
上述框架 简单明了,但是有利就有弊
1:JobTracker 是 Map-reduce 的集中处理点,存在单点故障。
2:JobTracker 完成了太多的任务,造成了过多的资源消耗,当 map-reduce job 非常多的时候,会造成很大的内存开销,潜在来说,也增加了 JobTracker fail 的风险,这也是业界普遍总结出老 Hadoop 的 Map-Reduce 只能支持 4000 节点主机的上限。
3:在 TaskTracker 端,以 map/reduce task 的数目作为资源的表示过于简单,没有考虑到 cpu/ 内存的占用情况,如果两个大内存消耗的 task 被调度到了一块,很容易出现 OOM(out of memory)。
这是几个主要问题,还有就是代码难读什么的(我还没有到那个级别,所以不知道)
二:yarn框架的优势
首先我在网上找了个比较明显的架构流程图
从上图可以看出,新的yarn框架中去掉了 jontrack和tasktrack,取而代之的是 resourceManager、APPmaster和 node mamager。新框架中将jobtrack的两大主要功能 监控和调度一分为二,分别放到单独不同组件中并且进行了分布式布局。
三、yarn框架中几个功能组件介绍
1:ResourceManager 是基于应用程序对资源的需求进行调度的 ; 每一个应用程序需要不同类型的资源因此就需要不同的容器。资源包括:内存,CPU,磁盘,网络等等。从某种意义上讲它就是一个纯粹的调度器,它在执行过程中不对应用进行监控和状态跟踪。同样,它也不能重启因应用失败或者硬件错误而运行失败的任务。
2: NodeManager 是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源使用情况 (CPU,内存,硬盘,网络 ) 并且向ResourceManager汇报。
3:ApplicationMaster 的职责是向调度器索要适当的资源容器,运行任务,跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。
总结一下这三个组件:首先 ResourceManager 是一个中心的服务,它做的事情是调度、启动每一个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。细心的读者会发现:Job 里面所在的 task 的监控、重启等等内容不见了。这就是 AppMst 存在的原因。ResourceManager 负责作业与资源的调度。接收 JobSubmitter 提交的作业,按照作业的上下文 (Context) 信息,以及从 NodeManager 收集来的状态信息,启动调度过程,分配一个 Container 作为 App Mstr
NodeManager 功能比较专一,就是负责 Container 状态的维护,并向 RM 保持心跳。
ApplicationMaster 负责一个 Job 生命周期内的所有工作,类似老的框架中 JobTracker。但注意每一个 Job(不是每一种)都有一个 ApplicationMaster,它可以运行在 ResourceManager 以外的机器上。
相关推荐
本篇文章将详细探讨在 Hadoop 和 HBase 集群管理中的几个关键知识点,包括处理各种节点宕机问题、添加新节点以及集群的重启过程。 首先,当 Hadoop 的 DataNode 宕机时,管理员应定位到 Hadoop 的安装目录,通过...
源代码主要分为以下几个部分: 1. **HDFS(Hadoop Distributed File System)**:这是Hadoop的核心组件之一,负责分布式存储。源码中包括NameNode、DataNode、Secondary NameNode等角色的实现,以及文件的读写操作...
Hadoop经历了几个重要的版本迭代: - **0.x系列版本**:这是Hadoop最早的开源版本,奠定了后续版本的基础。 - **1.x版本系列**:此版本主要针对0.x系列版本进行了一些重要的改进和错误修正。 - **2.x版本系列**:...
- `JAVA_HOME`通常在这几个脚本中被定义。 #### 2. HDFS配置 Hadoop Distributed File System (HDFS) 是Hadoop的核心组件之一,用于存储大规模数据集。为了确保HDFS能够正常工作,我们需要正确配置以下参数: - ...
解决这个问题的方法是获取与Hadoop 2.8.1版本兼容的`hadoop.dll`和`winutils.exe`。通常,这些文件可以从Hadoop的发行版中提取,或者从可靠的第三方源下载。在下载并替换这些文件后,确保它们位于Hadoop的`bin`目录...
在Hadoop 1.0.1版本中,主要包含以下几个核心组件: 1. **HDFS (Hadoop Distributed File System)**:Hadoop的分布式文件系统,它将大文件分割成多个数据块,并在集群的不同节点上存储这些数据块的副本,确保数据的...
在源码中,我们可以看到以下几个关键模块: 1. **HDFS**: 这一部分涵盖了Hadoop的文件系统,包括NameNode、DataNode和客户端API。NameNode负责元数据管理,DataNode则是数据的实际存储节点。通过阅读源码,我们可以...
这种应用通常涉及到以下几个关键组件和概念: 1. **HDFS(Hadoop Distributed File System)**:作为Hadoop的核心部分,HDFS提供了高度容错性的分布式文件系统,确保数据的可靠存储。用户可以通过HDFS上传、下载、...
首先,Hadoop的安装通常涉及到以下几个步骤: 1. **环境准备**:确保操作系统为Linux,因为Hadoop主要运行在Linux环境下。安装Java开发工具(JDK)并设置好环境变量,因为Hadoop依赖Java运行。 2. **下载Hadoop**:...
安装和配置Hadoop涉及以下几个步骤: 1. 解压文件到Linux系统,例如:`tar -xzf hadoop-2.8.5.tar.gz`。 2. 配置环境变量,如`HADOOP_HOME`,并将`bin`目录添加到`PATH`中。 3. 修改配置文件,根据集群需求设置HDFS...
YARN的工作流程可以概括为以下几个步骤: 1. 用户提交应用程序到ResourceManager,同时指定ApplicationMaster。 2. RM为应用程序分配第一个Container(资源容器)并通知NM启动AM。 3. AM与RM协商,申请更多Container...
- **解决方案**:通常建议只保留一处绑定,并确保整个系统使用相同的日志框架版本,以避免潜在的日志记录问题。 #### 2. **MapReduce和YARN配置** - **`mapreduce.jobtracker.address--local`**:指定了MapReduce...
4. **API兼容性**:此版本保持了与前几个版本的高度兼容性,确保用户可以轻松地升级而无需大幅度修改现有代码。 5. **性能提升**:通过对底层架构的优化,Hadoop-2.7.1在处理大规模数据集时表现出了更好的性能。 ##...
完成上述步骤后,可以通过以下几个方法来验证Hadoop集群是否正确安装和配置: 1. **查看Hadoop Web界面**:通过浏览器访问`http://master-ip:50070`和`http://master-ip:8088`来查看HDFS和YARN的状态。 2. **测试...
在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储和计算的能力。这个压缩包文件"had00p的简单配置文件"显然是为了帮助用户快速搭建和启动Hadoop环境。下面,我们将深入探讨Hadoop的核心组件、...
- 运行时环境:此版本提供了运行Hadoop作业所需的环境支持,包括配置管理、日志记录、安全管理等。 - I/O组件:Hadoop Common包含了一系列高效的I/O工具,如序列化框架、压缩算法和分块压缩输入流,优化了大规模...
- **构建MapReduce程序**:编写MapReduce程序一般包括以下几个步骤: - **定义问题**:明确需要解决的问题以及期望的输出格式。 - **设计解决方案流程**:规划数据的输入、处理和输出方式。 - **获取数据集**:...
本文将详细介绍Hadoop集群作业调度算法的基本概念、重要性以及几种常用的调度策略。 #### 二、Hadoop集群作业调度算法的重要性 Hadoop集群通常由大量的计算机节点组成,这些节点负责执行MapReduce作业。作业调度...
Ranger的核心架构由几个关键组件构成: 1. **RangerAdmin**:作为中心管理服务,RangerAdmin通过RESTful API提供了策略的创建、修改和删除功能。此外,它还包含一个直观的Web界面,使得管理员能够方便地管理和配置...