换一个角度诠释大数据处理:LAXCUS(1)
博客专区 > laxcus 的博客 > 博客详情
换一个角度诠释大数据处理:LAXCUS(1)
laxcus 发表于3年前
换一个角度诠释大数据处理:LAXCUS(1)
  • 发表于 3年前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

摘要: L​A​X​C​U​S​是​一​套​数​据​管​理​软​件​,​应​用​于​大​规​模​存​储​和​计​算​环​境​。​这​是​一​个​独​立​和​完​整​的​产​品​,​在​搜​索​引​擎​架​构​的​基​础​上​,​集​成​了​数​据​库​和​中​间​件​服​务​器​的​功​能​,​涵​盖​了​包​括​数​据​存​储​、​网​络​通​信​、​网​络​计​算​、​数​据​安​全​、​网​络​安​全​、​任​务​调​度​、​容​错​、​自​动​化​管​理​、​人​机​交​互​接​口​、​中​间​件​开​发​和​部​署​等​多​方​面​的​技​术​。​L​A​X​C​U​S​采​用​J​A...

LAXCUS:大数据管理系统


摘要

LAXCUS是一套数据管理软件,应用于大规模存储和计算环境。这是一个独立和完整的产品,在搜索引擎架构的基础上,集成了数据库和中间件服务器的功能,涵盖了包括数据存储、网络通信、网络计算、数据安全、网络安全、任务调度、容错、自动化管理、人机交互接口、中间件开发和部署等多方面的技术。LAXCUS采用JAVA语言编写,支持行/列混合存储,执行SQL和类SQL操作。产品布署使用快捷简单,遵循LGPL协议,开放源代码,运行在LINUX平台。


关键字: 集群、节点、存储模型、网络计算、安全管理、数据块、FIXP协议、DIFFUSE/CONVERGE算法、RPC、SQL


第1章 基础概述 

1.1 基于现状的一些思考 

1.2 产品特点 

1.2.1 以普通硬件为标准的动态可伸缩的容错处理 

1.2.2 弱中心化管理 

1.2.3 多集体群的协同工作模式 

1.2.4 以支持大规模添加/检索为主,兼顾小规模删除/更新的数据处理 

1.2.5 数据即时存取 

1.2.6 SQL

1.2.7 网络计算可编程接口

1.3 架构

1.3.1  TOP节点

1.3.2  HOME节点

1.3.3  LOG节点

1.3.4  CALL节点

1.3.5  WORK节点

1.3.6  DATA节点

1.3.7  BUILD节点

1.3.8  终端

第2章 数据

2.1 数据块

2.2 存储模型

2.3 行级锁

2.4 元信息

2.5 内存模式

2.6 快照和备份

2.7 完整性检查

2.8 数据优化

2.9 数据构建

2.10 主块冲突

2.11 负载检测

第3章 网络通信

3.1 FIXP协议

3.1.1 协议结构

3.1.2 命令结构

3.1.3 消息结构

3.2 通信方案

3.2.1 TCP通信

3.2.2 UDP通信

3.2.3 KEEP UDP通信

3.2.4 RPC通信

3.3 通信检测

3.4 通信服务器

3.5 全局时间

第4章 网络计算

4.1 DIFFUSE/CONVERGE算法

4.2 任务命名

4.3 任务实现

4.3.1 INIT阶段

4.3.2 FROM阶段

4.3.3 TO阶段

4.3.4 BALANCE阶段

4.3.5 COLLECT阶段

4.4 计算过程中的数据平均分配问题

第5章 安全管理

5.1 通信安全

5.2 账号安全

5.3 登录安全

5.4 数据块安全

5.5 行和列集安全

5.5 数组列安全

第6章 数据组织结构和SQL

6.1 标准

6.2 修订

6.2.1 数据类型

6.2.2 最大数据存储空间

6.2.3 表不可修改

6.2.4 取消视图

6.2.5 带WHERE语句的SELECT检索

6.2.6 不支持事务

6.3 扩展

6.3.1 网络计算CONDUCT语句

6.3.2 批量写入INJECT语句

