Getting Started

Hadoop是一个用于海量数据统计分析的分布式计算框架,封装了分布式计算中比较困难的进程间通信、负载均衡,任务调度等模块,降低了学习门槛。在最简单的程序实现中,仅仅需要重写map和reduce方法,并实现任务提交逻辑。接下来,就让我们一起推开Hadoop的大门,走进大数据的神奇世界。

Hadoop的组成

Hadoop目前主要包括Hadoop1.x和hadoop2.x,两种版本差距较大,目前常用的是Hadoop2.x版本,所以主要基于Hadoop2.x进行讲解

主要组成模块

  • Hadoop Distributed File System(HDFS):分布式文件存储系统。
  • MapReduce:并行计算框架(可以自定义计算逻辑的部分)
  • Yet Another Resource Negotiator(YARN):另一种资源协调者(顾名思义,Hadoop1.x采用的不是这一个资源管理器)

MapReduce的工作机制


上图是MapReduce的工作原理,首先解释一下各个组成模块的作用。

  1. Job:由客户端向集群提交的一次计算任务。
  2. Task:集群的最小可执行单位(一个Job将会分为多个Task执行)
  3. ResourceManager(以下简称RM):管理整个集群的计算资源,主要用于为每一个Job分配计算资源(整个集群只有一个RM)
  4. Container:资源分配单位,一个Container包括一些CPU和存储资源
  5. NodeManager(以下简称NM):管理单台服务器的计算资源,类似RM的更细粒度实现(集群中每台服务器有一个NM)。
  6. ApplicationMaster(以下简称AM):监控每一个Job的执行情况,包括资源申请、Task调度等。

为了便于理解,下面有一个并不是太恰当的比喻。类似一个学生宿舍的构成,RM相当于宿舍管理处的大BOSS,而Task则相当于一个学生,大BOSS(RM)负责分配一片区域给某个班(Job)的学生(Task)住,而具体每个学生(Task)住哪儿,则由班主任(AM)和楼管(NM)商量(当然一个班级的学生还是可以住在多个楼里边的)。

接下来具体解释图中每一步的作用:

  1. client调用Job提交接口,Job被提交到集群上
  2. 为了便于标识Job,会首先向RM请求一个唯一ID,并同时检查Job中的输入/输出路径是否存在,如果输入路径不存在,则报错;如果输出路径存在,也会报错(注意别看错了)
  3. 获得唯一ID之后,就把Job所需资源(包括Jar包和输入路径信息)上传到HDFS中(因为分布式环境的原因,需要将这些资源上传到所有节点都能访问到的目录,即这里的HDFS)
  4. 在完成以上步骤之后,则可以真正提交Job到集群中。
  5. 启动一个Job的时候,首先需要启动该Job的AM,所以RM会主动分配NM上的一个Container(一个Container就是一个JVM),用于运行AM守护进程。
  6. 初始化Job,包括启动一些Job运行状态跟踪对象。
  7. 从HDFS中读取第3步上传的输入路径信息(包括输入文件所在的服务器节点信息,一份输入文件可能存储在多台服务器上)。
  8. 根据上一步的文件路径信息,向RM申请所需资源(Container),尽量保证Container和输入文件在同一台服务器上边,能够减小网络IO(即数据本地化)
  9. AM根据RM分配的Container,向Container所属的NM申请启动Task。
  10. Container在收到启动命令之后,会首先从HDFS下载Task所需Jar包和缓存文件等
  11. 最后就是Task的正式运行阶段了。

