yarn/zookeeper/solr/elasticsearch概况总结

一、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运行步骤:

  1. 用户向Yarn中提交应用程序(包括ApplicationMaster程序,启动ApplicationMaster的命令,用户程序等);
  2. ResourceManager为该应用程序分配第一个container,并与对应的Node-Manager通信,要求Container启动应用程序ApplicationMaster;
  3. ApplicationMaster向ResourceManager注册,用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源并监控它的运行状态,直到结束;
  4. ApplicationManager采用轮询的方式通过RPC协议向ResourceManager注册和申请资源;
  5. 一旦ApplicationMaster申请到资源后,便与NodeManager通信,要求它启动任务;
  6. NodeManager为任务设置好运行环境(环境变量、jar包、二进制程序等),将任务启动命令写到一个脚本中,并通过运行该脚本启动任务;
  7. 各个任务通过某一个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务;
  8. 应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。

二、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基本架构

  1. 每个server的内存中存储了一份数据;
  2. Zookeeper启动时,将从实例中选举一个leader(Paxios协议);
  3. Leader负责处理数据更新等操作(zab协议);
  4. 一个更新操作成功,当且仅当大多数server在内存中成功修改数据。

三、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相关概念时,把网上相关资料整合在一起,方便自己理解。如果有什么问题,欢迎大家可以讨论指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch 简介 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。elasticSearch 的使用场景 1、在海量数据前提下,对数据进行检索。比如:京东,淘宝等电商项目课程目标: 1. 了解企业级搜索引擎2. 安装elasticsearch 课程目录: 01 课程介绍02 elasticsearch 简介03 elasticsearch 使用场景04 安装elasticsearch 之前先安装jdk05 安装elasticsearch06 测试elasticsearch是否安装成功 07 安装kibana08 elasticsearch 基本认识 以及添加索引和删除索引09 elasticsearch 添加查询数据10 elasticsearch 修改删除数据11 elasticsearch 有条件的查询12 分词子属性fuzzy查询13 elasticsearch 过滤使用14 elasticsearch 排序与分页15 elasticsearch 如何查询指定的字段16 elasticsearch 高亮显示17 elasticsearch 聚合18 elasticsearch mapping 概念19 elasticsearch 的中文词库20 elasticsearch 中文词库安装测试21 elasticsearch 中文词库的使用案例22 elasticsearch 自定义词库配置23 安装nginx 配置中文词库24 测试elasticsearch 自定义中文词库25 搭建项目父工程26 搭建项目bean-interface-common27 搭建search 的service web 项目28 测试项目是否能与elasticsearch联通29 创建数据库并搭建首页30 数据上传功能的实现类完成31 数据上传控制器完成32 dubbo 介绍以及安装zookeeper33 将数据从mysql 上传到elasticsearch 中34 elasticsearch查询功能分析35 编写业务需求的dsl 语句36 编写输入参数返回结果集的实体类37 实现类编写38 编写实现类中dsl 语句39 返回集结果转换40 结果测试41 测试通过输入查询条件并将数据显示到页面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值