1.3 节点

  按照我们给Laxcus集群的设计定义,Laxcus集群被分为内部和外部两个网络环境。内部网络由集群的所有权人负责实施和管理,为保证集群能够有效可靠运行,需要遵守一系列的集群部署和管理规定。外部网络是用户负责范围,用户可以通过互联网或者VPN的方式,远程登录进入集群,然后通过交互命令传达到集群上,执行数据操作。这样一个布局,可以理解为集群层面的客户机/服务器结构。此外,如果集群组织者没有对外服务的需要,也可以将集群全部部署在内部网络里,成为一个纯粹的Intranet集群。

  如前所述,节点是Laxcus集群的基本单位,由前端节点、网关节点、工作节点、管理节点4类节点组成。理论上,一台物理计算机上可以部署任意多个节点,包括组成一个小型的集群。从节点的工作性质来看,它具有双重身份,即是服务器又是客户机。当它做为服务器使用时,它接受其它节点的命令请求和执行数据处理;当处于客户机状态时,又可以向其它节点发送命令。软件层面上,节点实质是操作系统下的一个进程,在后台运行,通过网络与外界保持联系。在Laxcus 2.0版本中,节点共设计有4类11种节点。对每一种节点,我们都规定了它们的工作内容和处理范围,以下将逐一进行介绍。

图1.1   Laxcus集群

1.3.1 Top节点

  Top是管理节点,在Laxcus集群的二级管理构架中,是整个集群的核心,必须保证绝对存在。集群中的其它节点都是Top节点的下属节点。按照Laxcus集群管理规定,这些节点的工作,必须在Top节点启动后启动,在Top节点停止前停止。因为Top的顶级管理节点身份,它节点只负责最关键的数据资源管理工作,包括用户账号的建立、删除、查询,用户操作权限的授权和回收,数据库资源的分配、释放、检查。Top有两个直接的下属节点:Home、Aid,Top要接受它们的注册,以及监测它们的运行状态。由于Top节点在集群中的重要性,它的故障将造成整个集群的管理混乱,所以在实际部署时,要求一个Top节点在运行的同时,还应该有最少一个Top备用节点。为了区分这两类节点,在Laxcus集群管理规定里,我们把接受和执行业务处理中的Top节点称为Master节点,备用的Top节点称为Monitor节点。Monitor节点的工作,除了监视Master节点运行外,还会同步备份它的数据资源和运行记录。当Master节点发生故障失效后,Monitor节点将启动故障切换过程,接手它的全部管理工作。如果有多个Monitor节点,它们会通过协商的方式,在它们中间推举一个Monitor节点成为新的Master节点。新的Master节点会要求原来的下属节点重新注册它的下面,来保证集群继续有效运行,同时新Master节点还把故障和切换过程通知集群管理员,由管理员来负责后续的故障计算机检查、维修工作。

  因为Top节点只负责数据资源管理,以及与Home、Aid节点保持少量的通信,所以通常情况下,它的工作负荷很轻。

1.3.2 Home节点

  Home是管理节点,在Laxcus集群二级管理架构中,它是子域集群的核心。对上,向Top节点注册,和接受Top节点的管理;对下,接受下属节点的注册,以及监督和协调它们的运行。在Laxcus集群里,工作节点全部运行在Home节点下面,并且弱中心化管理思想也主要体现在Home节点上。运行过程中,它只负责两项工作:追踪工作节点运行状态,收集和分析工作节点元数据。这些工作的数据量和产生的计算量都很小,不会对Home节点正常运行构成影响。与Top节点一样,Home也要求有一个Master节点和最少一个Monitor节点。当Master节点发生故障时,Monitor节点可以接替Master节点的工作。

1.3.3 Task节点

  Task是工作节点,注册到Top节点下面,为用户的分布任务组件提供存储、管理、转发服务。在实际使用时,Top会把它重定向给关联的Home节点,再经过Home节点结合自己的数据资源进行判断后,分派给自己的下属节点,让它们与Task节点进行数据交互。与Task节点进行直接数据交互的节点有Data、Work、Build、Call四种节点,它们将根据自己的业务需要,请求关联的分布任务组件,并把分布任务组件下载下来,部署在自己的节点上,为用户提供分布数据处理。同时,每一个与Task节点执行过成功交互的节点,Task节点会记录下它们的信息,当有新的分布任务组件上传后,Task节点会把这些新的分布组件,同步推送给这些节点,使得用户在发布分布任务组件后,集群可以立即部署和生效,省却了用户的等待时间。

  按照上述流程介绍,实质上,Task节点是跨子域集群存在的,我们为Task节点设计了一个Top/Home/Home下属节点的三层定向机制,每个Task节点可以为整个集群提供分布任务组件服务,而不必拘泥于某个子域集群的限制。管理员也可以按照自己的需要,设置规则,为不同的用户选择合适的发布空间,提高了管理灵活性。

