分布式计算框架学习笔记--太阳城娱乐工作原理-Hadoop-@太阳城手机版资讯
你好,游客 登录
背景:
阅读新闻

分布式计算框架学习笔记--太阳城娱乐工作原理

[日期:2018-01-25] 来源:博客园精华区  作者: [字体: ]

太阳城娱乐安装方法:http://blog.csdn.net/wangjia55/article/details/53160679这里不再累述)

太阳城娱乐是针对太阳城手机版设计的一个计算架构。如果你有几百TB的太阳城需要检索,你在控制终端敲下命令,计算机会向几百分布式台云服务器同时发布命令,使他们开始运行。并且把结果返回给你

太阳城娱乐分为大概念,

HDFS(分布式文件系统)+MapReduce(分布式计算模型)

HDFS 优点

适合大文件的存储,并且由备份策略,有比较好的容错和恢复机制,支持流式太阳城访问,一次写入,多次读取最高效

HDFS 缺点

不适合大量小文件的存储

不适合并发写入,不支持文件的随机修改(只能后续添加)

不适合随机读等低延时的访问方式

存储的三个概念:

block 是一个存储的太阳城块,太阳城娱乐的太阳城存储是以太阳城块为单位的(而非文件)(这样的有点是易于备份,而且简化了太阳城空间的设计)这里有点类似于磁盘的太阳城块,

NameNode 是一个管理节点,它管理文件系统的命名空间,存放文件太阳城(这个节点相当于一个枢纽,它的保护措施是,创建一个备用节点,NameNode和备用节点的内容时刻保持一致,当NameNode崩溃的时候,会马上启用另一个节点)

维护文件系统所有的文件和目录,文件与太阳城块之间的映射

记录着每个文件中各个块所在的太阳城节点的信息。

DataNode 是太阳城块的实际存储点,也是工作节点,存储并检索太阳城块,向NameNode时刻更新所存储的太阳城块的列表

文件的写流程:当用户需要写一个文件进去时候,先向namenode发送请求,然后namenode把分配的datanode1、datanode2、datanode3的地址和凭证构成的存储单(假设这个清单上要求太阳城备份在2和3节点上)返回给用户端,用户端开始对文件进行分块,然后把第一个太阳城块和相应存储单的发给datanode1,datanode1存储完了以后,会向namenode发送存储报告,并且把这个太阳城块的信息和相应的太阳城块存储单转发给datanode2来备份······datanode2再把太阳城块转发给datanode3(也就是说datanode会自动通知其他几个datanode完成太阳城的备份操作),相应的存储完以后,节点2和节点3也会发送相应存储报告。

hdfs是流式太阳城访问,也就是说,一个太阳城块一旦被写入,块内的太阳城就不能再做随机修改,如果要修改,删除这个磁盘块,然后再把整个块的太阳城重新写入,(每次访问也只能从块的首部开始访问)。

它不支持用户并发的写相同的文件(不想sql太阳城库文件一样,可以让多个线程并发的读或者写)

namenode会找距离最近的一个datanode节点的信息

文件的读流程也相似,这里不再累述

Hadoop默认的调度器是基于队列的FIFO调度器:

所有用户的作业都被提交到一个队列中,然后由JobTracker先按照作业的优先级高低,再按照作业提交时间    的先后顺序选择将被执行的作业。

优点: 调度算法简单明了,JobTracker工作负担轻。

缺点: 忽略了不同作业的需求差异。

Fair Scheduler(公平调度器):

1:多个Pool,Job需要被提交到某个Pool中;

2:每个pool可以设置最小 task slot(猜测最小的job数),称为miniShare

3:FS会保证Pool的公平,Pool内部支持Priority(优先级)设置,支持资源抢占(优先级)

hdfs的shell命令 ls,cat, mkdir,rm,chmod ,chown等

hdfs的文件交互命令 copyFromLocal,copToLocal,get,put

常用命令:https://www.cnblogs.com/gaopeng527/p/4314215.html

MapReduce计算框架

mapreduce 计算框架使用的是分而治之的概念,一个大任务分成多个小的子任务(map),执行完,从map端输出后,会进行网络混洗,经过shuffle层后进入reduce(在shuffle层混洗时,如果太阳城量较大,会造成很大的网络开销,故可以先按照key先进行一轮排序与合并,再开始网络混洗,这个过程就combine),合并结果(reduce)

2.0以前的框架的结构学习笔记:

这里面有两个概念JobTracker和TaskTracker,

JobTracker  对应于 NameNode

TaskTracker 对应于 DataNode

JobTracker介绍

首先用户程序(JobClient)提交了一个job,job的信息会发送到JobTracker,JobTracker是Map-reduce框架的中心,会先将任务拆分成多个map任务(也就是子任务),分发给map层的各个datanode,等计算完成以后,结果会被发送到 reduce层的各个datanode进行合并同时他还需要与集群中的机器定时通信heartbeat(也就是心跳协议),需要管理哪些程序应该跑在哪些机器上,需要管理所有job失败、重启等操作。

JobTracker后台程序用来连接应用程序与Hadoop。由JobTracker决定哪个文件将被处理,每个Hadoop集群只有一个JobTracker,一般运行在集群的Master节点上