6.3.3 其它扩展语句

6.3.4 列的压缩和加密

总结

后记


1章 基础概述

1.1 基于现状的一些思考

在过去十几年里,随着互联网络和各种新兴技术的快速发展,数字信息存量呈爆炸性增长之势。面对如此庞大的数据,如何实现高效的存储和计算,通常采用的提高CPU性能和改用更大容量磁盘的做法,已经变得越来越困难。在这种背景下,以网络和网络通信技术为依托,将分散在不同地理位置的计算机连接起来,组成空间上分散、逻辑上统一的数据存储和计算集群,成为当前实现大规模数据处理的主要选择。

集群计算的优势在于:它强调总体的处理能力,每台计算机做为单个节点参与计算过程,承担其中一部分计算任务,处理能力的强弱由全部节点共同决定。这种工作模式极大地发挥出网络的能量,使得单台计算机的处理性能变得不再重要。并且由于网络的连接,每台计算机随时可以加入或者撤离计算过程。这种类似计算机“即插即用”的功能,使得集群在运行过程中可以动态地调整自己的计算能力,赋与了集群计算近乎无限增长的可能,这是传统的集中式计算无法比拟的。同时由于不再追求单台计算机的处理性能,采购硬件设备时,可以根据实际应用需求酌情考量,为节约成本投入提供了选择的空间。

但是必须看到,正如硬币的两面一样,集群计算在提供了前所未有的处理能力的同时,也有着它与生俱来的许多问题。

首先由于连接的节点众多且分散,集群组织结构变得庞大。个体硬件品质良莠不一,网络线路、通信设备、计算机之间的连接和通信过程存在着不确定性,硬件设备内部、设备与设备、设备与外界环境,彼此互相交叉影响。在这样的条件下,保证每台设备完全稳定运行已无可能,解决集群组织不安定状态下的稳定计算成为首要问题。

另外,与集中计算不同的是,集群的数据处理是一个分散的计算过程。它的前端受理大量的请求任务,然后将这些任务分配到后端众多的计算机上去执行。一个高效并且合理的分布计算算法成为必须。算法需要解决的问题包括:任务分配、过程调度、故障容错、数据筛选、数据平衡、数据汇总等诸多环节的工作,最终形成与集中计算一样的处理结果。这个过程十分复杂。

数据管理益变得重要。在一个大规模的数据存储序列中,要保证完全正确的处理结果,任何单点上的数据都不能遗漏。这需要感知每个数据的存在,确定数据的物理位置,能够验证数据的可用性和正确性,即使在故障状态下,仍然需要确保计算过程的正常进行。这是对数据处理的基本要求。

更重要的是用户体验。没有人会喜欢一个复杂、繁琐、难以维护的系统。相反,一个人机界面友好、容易操作的产品更容易受到用户青睐。这需要在产品设计时做很多工作,综合考量产品的应用范围、处理效率、运营成本,以及用户的使用行为和习惯,做出必要的取舍,辅以技术实现,才能产生良好的使用体验。

当能够提供的硬件基础设施已经固定,各种应用需求还在不断发展和变化,如何适应这种变革中的趋势,以上种种,都是软件设计需要思考的问题。

1.2 产品特点

由于新的系统基于网络环境,需要适应数据在存储量和计算能力上的可调节的增减,这种运行中动态波动的数据计算,完全不同与传统的处理方式。一系列新的变化促使重新审视产品的定位设计,这些因素叠加在一起,最终形成了与往完全不同的结果。

1.2.1 以普通硬件为标准的动态可伸缩的容错处理

LAXCUS将集群设备的硬件参考标准定位为普通的个人计算机。这种设计有两个好处:1.将用户的硬件设备投入成本降到足够低;2.需要充分考虑硬件的不稳定性。在产品设计和实现中,硬件的不稳定由软件通过监控和故障冗灾机制来弥补恢复,任何设备和设备组件的失效被视为正常情况,而不是异常。设备故障通过自检报告和管理服务器追踪来感知。发生和发现故障后,故障点将被隔离,同时通知系统管理员。设备的故障恢复被视为新设备加入。故障设备中的数据通过多机冗余备份和复制机制来保证有效存在。