1.3.4 Log节点

  Log节点是工作节点,注册到Home节点下面。为本集群的其它节点保存它们的日志数据,并提供格式化的日志检索服务。这样的工作内容使得Log节点成为Laxcus集群里最简单的一个节点。对于上传的日志,Log节点将根据每个节点的类型和地址,在磁盘上分别建立目录和文件,然后按照时间的格式排列保存下来。在Laxcus集群里,各节点上传的日志内容,通常是它们的工作流程和运行错误,这些信息为分布状态下的数据追踪和分析、程序调试、快速定位和判断节点运行故障提供了重要的依据。所以Log节点的工作虽然简单,但是非常重要,这也是为什么要单独把日志单独保存并且列为一类节点的原因。

1.3.5 Data节点

  Data节点是工作节点,注册到Home节点下面,提供基于磁盘和内存的数据存取服务。在Laxcus集群里,Data节点保存着整个集群的数据,是所有数据处理的源头。为了保证正确的数据处理,我们在Data节点上,为数据处理设计了一系列的可靠性保证,包括数据完整性、一致性要求,以及各种数据纠错和冗余能力。这些元素的加入,使得Data节点的复杂性,远高于集群中的其它节点,它在集群中的重要性,也仅次于Top、Home节点。

  另外Data节点与其它节点不同的是,Data节点具有“级别”概念,在运行时,被分为主节点(Prime Site)和从节点(Slave Site)两种类型。它们的区别在于,主节点具有“读写”能力,可以执行全部数据操作,包括添加、删除、更新、检索。从节点只拥有“读”的能力,即数据检索操作。这个特点在实际应用中是非常重要的,它为Laxcus集群的许多初始指标,如数据冗余、平衡计算、并行处理,提供了基本的保证,成为了Laxcus集群实施大规模数据处理的必要条件。

1.3.6 Work节点

  Work节点是工作节点,注册到Home节点下面,提供数据计算服务。在Laxcus集群中,Work节点承接来自Data节点的数据,大量重要性高、计算量大的数据处理工作都发生在Work节点上,这使得Work节点在整个Laxcus集群中,成为工作负荷最重的节点,也因此成为体现数据处理效率最关键的一环。

  为了获得更高的数据处理效率,在Laxcus 2.0中,Work节点通常会把有限的硬件资源集中起来,采用任务队列的手段和快进快出的原则,来解决几个最重要的数据计算工作,从而避免因为无谓的任务空耗硬件资源,而其它需要作业的任务又不能获得工作许可的问题。使得Work节点在应对大规模数据处理时,能够充分利用硬件资源,来加快数据计算速度,同时也提高了数据处理效率。

1.3.7 Build节点

  Build节点是工作节点,注册到Home节点,提供ETL服务。ETL是的提取、转换、装载(extract、transform、load)的简称,这个名词很好地描述了一种数据处理过程,是当前许多商业数据应用和互联网数据处理业务的重要组成部分,可以理解为数据计算的前奏和加速器。ETL的核心要旨是把各种数据,按照各自不同的需求,经过重新组织整理后,形成新的数据。这些新的数据,将成为后续数据计算的必要材料。

  在许多业务处理中,我们通常是采用ETL的方式,把一些数据组合工作从数据计算过程中分离出来,做成一个独立的单元,提前完成,来供后面的数据计算使用,以达到简化数据计算流程的目的。实际上,这种简化的数据计算工作,在很多大规模数据处理业务中使用时,不止是简化了数据处理流程,往往还获得了更高的处理效率。