Hadoop基本原理相关推荐

  1. Hadoop基本原理之一:MapReduce

    1.为什么需要Hadoop 目前,一块硬盘容量约为1TB,读取速度约为100M/S,因此完成一块硬盘的读取需时约2.5小时(写入时间更长).若把数据放在同一硬盘上,且全部数据均需要同一个程序进行处理, ...

  2. 【大数据分析之Hadoop】一、Hadoop基本原理

    一.hadoop概念 Hadoop由两部分组成,一是负责存储与管理文件的分布式文件系统HDFS.二是负责处理与计算的MapReduce的计算框架. 二.HDFS 1.namenode 负责管理工作(管 ...

  3. Hadoop HDFS概述

    前言 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储.统一管理分布在集群上的文件系统称为分布式文件系统. HDFS,是Hadoop Distributed File System的简 ...

  4. Hadoop Streaming的基本原理与参数解析

    Hadoop Streaming原理介绍 Hadoop是基于hdfs和MapReduce的分布式框架.由于hadoop是基于java语言的,对于其他语言实现map reduce操作不太方便,因此出现了 ...

  5. 使用ToolRunner运行Hadoop程序基本原理分析

    为了简化命令行方式运行作业,Hadoop自带了一些辅助类.GenericOptionsParser是一个类,用来解释常用的Hadoop命令行选项,并根据需要,为Configuration对象设置相应的 ...

  6. Hadoop框架:MapReduce基本原理和入门案例

    本文源码:GitHub·点这里 || GitEE·点这里 一.MapReduce概述 1.基本概念 Hadoop核心组件之一:分布式计算的方案MapReduce,是一种编程模型,用于大规模数据集的并行 ...

  7. XGBoost4J-Spark基本原理

    XGBoost4J-Spark基本原理 XGBoost4J-Spark是一个项目,旨在通过使XGBoost适应Apache Spark的MLLIB框架,无缝集成XGBoost和Apache Spark ...

  8. hadoop学习之一

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储.Hadoop的框架最核心的设计就是:HD ...

  9. 《Hadoop基础教程》之初识Hadoop

    Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. <Hadoop基础教程> ...

  10. Hadoop:HDFS NameNode内存全景

    原文转自:https://tech.meituan.com/namenode.html 感谢原作者 一.概述 从整个HDFS系统架构上看,NameNode是其中最重要.最复杂也是最容易出现问题的地方, ...

最新文章

  1. Node.js进击基础一(5-11事件模块)
  2. 项目用druid,长时间不访问应用,再访问又连接不上了数据库了
  3. STC51-A/D和D/A
  4. 《Cracking the Coding Interview》——第10章:可扩展性和存储空间限制——题目1
  5. 在线CSV转XML/JSON工具
  6. quicksearch连接oracle,dos命令下连接oracle数据库表
  7. 联邦学习在光大科技的落地应用
  8. Java 自动装箱与拆箱(Autoboxing and unboxing)
  9. linux ps流程,Linux下PS命令详解 (转)
  10. 英制BSW 美制UNC 螺牙的理解
  11. 科普:千兆级LTE技术深度解析
  12. 【Qt】无法定位程序输入点 于动态链接库
  13. xpdf工具(PDF转图片工具)
  14. 洛谷P1003铺地毯
  15. java如何获取复选框选中的值
  16. java图形化界面编程之Swing
  17. walking机器人入门教程-硬件清单
  18. 蚂蚁金服面试及笔试(附自己的答案)
  19. TFTLCD 16位并口屏幕驱动
  20. 解决Ardupilot+gazebo+mavros在仿真状态下无人机能解锁,但是不能起飞的问题

热门文章

  1. JAVA代码翻译更新(第五篇)
  2. (转载)New poker 2总算放出新固件了!
  3. html用css美化表单登录页面
  4. 【机器学习】第一章 - 机器学习概论 - 周志华机器学习笔记
  5. linux flash文件系统,需要了解Linux flash文件系统
  6. 服务器pci-e硬盘,来一发干货,PCI-E SSD硬盘使用须知
  7. 文件(1):文本文件、二进制文件、文件编码
  8. qt mysql图形界面_qt数据库界面
  9. 2017cad光标大小怎么调_2017版CAD画直线时怎么设置光标处有显示长度和角度的?...
  10. 基于SpringBoot实现简易的单点登录系统(提供gitee源码)