设为首页 收藏本站
查看: 859|回复: 0

[经验分享] Hadoop2.0架构

[复制链接]

尚未签到

发表于 2018-10-28 15:40:04 | 显示全部楼层 |阅读模式
  Hadoop2.0主要包括两个module:
  HDFS – Hadoop File System。
  YARN – Yet Another Resource Negotiator 也称为MapReduce2.0,即MPv2。
  其中HDFS是底层的存储系统。不仅Hadoop的底层存储可以使用HDFS,其他分布式计算系统也可以使用HDFS作为底层存储系统。HDFS与在Hadoop1.0中有一些大的变化。而Hadoop2.0最重要的变化是新抽象出来的YARN,即独立的分布式资源管理与调度系统。YARN的出现主要为了解决Hadoop1.0中NameNode的瓶颈问题。了解Hadoop1.0的同学知道,在1.0中NameNode既是HDFS的主控服务器,也是JobTracker之所在,因此负载很高且容易单点失败。另外MapReduce作为分布式批处理计算范型,在2.0中没有什么改变。对Hadoop1.0不了解的同学建议先看看1.0的架构,这样有助于对2.0的理解:
  http://blog.csdn.net/onlyqi/article/details/50478997
  下面我们分别就HDFS和YARN做进一步讨论。
  HDFS
  首先我们来看HDFS的架构:

  大概描述是:HDFS仍然采用master/slave模式。主控节点仍然是NameNode,从节点仍然是多个DataNode。NameNode记录数据集的元数据。由于每个大文件load到HDFS时,都会被分割成默认64MB的数据块(Block),且这些数据块被分散到多个DataNode中做并行处理,因此NameNode需要管理一个文件分成了哪些Block,这些Block又分散在哪些DataNode上。这些映射关系就是元数据。当DataNode上的Block发生变化时,需向NameNode报告更新元数据。客户端操作数据时,需向NameNode查询元数据,在查询到数据所在的DataNode后,直接与DataNode交互,执行读/写操作。不同的数据块Block会有多个副本(主要是为了数据安全)。Rack是机架,一份数据的多个副本可能存在不同机架的服务器上。
  在Hadoop2.0中,HDFS有两个大的改变:

  •   1)HA方案
      即High Availability。Hadoop1.0中的NameNode为单节点,而second NameNode并非是NameNode的热备机。因此在2.0中增加了stand-by NameNode(SNN),而主节点称为active NameNode(ANN)。ANN和SNN共享第三方存储,是热备方案,可自动failover。
  •   2)NameNode联盟
      HA解决了单节点失败的问题,但是NameNode的扩展性差的问题仍然没有解决。由于NameNode在内存中管理元数据,因此由于内存限制,Hadoop1.0能管理的机器数最多为4000~5000台。同时在多租户环境下(即一个集群运行完全不相关的多个应用),单一的NameNode无法实现租户间的有效隔离。NameNode联盟使用多个NameNode来解决扩展性问题,可管理1w台机器以上的集群。
      NameNode联盟工作方式如下:将多个DataNode存储的Block的元数据分成多个Block Pool(并非是一对一的关系),而一个NameNode可以管理多个Block Pool。由此每个NameNode管理一部分元数据,且相互独立,不需要任何协调工作。
      另外目前不能单独安装HDFS。也就是说如果你想用HDFS,需要直接安装Hadoop。
  YARN
  在Hadoop1.0中NameNode同时运行JobTracker,其作用是将用户提交到Hadoop的job分解成map或reduce task,并在各个DataNode上并发运行这些task。每个DataNode上都运行一个TaskTracker进程,跟踪报告task的运行情况并向JobTracker汇报。Hadoop2.0中这些功能被抽象成一个独立的模块,称为YARN。YARN本质上是一个分布式资源管理与调度系统。它包括:
  唯一的资源管理器(Resource Manager)
  每个作业一个的应用管理器(Application Master)
  每个机器一个的节点管理器(Node Manager)

  The ResourceManager has two main components: Scheduler and ApplicationsManager.
  The ApplicationsManager is responsible for accepting job-submissions, negotiating the first container for executing the application specific ApplicationMaster and provides the service for restarting the ApplicationMaster container on failure.AM的功能和MPV1中的JobTracker类似。
  The NodeManager is the per-machine framework agent who is responsible for containers, monitoring their resource usage (cpu, memory, disk, network) and reporting the same to the ResourceManager/Scheduler.
  The per-application ApplicationMaster has the responsibility of negotiating appropriate resource containers from the Scheduler, tracking their status and monitoring for progress.
  YARN是一个典型的二级调度器。RM管理全局资源与调度,为一级调度器,将资源分配给每个Application Master。而Application Master为二级调度器,负责在不同的Node间分配协调资源,在container运行子任务。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-627645-1-1.html 上篇帖子: Hadoop集群(三) Hbase搭建 下篇帖子: centos7下hadoop3.0搭建文档
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表