1.2.2 弱中心化管理

见图1.1,运行中的集群由节点构成。节点按功能划分为管理节点和任务节点,TOP和HOME是管理节点,其它都是任务节点。管理节点是整个集群的核心,承担着监督和管理任务节点作用。与强调管理节点的中心全责监管的理念不同,LAXCUS采取了弱中心化的管理设计措施。在LAXCUS集群中,管理节点只承担少量和重要的管理任务,任务节点在负责具体工作的同时,也需要监视自身的工作行为。这种自维持的工作方式,可以减少与管理节点的通信。带来优势就是:管理节点的压力减轻,能够腾出更多计算能力处理主要的任务,任务处理速度可以更快,服务器硬件配置因此可以降低。任务节点由于自维持的特点,既使在管理节点宕机情况下,也能维持一段时间的正常运行,直到再次发起对管理节点的请求。而这段时间内,管理节点可能已经恢复。弱中心化管理增强了集群的稳定性。

1.2.3 多集体群的协同工作模式

见图1.1LAXCUS集群结构图,其中包括两个HOME集群,TOP节点位于两个HOME集群上。这是一个典型的多集群结构模型,LAXCUS最显著特点之一,就是能够支持多个集群跨地域协同工作,这与单集群处理系统有着根本的不同。在传统的单集群系统中,管理节点承担着管理维护整个集群运行的工作任务,如果一味提高集群中计算机的数量,就会增加管理节点的处理压力,从而影响到集群的稳定运行。采用多集群协同工作方式后,将每个集群的计算机数量限制在一定规模,则能够有效化解这个可能成为瓶颈的问题另一方面,由于集群结构是数个子集群的组合,每个子集群可以分散在不同甚至遥远的地理位置,只要能够通过VPN或者互联网络实现连接,就能够实现更大规模的网络计算,成倍增加集群的数据处理能力,进一步提升工作效率。

1.2.4 以支持大规模检索/添加为主,兼顾小批量删除/更新的数据处理

在产品设计前,通过对大量数据操作行为的追踪和分析发现,数据操作主要集中在添加和检索阶段,删除和更新极少发生,其中检索行为又远远超过添加。这个现象促使我对数据存储设计产生了不同以往的定位,将整个存储方案重点围绕着检索展开,并据此制定了以下的执行策略:首先,为保证大数量高频度的检索操作,结合到计算机内的CPU、内存、磁盘各主要工作部件的性能,在保持数据的最大吞吐量上,流式处理效率最高。并行的数据写入在进入存储层面时,汇流为串行模式。检索操作的最终目标是磁盘(温彻斯特硬盘),磁盘检索受制于磁盘物理特性的影响,在数据计算过程中,严重拖滞了整体性能的发挥,为提高数据处理性能,需要在检索前对数据进行优化,如关联和聚凑,同时提供一批优化规则给用户,让用户能够按照自己的意愿去组织和检索数据。删除不改变数据本身,只对数据做无效记录。数据更新分解为删除和添加两步操作,其目的在于简化和内聚数据处理流程,同时避免发生多次磁盘读写现象。

1.2.5 数据即时存取

即时存取是衡量系统是否支持实时处理的关键性指标。其表现是数据一旦进入存储环境,立即生效并且可以使用,而不是之后的某一个时段才能生效和使用。由于实现了即时存取,LAXCUS可以保证在任何时间任何范围内对全网数据执行无遗漏的检索,达到与关系数据库同等的响应能力。即时存取非常重要,是许多关键业务处理必须满足的一项功能。

1.2.6 SQL

LAXCUS采用SQL做为系统的人机交互接口。采用SQL的原因主要有二:以关系代数为后盾的理论基础,优秀的类自然语言表述能力。关系代数将数据处理和处理结果的严谨性得以体现,类自然语言使得SQL灵活简单、易学易用,还有其丰富的功能、语法规范标准化、被普遍接受的程度、管理维护成本低,这些都是促成LAXCUS采用SQL的原因。更重要的是,在SQL发展的四十年里,其衍生出的各种数据设计思想和使用经验,影响延续到今天,即使在这个大规模数据处理时代,也是可以借鉴和弥足珍贵的。