TaskTracker介绍

TaskTracker是Map-Reduce集群中每台机器都有的一个部分,他做的事情主要是监视自己所在机器的资源情况。

TaskTracker同时监视当前机器的tasks运行状况。TaskTracker需要把执行状态和任务进度通过heartbeat发送给JobTracker,JobTracker会搜集这些信息以给新提交的job分配运行在哪些机器上。

MapReduce的容错机制

1重复执行,当一个datanode执行任务失败的时候,jobtracker会自动命令他重新执行,一般默认现需重新执行4次都失败的话,放弃这个节点,寻找一个和它存储内容相同的节点,继续执行,

2.推测执行,当一个datanode执行速度特别慢的时候,jobtracker则推测它出现了问题,jobtracker也会找一台和它存储相同内容的节点,来一起执行,谁先执行完,就终止另一台的执行。

新旧对比

yarn

yarn是太阳城娱乐2.0之后的版本的一个总的资源管理器,yarn中有三个概念,ResourceManager ,ApplicationMaster,和NodeManager

ResourceManager 负责调度资源,并且启动和监控ApplicationMaster和NodeManager,

ResourceManager在执行过程中不对task进行监控和状态跟踪(而是只监控ApplicationMaster和)。同样,它也不能重启因应用失败或者硬件错误而运行失败的任务。

ApplicationMaster为MapReduce类型的程序申请资源,并且分配给内部任务。负责太阳城的切分,监控任务的执行和容错,

NodeManager,管理单个节点的资源,处理ResourceManager的命令,处理来自ApplicationMaster的命令。NodeManager是每一台机器框架的代理,监控应用程序的资源使用情况(CPU 内存 磁盘 网络)并且向调度器汇报。

注意:yarn中jobtracker所负责的任务拆分成两个部分,资源的分配ResourceManager和对每个独立任务ApplicationMaster的管理:ResourceManager仍然运行在namenode上,负责监控所有datanode,而任务管理方面:每一个任务都会独立成立一个ApplicationMaster,这个ApplicationMaster不一定运行在哪个DataNode上,这样我们就可以设置用相对闲置的DataNode来运行ApplicationMaster。

Container是Yarn为资源分配提出的一个方案,当ApplicationMaster向ResourceManager申请资源时,ResourceManager返回的资源就被描述为container,一般而言,一个container只能用于执行一个task(一个job是一个总的任务,它会被分割成多个task,每一个task在一个datanode上执行),目前是一个框架,仅仅提供Java虚拟机内存的隔离,太阳城娱乐团队的设计思路应该后续能支持更多的资源调度和控制。

ResourceManager内部运行原理:

可参看:http://blog.csdn.net/zcc_0015/article/details/34921981

上图描述的6个步骤解释如下:

步骤1.ApplicationMasterLauncher与对应的NodeManager联系,启动ApplicationMaster。

步骤2.ApplicationMasterLivenessMonitor添加监控列表,启动对ApplicationMaster的监控列表,启动对ApplicationMaster的监控。

步骤3.ApplicationMaster启动后,向ApplicationMasterService注册,公布自己的URL,访问接口等。

步骤4.ApplicationMaster定期向ApplicationMasterService发送心跳,及时更新自己的信息,便于RM进行管理。

步骤5.当application job执行完毕后,ApplicationMaster向ApplicationMaster Service报告执行完成。

步骤6.ApplicationMaster Service 通知ApplicationMasterLivenessMonitor从监控列表中删除ApplicationMaster,释放资源

- ApplicationMaster存活监控

帮助管理活跃的及死的/不响应ApplicationMaster

map-shuffle-reduce工作原理(其中假设每个map中含有三个太阳城块,不同颜色的方块表示不同的分割区间。)

http://xxx.xxx.xxx.xxx:50070/查看太阳城娱乐各节点的运行情况,(其中xxx.xxx.xxx.xxx指的是所填的ip,必须是namenode的ip)

一个mapreduce作业中,partition的数量和reduce的数量和最终输出结果文件(如part-r-0001)的数量是相等的(小细节:在一个reduce中,所有太阳城都会按照key升序排列,故如果part输出文件包含的key值,则这个文件一定是有序的。)

太阳城娱乐的分布式缓存机制

在执行mapreduce时,可能mapper之间需要共享一些信息,如果信息量不大,可以将其从hdfs加载到内存中(每个datanode上的内存里会加载相同的共享太阳城),这就是太阳城娱乐的分布式缓存机制。(如果太阳城量太大可以将共享太阳城分批缓存重复执行作业)

太阳城娱乐生态圈

简要介绍,HBase是一个高可靠,高性能,面向列,可伸缩,实时读写的分布式太阳城库,利用hdfs作为文件存储系统,支持MR程序读取太阳城,存储非结构化和半结构化以及结构化的太阳城,column family 列族,多个列的集合,最多不超过三个

spark是一个基于内存的分布式太阳城手机版并行计算框架,spark也是MapReduce的替代方案,兼容hdfs,hive等太阳城源,spark抽象出分布式内存存储太阳城结构,弹性分布式太阳城集RDD,基于事件驱动,通过线程池复用线程提高性能





收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引��您的评论
  • 参与本评论即表明您已经阅读并接受上述条款