1.3.8 Call节点

  Call节点是网关节点,注册到Home节点下,提供分布数据管理和任务调度服务。在Laxcus集群中,Call节点是一个“中间人”的角色,起到类似路由器的作用。对内,它收集Data、Work、Build节点的元数据,并把这些元数据按照各种要求重新组合,保存在内存里。对外,它只接受Front节点的注册和命令请求,同时具有对外屏蔽了集群内部拓扑结构的作用,防止可能由外部发起的网络攻击,即使因此发生宕机现象,也可以做到尽量避免波及到集群内部其它节点。当收到Front节点的命令后,它将按照命令的要求,为Front节点筛选集群内部的数据资源,和定位目标节点。在目标节点完成数据处理后,Call节点把数据结果返回给Front节点,从而完成一次数据处理工作。

  与Task节点一样,Call节点也是可以跨越多个子域集群的。至于是否需要跨越,则由注册的Front节点来决定。当Front节点需要的数据分别存在于多个子域集群时,那么Call节点将自动发生跨越子域集群行为。

1.3.9 Aid节点

  Aid节点是网关节点,注册到Top节点下面,提供账号和账号资源的管理服务。Aid节点唯一的服务对象是Front节点,所有类型的Front节点都要首先注册到Aid节点下面,才能获得进入集群和操纵数据的权力。Front节点发出的每一道命令,当通过Aid节点审核后,才能交给Call节点并转发到集群内部。与Call节点一样,Aid节点也对Front节点屏蔽内部网络环境,避免可能的网络攻击行为影响到内部集群运行。Aid节点这种布局和处理方式,具有分解数据业务负荷和保证集群安全的双重作用。

  在Laxcus 2.0版本中,Aid节点新增加事务处理能力,这样命令在获得核准前,为了防止命令之间可能存在的事务冲突,Aid节点给每个命令都增加了事务检查环节。

1.3.10 Front节点

  Front节点是Laxcus集群唯一的前端节点,由用户操作和使用,被要求注册到Aid节点下面,为用户提供进入集群和操作集群数据的能力。当Front节点成功注册到Aid节点后,Front节点会向Aid节点请求关联的Call节点地址,然后主动与它们建立联系,来获得执行命令的能力。

  在Laxcus集群里,Front节点被分为三种类型:字符界面的控制台、图形界面的终端、没有操作界面的驱动程序。前两种被用户直接使用,分别针对了Linux和Windows用户的使用习惯。用户在窗口上输入命令后,通过Aid、Call这两道网关节点的审查,被发往集群内部处理。后一种是嵌入到其它软件中使用(如Apache、Tomcat这类Web软件),命令由这些开放接口传递过来,经过Aid、Call节点审查通过,发往集群内部处理。图形界面的Front节点现在有三种语言版本:英文、中文、西里尔语,另外其它语种的图形版Front节点也在筹划中。

  三类Front节点允许同时并行存在,每一类又可以同时并发多组命令,所有命令都在Aid节点管理下,各自执行自己的数据处理工作,不会发生冲突。至于命令最大并发数,则由集群管理员分配,Aid节点负责执行。

图1.3.10.1 Front控制台

图1.3.10.2 Front终端

1.3.11 Watch节点

  Watch是工作节点,可以选择注册到Top或者Home节点下面,提供监视主域集群或者子域集群的服务。在Laxcus集群里,Watch节点是唯一完全由集群管理员操纵的节点,它也是Laxcus集群另一种拥有图形操作界面的节点,为集群管理员提供可视化的管理工作。集群管理员通过Watch节点,能够实时追踪和检查所有节点、所有用户的当前状态。当集群中的节点需要通知管理员,或者感知、捕获到运行故障时,也会通过网络传递给Watch节点,Watch节点将以文字、图像、声音的方式,提醒管理员加予关注,或者要求管理员去排除已经发生的故障。

图1.3.11 Watch节点图形界面