但是大规模数据处理和以SQL为代表的关系数据库的应用需求毕竟有太多不同,所以本着扬弃的原则,LAXCUS保留了大部分SQL功能,取消了一些不合适大规模数据处理的定义,对其中一些定义中的元素和概念进行了调整,同时引入了一批新的概念和操纵语句。这些变化,都是为了适应大规模数据处理时代所做的抉择。

有关SQL的更多介绍,将在第6章阐述。

1.2.7 网络计算可编程接口

为了满足各种大规模数据计算业务需要,方便用户开发LAXCUS上运行的网络计算中间件程序,LAXCUS为程序员提供了一套经过抽象处理的网络计算可编程接口。接口将网络计算流程规范化,屏蔽了系统的服务部分,呈现给程序员的是一组可派生的接口类。这样就使程序员不必考虑网络计算过程中的任务分配和调度问题,只需要将精力集中到业务规则的编程实现上。完成后打包发布,剩下的工作,将交给集群去托管处理。用户可以通过终端,使用SQL和类SQL语句操作中间件运行。LAXCUS将集群环境下的大规模计算任务简单化,降低了程序员的开发难度和用户布署使用的压力,也减少了故障发生概率。为防止运行中的错误,LAXCUS还提供了一套错误检索机制,帮助快速定位和检查错误,尽可能不影响系统运行。 出于安全的考虑,这些中间件程序被限制在“沙箱”框架内工作,避免因为恶意破坏或者越权操作影响到系统正常运行。

1.3 架构

如图1.1所示,LAXCUS是一个由多种类型节点组成,通过网络实现连接,有任意多个子集群同时运行的数据存储和计算的集群。节点在这里是一个逻辑单位概念,每个节点都严格遵守设计规定的工作范围。理论上,一台物理计算机上可以拥有任意个节点,包括组织成为一个集群。节点从工作属性来看,具有双重身份,即是服务器又是客户端。当它做为服务器使用时,接受来自其它节点的任务调度;当做为客户端使用时,会向其它节点发送处理命令。节点按功能分为管理节点和工作节点。管理节点在所属集群内可以同时存在多个,但是只能有一个处于运行服务状态,职责是监督和控制所属范围内的节点运行。其它管理节点处于备用状态,监督这个运行节点的工作,当运行节点故障失效时,通过协商方式推选出一个新的节点,来接替故障节点继续实施监督和控制工作。工作节点可以有任意多个,数量上没有限制,视用户需求决定。各节点之间通过网络进行任务分配和调用,形成分散且协同的工作模式。软件层面上,节点实质是LINUX系统根用户下的一个进程,没有操作界面,在后台运行,启动时运行一个网络通信服务器保持与外界对话。

图1

1.3.1  TOP节点 

TOP是管理节点,是LAXCUS集群的基础核心节点,必须保证有效存在。其它类型的节点都是TOP节点的下属节点,TOP节点在其它节点前启动,在其它节点全部停止后才能停止。TOP节点的管理范围包括:接受、保存、检查、分配所属的用户登录账号、操作权限、数据库配置、网络资源,同时接受HOME节点和终端的注册,以及监测它们的运行。如上面所述,TOP节点做为管理节点要求有多个,但是通常要求一个运行节点和最少一个备份节点,因为TOP节点故障会造成整个集群的运行管理混乱,随时保持最少一个备份节点替代故障节点是必须的。TOP备份节点在备用期间,除了监测运行中的TOP节点,还会通过网络定时复制它的管理资料和运行数据。当运行节点发生故障后,协商选举出的新的运行节点会通知原来的HOME节点和终端,重新注册到它的环境下。

通常情况下,TOP节点只维持不多的HOME节点和终端/应用接口的通信,所以它的管理任务并不繁重。

1.3.2  HOME节点

