一、Yarn简单概况
Yarn为Hadoop资源管理系统;核心是将MapReduce V2 中的JobTracker分离,创建一个全局的ResourceManager和若干个针对应用程序的ApplicationMaster。其中ResourceManager负责整个系统的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。基本架构如下所示:
1)Yarn构成:主要由ResourceManager、NodeManager、container以及ApplicationMaster等组成;其中
ResourceManager控制整个集群并管理应用程序向基础计算资源的分配;
作用:处理客户端请求;启动和监控ApplicationMaster;监控NodeManager;资源的分配和调度。
NodeManager管理Yarn集群中的每个节点;
作用:管理单个节点上的资源;处理来自ResourceManager的命令;处理来自ApplicationMaster的命令。
ApplicaitonMaster管理Yarn内运行的每个应用程序实例;
作用:负责数据的切分;为应用程序申请资源并分配给内部的任务;任务的监控和容错。
Container是Yarn中的资源抽象;
作用:对任务运行环境进行抽象,封装CPU,内存等多维度的资源以及环境变量,启动命令等任务运行相关的信息。
2)Yarn工作流:当用户向Yarn提交一个应用程序后,
第一个阶段是启动ApplicationMaster;
第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,并控制它的整个运行过程,直到运行完成为止。
3)Yarn运行步骤:
二、ZooKeeper简单介绍
ZooKeeper是一种高可用、高性能且一致的开源协调服务,核心服务(分布式锁服务),还包括其他服务(配置维护、组服务、分布式消息队列、分布式通知/协调等),采用的协议是Zab协议。
实现方式:数据结构(Znode)+原语(对数据结构的操作)+watch机制(通知机制)。
1、Zookeeper数据模型Znode:
a)引用方式:Znode通过路径引用(同时是绝对路径);
b)Znode结构:兼具文件和目录两种特点。即像文件一样维护着数据、元信息、ACL、时间戳等数据结构,又像目录一样可作为路径标识的一部分,每个Znode包括三部分;stat:为状态信息,描述该Znode的版本,权限等信息;data:与该Znode关联的数据;children:该Znode下的子节点。
c)数据访问:每个节点存储的数据要被原子性的操作(即读操作将获取与节点相关的所有数据,写操作也将替换节点的所有数据);
d)节点类型:分为临时节点与永久节点。节点的类型在创建时即被确定,同时不能改变;
e)顺序节点:当创建Znode时,用户可以请求Zookeeper的路径末尾添加一个递增的计数。这个计数对于此节点的父节点来说时唯一的;
f)观察:客户端在节点上设置watch(监视器),当节点状态发生改变时将会触发watch所对应的操作。
2、Zookeeper的特点:
a)最终一致性:为客户端展示同一个视图;
b)可靠性:若消息被一台服务器接受,那么它将被所有的服务器接受;
c)实时性:Zookeeper不能保证两个客户端同时得到刚更新的数据,若要更新足心数据,应该在读数据之前调用sync()接口;
d)等待无关:慢的或者失效的client不可干预快速的client的请求;
e)原子性:更新只能成功或者失败,没有中间状态;
f)顺序性:所有的server,同一个消息发布顺序一致。
三、Zookeeper基本架构
三、solr简单介绍
Solr是一个独立的企业级搜索应用服务器,提供类型与webservice的API接口,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引,也可以通过http get操作提出查找请求,并得到XML的返回结果。
Solr对外提供标准的http接口来实现对数据的索引的增加、删除、修改、查询。在solr中,用户通过向部署在servlet容器中的solr web应用程序发送http请求来启动索引和搜索。Solr接受请求,确定要使用的适当solrRequestHandler,然后处理请求,通过HTTP以同样的方式返回响应。默认配置返回solr的标准XML响应,也可以配置Solr的备用响应格式。
Solr索引向servlet传递四个不同的索引请求:
Add/update允许向solr添加文档或更新文档。直到提交后才能搜索到这些添加和更新;
Commit告诉solr,应该使得上次提交以来所做的所有更改都可以搜索到;
Optimize重构Lucene的文件以改进搜索性能,索引完成后执行一下优化较好;
Delete可以通过id或者查询来指定。按id删除或删除具有指定id的文档,按查询删除将删除查询返回的所有文档。
四、Elasticsearch简单介绍:
Elasticsearch是一个基于lucene的搜索服务器,它提供一个分布式多用户能力的全文搜索引擎,基于Restful web接口,采用倒排序索引方式。
Elasticsearch是一个分布式可扩展的实时搜索和分析引擎。它时一个建立在全文索引引擎apache lucene基础上的搜索引擎,不仅包括了全文搜索功能,还可以
分布式实时文件存储,并将每一个字段都编入索引,使其可以被索引;
实时分析的分布式搜索引擎;
可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
以上关于hadoop相关的内容,是我在初步学习hadoop相关概念时,把网上相关资料整合在一起,方便自己理解。如果有什么问题,欢迎大家可以讨论指正!