Laxcus大数据管理系统2.0(4)- 第一章 基础概述 1.3 节点的更多相关文章

  1. Laxcus大数据管理系统2.0(3)- 第一章 基础概述 1.2 产品特点

    1.2 产品特点 Laxcus大数据管理系统运行在计算机集群上,特别强调软件对分布资源可随机增减的适应性.这种运行过程中数据动态波动和需要瞬时感知的特点,完全不同与传统的集中处理模式.这个特性衍生出一 ...

  2. Laxcus大数据管理系统2.0(2)- 第一章 基础概述 1.1 基于现状的一些思考

    第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴 ...

  3. Laxcus大数据管理系统2.0(10)- 第八章 安全

    第八章 安全 由于安全问题对大数据系统乃至当前社会的重要性,我们在Laxcus 2.0版本实现了全体系的安全管理策略.同时我们也考虑到系统的不同环节对安全管理的需求是不一样的,所以有选择地做了不同的安 ...

  4. Laxcus大数据管理系统2.0 (1) - 摘要和目录

    Laxcus大数据管理系统 (version 2.0) Laxcus大数据实验室 摘要 Laxcus是Laxcus大数据实验室全体系全功能设计研发的多用户多集群大数据管理系统,支持一到百万台级节点,提 ...

  5. Laxcus大数据管理系统2.0(5)- 第二章 数据组织

    第二章 数据组织 在数据的组织结构设计上,Laxcus严格遵循数据和数据描述分离的原则,这个理念与关系数据库完全一致.在此基础上,为了保证大规模数据存取和计算的需要,我们设计了大量新的数据处理技术.同 ...

  6. Laxcus大数据管理系统2.0(9)- 第七章 分布任务组件

    第七章 分布任务组件 Laxcus 2.0版本的分布任务组件,是在1.x版本的基础上,重新整合中间件和分布计算技术,按照新增加的功能,设计的一套新的.分布状态下运行的数据计算组件和数据构建组件,以及依 ...

  7. Laxcus大数据管理系统2.0(8)- 第六章 网络通信

    第六章 网络通信 Laxcus大数据管理系统网络建立在TCP/IP网络之上,从2.0版本开始,同时支持IPv4和IPv6两种网络地址.网络通信是Laxcus体系里最基础和重要的一环,为了能够利用有限的 ...

  8. Laxcus大数据管理系统2.0(6)- 第四章 数据计算

    第四章 数据计算 Laxcus所有数据计算工作都是通过网络实施.相较于集中计算,在网络间进行的数据计算更适合处理那些数据量大.复杂的.耗时长的计算任务.能够实施网络计算的前提是数据可以被分割,就是把一 ...

  9. Laxcus大数据管理系统2.0(14)- 后记

    后记 Laxcus最早源于一个失败的搜索引擎项目,项目最后虽然终止了,但是项目中的部分技术,包括FIXP协议.Diffuse/Converge算法.以及很多新的数据处理理念却得以保留下来,这些成为后来 ...

随机推荐

  1. MySql数据库表类型MYISAM与InnoDB的区别

      InnoDB与Myisam的六大区别 MyISAM   InnoDB   构成上的区别:   每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型. .frm ...

  2. sql中 decode() 的用法

    sql中 decode() 的用法 SELECT ID,DECODE(inParam,'Param','value1' ,'value2') name FROM yytj2018 如果 inParam ...

  3. deep learning学习记录二

    接着我的微博继续八卦吧 微博里问了几个人,关于deep learning和cnn的区别,有不少热心网友给了回答,非常感谢.结合我听课和看文章的理解,我大胆大概总结一下: 在上世纪90年代,neural ...

  4. oracle远程导出/导入

    创建db_link,远程导出/导入.expdp/impdp Oracle数据库本地磁盘空间有限,或应用系统的需要,会通过远程的方式导出数据库.在oracle当中,exp远程导库的速度太慢,而expdp ...

  5. CentOS 7设置网卡开机自动启用

    一.查看网卡配置 root权限 [root@dbsyn ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue ...

  6. C++练习--创建Boat类和Car类(含友元)

    /* 定义Boat与Car两个类,二者都有weight属性, 定义二者的一个友元函数totalWeight()为外部函数, 计算二者的重量和. */ #include<iostream> ...

  7. PG进程结构和内存结构

    ​ 本文主要介绍PostgreSQL数据库(后文简称PG)进程结构和内存结构,物理结构将在后续继续整理分享. ​ 上图描述了PG进程结构.内存结构和部分物理结构的内容.图中的内容包含了两个部分: PG ...

  8. MySQL数据库常见报错原因

    1.启动数据库时报错 启动 # /etc/init.d/mysqld start Starting MySQL.Logging to '/application/mysql-5.6.36/data/m ...

  9. deepin15.7下使用apt安装mysql5.7不显示root密码设置的解决方法

    在安装MySQL的过程中,并没有要求设置root账户密码的步骤,导致很多人无法使用root账户登录 这个问题早已有解决方案,笔者在deepin15.7下安装也遇到同样问题,只是做一个简单的记录 解决思 ...

  10. 用 jQuery 实现表单验证(转载)

    jQuery 官方 API 地址: http://api.jquery.com/ 在线引用 jQuery:http://code.jquery.com/ ——选自<锋利的jQuery>(第 ...