HOME节点是LAXCUS子集群(也称HOME集群)的管理节点,是HOME集群的核心。对上,向TOP节点注册,接受TOP节点的管理;对下,接受所属集群节点的注册,监控和协调它们运行。LAXCUS中定义的工作节点全部运行在HOME集群内。HOME节点的管理范围包括:汇总工作节点的元信息、追踪工作节点的运行状态、检测网络故障和故障节点、控制数据块分发、协调集群负载均衡。与TOP节点一样,HOME集群也要求一个运行节点和最少一个备份节点,备份节点定时复制运行节点上的运行数据。

1.3.3  LOG节点

在整个运行过程中,LOG节点唯一的工作就是接收和保存其它节点发来的日志信息。对这些节点,LOG节点将根据它们的节点类型和节点地址建立目录,日志文件名是当前操作系统日期。日志中的主要信息是各节点的工作流程和运行错误,这些信息能够为分布状态下的数据追踪和分析、程序调试、定位和判断节点运行故障提供重要依据,所以LOG节点的工作虽然简单,但是非常重要。

1.3.4  CALL节点

CALL节点介于LAXCUS集群的中继环节,起到类似路由器的作用。对外,它接受终端和应用接口的调用;对内,它定时收集DATA、WORK、BUILD节点的运行信息,把终端和应用接口的指令转换成具体的操作任务,分派给DATA、WORD、BUILD节点执行,并且在中间协调网络计算过程,将最后的计算结果返回给任务发起方。CALL节点通常做为一个根用户进程独立运行,也可以是一个WEB服务器(如TOMCAT)的子进程,绑定在WEB服务器上运行。CALL还是集群中除TOP节点外,唯一与外界保持联络的节点。

1.3.5  WORK节点

WORK节点在整个运行过程中只做一件事:接受CALL节点调用,执行具体的数据计算。在实际应用中,WORK节点的工作量会很大,经常发生硬件部件使用达至极限的超载现象(如CPU的使用率达到100%)。如果这种现象持续存在,WORK节点会通知CALL节点,减少对自己的调用。

1.3.6  DATA节点

DATA节点提供数据存储服务,它的数据管理范围包括:建立、检查、回收数据空间,接受SQL操纵,添加、检索、删除、转发、检查、优化数据。DATA节点有“级别”概念,分为“主节点”(PRIME SITE)和“从节点”(SLAVE SITE),它们的区别在于数据处理范围不同。主节点具有“读/写”能力,负责数据的添加、删除、更新、检索、优化工作,从节点只执行读操作,承担检索和来自主节点的数据备份工作。网络计算的初始数据也从DATA节点上产生,数据来源一般是SQL SELECT的检索结果,或者根据业务规则生成的信息,这些数据将提供给后续的WORK节点使用。

1.3.7  BUILD节点

BUILD节点的工作是处理ETL业务(extrace、transform、load),它在执行前会收集DATA节点的数据,然后执行ETL处理。一般经过BUILD节点处理后的数据计算效率会更高。系统提供了一套API接口,支持ETL业务服务。用户需要派生接口实现自己的业务流程。与其它节点不同的是,BUILD节点只在收到用户或者管理节点的作业指令后才进行工作,通常情况下都处于空闲状态。

1.3.8  终端

终端是由用户驱动的界面输入接口,为用户提供SQL和类SQL语句的远程操控能力。 它能够在任何可以联网的位置运行,是一个纯客户端的概念。所以,从这一点严格地说,终端并不属于集群范畴。为适应不同操作系统和用户的使用习惯,LAXCUS提供了两种模式的终端:基于字符界面的LAXCUS Console和基于图形界面的LAXCUS Terminal,如图1.2和图1.3。图形界面的终端主要是考虑了WINDOWS用户的需求,而专业的LINUX用户可能更喜欢使用字符界面。两种终端的操作指令是完全一样的。 

图1.2 LAXCUS字符终端


 图1.3 LAXCUS图形终端

标签: LAXCUS 大数据
共有 人打赏支持
粉丝 0
博文 6
码字总数 8139
×
laxcus
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: