巨量数据存取方法以及使用该方法的系统的制作方法_2

文档序号:9564636阅读:来源:国知局
其他具运 算能力的处理器),并且在执行程序码或软件时,提供之后所描述的功能。系统架构另包含 存储器250用以储存执行过程中需要的数据,例如,变量、数据表(data tables)等,以及储 存单元240,用以储存各式各样的电子文件,例如,网页、文件、音频文件、视频文件等。系统 架构另包含通讯界面260,让处理单元110可藉以跟其他电子装置进行沟通。通讯界面260 可以是局域网(local area network, LAN)通讯模块或无线局域网通讯模块(WLAN)。输入 装置230可包含键盘、滑鼠、触控面板等。使用者可按压键盘上的硬键来输入字元,藉由操 作滑鼠来控制鼠标,或者是在触控面板制造手势来控制执行中的应用程序。手势可包含单 击、双击、单指拖曳、多指拖曳等,但不限定于此。显示单元220可包含显示面板(例如,薄膜 液晶显示面板、有机发光二极管面板或其他具显示能力的面板),用以显示输入的字元、数 字、符号、拖曳鼠标的移动轨迹、绘制的图案或应用程序所提供的画面,提供给使用者观看。
[0055] 图3是依据本发明实施例的巨量数据储存节点的方块图,可实施于巨量数据储 存节点170_1、170_2至170」中之任一者。联合巨量数据集文件系统(ULDSFS,Unified Large Data Set File System) 310为一个中介层,使数据库前端模块160_1至160_i中 之任一者可忽略数据实际储存环境而使用统一的存取方法来请求信息。联合巨量数据集 文件系统310可依据数据库前端模块160_1至160」中之任一者的请求来操作可处理 巨量数据的不同类型的内部数据库(native database)320。联合巨量数据集文件系统 310拥有操作不同云端文件系统的API能力,换句话说,联合巨量数据集文件系统310可 依据数据库前端模块所请求数据的实际存放的云端文件系统类型,使用相应的API来存 取数据。举例来说,联合巨量数据集文件系统310可使用跨平台(cross-platform)的文 件导向数据库(Document-oriented Database) 331所提供的API来存取格状文件系统 (Grid File System)333,如MongoDB。联合巨量数据集文件系统310可使用分散式批次 数据库(distributed batch database) 351所提供的API来存取分散式文件系统353,如 Apache^; Hadoop。联合巨量数据集文件系统310可使用分散式即时数据库(distributed real-time database) 371所提供的API来存取分散式文件系统373,如Apache? Storm。
[0056] 图4是依据本发明实施例的Apache⑧Hadoop云端运算架构的示意图。举例 来说,服务器410为架构在云端运算环境中的主服务器(master server),主要包含二个 程序:变换(map)及归纳(reduce)。服务器430至450为架构在云端运算环境中的从服 务器(slave servers),而服务器460为架构在云端运算环境中的储存服务器(storage server)。本领域技术人员了解,主服务器410、从服务器430至450、储存服务器460,以及 以上任意组合亦可实现于同一部具运算能力的实体电子装置中,本发明并不因此而受限。 于变换程序中,主服务器120将一个巨量数据运算任务切分成小的子任务,并经由储存服 务器160分派给从服务器130至150进行处理。从服务器130至150中之每一者负责处理 被赋予的子任务,并将运算结果储存到储存服务器160中的指定位置。于归纳程序中,主服 务器120从储存服务器160搜集所有子任务的运算结果,并合并成为可供输出的形式。
[0057] 图5是依据本发明实施例的Apache? Storm云端运算架构的示意图。举例来说, 服务器510为架构在云端运算环境中的水龙头服务器(spout server);服务器520至550 为架构在云端运算环境中的闪电服务器(bolt servers),而服务器560为架构在云端运算 环境中的储存服务器。本领域技术人员了解,水龙头服务器510、闪电服务器520至550、储 存服务器560,以及以上任意组合亦可实现于同一部具运算能力的实体电子装置中,本发明 并不因此而受限。水龙头服务器510从储存服务器560读取巨量数据并将数据组织成数个 串流(stream)分派给闪电服务器520至540。闪电服务器520至540各自对接收的数据做 运算,并且将结果输出至闪电服务器550。闪电服务器550搜集所有的运算结果,并合并成 为可供输出的形式。
[0058] 图6是依据本发明实施例的巨量数据储存节点的方块图,可实施于巨量数据储存 节点170_1、170_2至170_i中之任一者。纠删编码模块(Erasure Coding Module) 630可接 收不同类型的联合巨量数据集文件系统611、613及615的数据写入请求,并依据欲写入的 数据产生错误检查与修正码(ECC, Error Check and Correction code)。图7是依据本发 明实施例的文件结构示意图。储存巨量数据的文件700可包含k个区块(segments) 710_1 至710_k,而每个区块包含m个数据区段(data fragments)以及η个同位元区段(parity fragments),其中,k、m、η为正整数。例如,区块710_1包含数据区段730_1至730_m以及 同位元区段750_1至750_n。其中,数据区段储存从联合巨量数据集文件系统611、613及 615取得的原始数据,同位元区段储存由纠删编码模块630产生的错误检查与修正码。纠删 编码模块(Erasure Coding M〇dule)630接着将数据区段及同位元区段的值传给安全检验 哈希模块(SVH, Secure Verification Hashing Module) 650。安全检验哈希模块650使用演 算法,例如安全哈希演算法(SHA, Secure Hash Algorithm),为每一个区段中计算一个哈希 值(hash value),并将哈希值储存于区段中。此哈希值可提升云端运算环境中变换(map) 或水龙头(spout)作业的效率。安全检验哈希模块650可另为每一个区段储存一个元标签 (meta tag),770_l至770_m+n,用以辨认写入数据的类型,例如制程、薪资、客户等。安全检 验哈希模块650通过文件导向数据库331、分散式批次数据库351或分散式即时数据库371 提供的API写入数据区段及同位元区段的值至相应的文件系统,例如格状文件系统333、分 散式文件系统353或373。
[0059] 当读取数据时,安全检验哈希模块650可检验从文件导向数据库331、分散式批次 数据库351或分散式即时数据库371所读取数据的正确性(integrity),并且当读取的数 据发生错误时,尝试修正。安全检验哈希模块650可依据联合巨量数据集文件系统611、 613及615发出的数据读取请求,通过文件导向数据库331、分散式批次数据库351或分散 式即时数据库371提供的API读取相应文件系统中的数据。当读取的数据没有错误或读 取数据中的错误已经修正,则安全检验哈希模块650传送原始或已修正的数据给纠删编码 模块630,使得纠删编码模块630可回复原始或已修正的数据给巨量数据集文件系统611、 613或615。此外,安全检验哈希模块650通过文件导向数据库331、分散式批次数据库 351或分散式即时数据库371所提供的API将修正后的数据写回相应的文件系统,并且传 送包含修正过区段中的元标签的事件给安全智能分析模块(SIA, Security Intelligence Analytics Module)。当收到一定数量的包含相同元标签的事件时,安全智能分析模块可发 布一份假的文件作为蜜罐(honeypot),用以吸引骇客攻击并精确定位(pinpoint)恶意软 件(malware)。或者,安全智能分析模块可使用机器学习 (machine learning)预测骇客未 来可能攻击哪一类型的数据,并采取相应的措施,例如修正安全漏洞(breach)等。当读取 数据中的错误无法修正,安全检验哈希模块650通知纠删编码模块630读取数据失败,使得 纠删编码模块630可回复巨量数据集文件系统611、613或615之前的存取请求失
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1