hadoop是一个开源的软件框架,是一个利用商业硬件处理和存储大型数据的软件。从下到上主要有五个主要的组成部分:

  • 集群,是一套主机(节点)组成的。节点可以以机架划分。这个是硬件级别的构架.
  • YARN构架 (目前为止的另外一个资源管理器)是一个负责提供计应用执行的时候需要的计算资源的框架(也就是cpu,内存等等). 两个重要的部分如下::

    • 一个资源管理器 (每个集群一个) 作为master. 资源管理器知道下面的每一个slave节点在哪里(机架感知) 以及他们这些节点有哪些资源可以使用. master运行若干服务。最重要的是资源调度器,资源调度器决定怎样分配资源.

    • 节点管理器  (一个集群有很多个r)是slave构架组成. 当节点管理器启动的时候,将自己注册到资源管理器,并且定时的相资源管理器发送心跳信息。每一个节点管理器提供自己的资源给集群。那么他的资源其实就是内存的大小,有多少个vcores。再运行时状态,资源调度器会决定如何使用这些资源:一个容器是这些资源的一部分并且被客户端用来运行一个程序。

  • HDFS是一个负责提供持久的,可靠的,分布式的存储框架。用来存储输入和输出(除开中间输出)。

  • 其他的存储系统:例如Amazon  S3.
  • MapReduce 框架是一个实现mapreduce算法的软件层

YRAN构架以及HDFS完全分开并且彼此独立。前者提供资源并且运行一个程序后者则提供存储。mapreduce则很多可以运行在YRAN顶层的框架之一。(虽然目前为止还是唯一的,但是到2016就不唯一了)

YRAN:启动应用


在 YARN中, 至少有下面三个部分:

  • Job Submitter (客户端)
  • Resource Manager (master端)
  • Node Manager (slave端)

应用的启动如下所示:

  1. 一个客户端提交一个程序给资源管理器
  2. 资源管理器分配一个容器
  3. 资源管理器联系相关的节点管理器
  4. 节点管理器启动容器
  5. 容器执行应用Master

应用Master负责单个应用的执行。他向资源调度器请求容器,执行特定的程序(例如java的main方法)。应用master知晓应用的逻辑因此是框架特特异的。mapreduce提供自己实现的应用master。


Charles 于2016-01-07  Phnom Penh



版权说明:
本文由Charles Dong原创,本人支持开源以及免费有益的传播,反对商业化谋利。
CSDN博客:http://blog.csdn.net/mrcharles
个人站:http://blog.xingbod.cn
EMAIL:charles@xingbod.cn

最新文章

  1. Github代理设置
  2. Beta版本——第二次冲刺博客
  3. 使用logrotate来进行轮换mysql的慢日志
  4. android 检查网络连接状态实现步骤
  5. (转)STL中set的用法
  6. SQL Server 2012 中 Update FROM子句
  7. ☀【jQuery 优化】jQuery基础教程(第3版)
  8. (转)怎么去掉Xcode工程中的某种类型的警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32
  9. php获取机器网卡的物理(MAC)地址
  10. mysql学习(五)-字段属性
  11. SetFocus、SetCapture和SetActiveView的区别
  12. 将[4,3,2,5,4,3]分割成[4,3,2]、[5,4,3]两个List的算法
  13. 201521123017 《Java程序设计》第9周学习总结
  14. 【转载】Ubuntu 12.04 LTS 中文输入法的安装
  15. 《Linux就该这么学》第十九天课程
  16. 前端-URL到页面显示的全过程
  17. Hibernate添加日志--log4j
  18. FHQ Treap及其可持久化与朝鲜树式重构
  19. CAS与LDAP集成
  20. How To: Implement a Major Upgrade In Your Installer

热门文章

  1. soj考试2
  2. Codeforces Round #563 (Div. 2) F. Ehab and the Big Finale
  3. 校园商铺-4店铺注册功能模块-1Dao层之更新店铺
  4. Oracle大数据查询优化
  5. day34 反射、面向对象内置方法:如__str__、面向对象的软件开发
  6. SQLite wrapper
  7. SpringBoot_03_SpringBoot对其他技术的整合
  8. js 当前时间和对比时间的比较
  9. JS 基本的介绍
  10. Java必备的几个开发工具,你会几个?