v2.6

文档

Laxcus大数据管理系统

第一章 基础概述

第二章 数据组织

第三章 数据存储

第四章 数据计算

第五章 数据构建

第六章 网络通讯

第七章 网络通讯

第八章 安全

第九章 容错

第十章 运行

总结

后记

参考文献

  • 内容

     当前的很多大数据处理工作,一次计算产生几十个GB、或者几十个TB的数据已是正常现象,驱动数百、数千、甚至上万个计算机节点并行运行也不足为奇。但是在数据处理的后面,对于这种在网络间传输、数量巨大、且发生频率日益增加的数据处理,需要大数据系统具备极高的稳定性和可靠性才能保证完成计算任务。这是一项极其复杂的工作,需要兼顾好数据处理的每一个环节,而在这些环节中,最底层的一环:数据存取,又基本决定了大数据处理的整体效率。

     在这一章里,我们将从数据的一些本质特征谈起,从多个角度去阐述数据存取设计,以及如何优化它们。

     Laxcus在实际的数据应用中,一个单位的数据尺寸往往有很大的随机性。小的可能是几十、几百个字节,大的可能达到数十,数百兆。当一台计算机的数据存储量达到TB规模,每天处理的数据量超过TB规模的时候,即使操作系统的文件系统支持这种单位的存储,也将使磁盘运行不堪重负,况且因此产生的磁盘碎片也是一种极大的浪费。

    针对这种情况,我们设计了一套新的数据存储流程,来保障高效率的数据处理。首先,将内存做为数据进入硬盘前的过渡,在内存开辟出一块固定尺寸的空间,此后的每一批数据,都被以流式的串行追加方式写入。这样即使当时有多个写入者,因为内存处理效率高和串行写入的原因,在写入过程中几乎没有延迟或者很小,也不会产生写入冲突。当内存空间的数据量达到规定阀值的时候,系统将内存空间关闭,然后执行一系列的数据优化措施,包括对数据的压缩和重组,最后将这块数据以文件形式写入磁盘。进入磁盘的文件,被称为“数据块”。

    当数据在内存驻留时,我们将它称为数据块的“CACHE”状态。数据写入磁盘后,我们称它为数据块的“CHUNK”状态。系统为内存数据空间设置的标准阀值是64M,这个参数或者可以由用户定义,最大不能超过4G。对于超大尺寸的内存数据空间,系统将视磁盘文件系统和可用内存空间而定,如果不能支持,将自动调整到合适的尺寸。

    为了能够区分内存和磁盘上的每一个数据块,系统会在每个数据块生成时,为它设置一个64位的无符号长整数,做为唯一标识它的编号。编号由Top运行节点提供,保证集群中唯一,不会重复。数据写入磁盘后,这个编号也成为数据块的文件名。

    依据上述对Data节点的定义,数据块只会保存在Data节点上,并且依从Data节点的主从关系。即所有主节点上的数据块都是主块(PRIME CHUNK),从节点保存从块(SLAVE CHUNK)。数据块的主从角色也会根据所属Data节点级别发生变化。一个集群上,同质数据块只允许拥有一个主块,其它都是从块。写数据的传入,由Call节点负责实施,向相关的Data主节点均匀推送,这样可以使这些Data主节点,在各自拥有的数据量上保持一个相对均衡的状态。

    系统不会在其它节点上缓存Data节点数据,这个设计是参考了大量实例后做的决定。经统计,单位时间内的网络计算,一个指令被重复执行的概率极低,这就连带影响到数据的重复命中率,使得缓存数据没有意义,并且缓存数据会占用大量宝贵的内存、硬盘空间,显得得不偿失。

    数据块的采用,很好地消除了磁盘碎片的现象,也减轻数据输入磁盘时的写处理压力。按照数据块标准的64M计算,数据写入磁盘的时间不会超过1秒。检索数据时,将按照优化规则从磁盘读取数据,这样也降低了数据输出过程的读处理压力。

回到顶部

联系方式

  • 服务电话 15210289253
  • 联系邮箱 laxcus@163.com
  • 版权所有 Laxcus大数据实验室    京ICP备17069115号

更多资讯请关注官方公众号