图 6.1 SciDB 系统架构 [1,2] 运行在每个节点上的 SciDB 进程共享访问一个逻辑上集中的系统目录数据库, 这个数 据库用于存储节点 分发数据 扩展用户定义等 这种设计相对于大多数无共享系统具有 相当少的紧密耦合, 并且受现代分布式计算系统设计的启发, 本系统采用了 Map/ Red

Similar documents

水晶分析师



,,,,,,, ;,, ;, ;, (, / ),, ;,,.,,,,,,,,,,,,,,,,, ;,,,,,,, 1, :,,, ;,,,, (, ),,,,, 1,,, (,, )

上海现代设计集团建筑协同设计平台研究与应用

01

01

# # # # # # # # #

137677_Eta_press Folder-cn用的.indd

????????


é ê

合集

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页


% %

»

Reducing Client Incidents through Big Data Predictive Analytics

中国社会科学 年第 期,,. % 1,,,. %,. % 2,, %, ;,,,, 3,,,, 4 ( ) ( ) ( ) (),, %, 5,,,,,,,,, 1 :,, ://.. / / - / /., 2 :,, 3 :, 4,,, 5 ( ),,, ( ),, ( ), ( ), ( );

白 皮 书 英 特 尔 IT 部 门 实 施 Apache Hadoop* 英 特 尔 分 发 版 软 件 的 最 佳 实 践 目 录 要 点 概 述...1 业 务 挑 战...2 Hadoop* 分 发 版 注 意 事 项...3 Hadoop* 基 础 架 构 注 意 事 项

业 务 与 运 营 Business & Operation (Transform) 加 载 (Load) 至 目 的 端 的 过 程, 该 部 分 在 数 据 挖 掘 和 分 析 过 程 中 为 最 基 础 的 一 部 分 一 个 良 好 的 ETL 系 统 应 该 有 以 下 几 个 功 能 1

燃烧器电子控制系统 目录 2

<4D F736F F D20B5E7D7D3C9CCCEF1D7A8D2B5C5E0D1F8B7BDB0B8D0DEB6C1D6B8C4CFA3A BCB6A3A92E646F63>

Conductix-Wampfler Inductive Power Transfer IPT 2


Microsoft Word 記錄附件

孙 蓝等 基于目标导向的研究生英语学习模式创新

Microsoft Word - 专论综述1.doc

附3

欧洲研究 年第 期

2013_6_3.indd


目錄

简 介

方正集团品牌传播日常监测

数据存储


F4


! %! &!! % &

培 训 机 构 介 绍 中 科 普 开 是 国 内 首 家 致 力 于 IT 新 技 术 领 域 的 领 航 者, 专 注 于 云 计 算 大 数 据 物 联 网 移 动 互 联 网 技 术 的 培 训, 也 是 国 内 第 一 家 开 展 Hadoop 云 计 算 的 培

!!

Microsoft Word - 简本--Only this one for distribution.docx

201316

第 期 丘志力等 从传世及出土翡翠玉器看我国清代翡翠玉料的使用


国际政治科学 ¹ ¹

Microsoft Word - 资源空间模型-New.doc

Microsoft PowerPoint - Big Data rc Sharing掃盲時間.ppt [相容模式]


《教育信息化前沿》

PureSCM enhances competitive advantage with an integrated approach to IT service level management

ebook204-2

! " # +(!"# $%& (!"!#$%& (&%!)*) +,)) )!#$%&+!$%-./! $*0! +,)) 1*23!% %*2$*23 1!%%*$*2,2#%!,) )4542*$ *0!2$*1*#,$*&2!! 1!%%*$*2 $#!"!)!" "

目 录 简 介.3 ` 体 系 结 构...4 数 据 层...5 数 据 连 接 器...6 Tableau Server 组 件...7 网 关 / 负 载 平 衡 器...8 客 户 端 :Web 浏 览 器 和 移 动 应 用 程 序...8 客 户 端 :Tableau Desktop..

第6章  数据库技术基础

欧洲研究 年第 期

Microsoft Word - sbs.doc

indd

中国与欧洲关系 年

合伙人制度的合理性与挑战

Azure_s

PowerPoint 演示文稿

二 政府事权划分标准的理论分析 一 公共物品受益理论

. ( ) (.).,,,. ( ) (.). ( ). ( ) (.). ( ) (.).. ( ) ( ) ( ) ( ) ( ) ( ) ( ).. ( ) (.). ( - ) ( ) (.)., ( ).,,,,.. ( ) ( ) ( ) ( ) ( )... ( )... ( ) (


目 录 1 不 断 开 发 工 具 以 管 理 大 数 据 Hadoop* 简 介 : 支 持 从 大 数 据 中 获 得 出 色 价 值 的 可 靠 框 架 大 数 据 技 术 的 行 业 生 态 系 统 在 关 键 组 件 中 实 现 平 衡...

表3:


大学计算机基础B.doc

FPGAs in Next Generation Wireless Networks WPChinese

Microsoft Word - 专论综述1.doc

/ / / / / /

CA Nimsoft Monitor Snap 快速入门指南

外国文学研究 年第 期

98

国际政治科学 ¹ º ¹ º

( ),,,,,,,, ` ', :,,,,??? :,, ( : ~, ) : ( ) :,, ( ),,,,, ~ :, :,,,,, ( ),,,,,,, :, :, ( )? :, ( ) :, :

研 究 方 向 信 息 内 容 识 别 理 解 网 络 安 全 态 势 感 知 数 据 存 储 管 理 融 合 安 全 检 测 防 护 网 络 攻 防 信 息 对 抗 信 息 处 理 架 构 数 据 挖 掘 深 度 学 习 信 息 检 索 舆 情 计 算 总 体 目 标 为 国 家 网 络 信 息


PowerPoint Presentation

材料与方法 研究地概况 生态价值研究方法

<4D F736F F D20D6D0B9FABDF0C8DAC6DABBF5BDBBD2D7CBF9D6B8B6A8B4E6B9DCD2F8D0D0B9DCC0EDB0ECB7A8>

交流活动

( ),, :1 : : ( ), 2 :, 3 : ( ), 4 : 5 : :, 6 :,,,,,,,,, :,,,.....,,,, 1, ;2,

国 家 图 书 馆 年 鉴 0 重 点 文 化 工 程 一 中 华 古 籍 保 护 计 划 0 年, 国 家 图 书 馆 ( 国 家 古 籍 保 护 中 心 ) 根 据 文 化 部 要 求, 围 绕 习 近 平 总 书 记 关 于 弘 扬 中 华 优 秀 传 统 文 化 系 列 讲 话 精 神, 对

2

普通高等学校本科专业设置管理规定

应 用 为 先, 统 筹 规 划 摘 要 : 总 体 上 看, 我 国 的 云 计 算 还 没 有 进 入 良 性 发 展 的 轨 道 目 前 的 形 势 是 政 府 比 企 业 积 极, 企 业 比 用 户 积 极, 大 企 业 比 中 小 企 业 积 极, 建 设 数 据 中 心 比 推 广 应

Slide 1

<4D F736F F D F6F70B4F3CAFDBEDDBCB0BAA3C1BFCAFDBEDDCDDABEF2D3A6D3C3B9A4B3CCCAA6C5E0D1B5B0E056312E332E646F63>

旅游科学

研究问题 自主学习中心 研究对象 研究方法 自主学习中心参与度以及学生对其认可度

安全救护教学设计 一 教学导入 教学过程设计 二 学情了解 三 学习新课 1. 指压止血法

Contents 介 绍 微 软 大 数 据 解 决 方 案 主 要 优 势... 3 身 临 其 境 的 洞 察 力, 无 论 您 身 在 何 处... 3 连 接 世 界 的 数 据 任 何 数 据, 任 何 规 模, 任 何 地 点.

Microsoft PowerPoint - 3_6thVOSD3rd0912_CN

貳 課 程 教 學 計 畫 一 教 學 目 標 本 課 程 旨 在 幫 助 學 生 瞭 解 我 國 目 前 面 臨 的 環 境 問 題 環 境 保 護 的 重 要 性 流 行 病 學 的 原 理 與 方 法 衛 生 行 政 及 醫 療 體 系 之 架 構 及 運 作 主 要 內 容 包 含 公 共

教授:

水权定义 法律规定的用户获得水权的方式 法律规定的几种水相关许可 水利经济 电话 传真

Transcription:

第六章科学大数据管理系统 6.1 概述 随着科学研究的发展, 各个研究领域如生物学, 天文学, 物理学等在研究和仿真过程中 都会产生海量的数据 海量数据上复杂的操作造成了科学大数据管理的困难 本章要介绍的 SciDB 和 Hama 两个科学大数据管理系统为管理海量数据提供了不同的抽象 其中 SciDB 针对科学数据中向量和矩阵对象较多 操作复杂的现象为分布式关系数据库提供了基于嵌套的 新的数据模型, 将向量或矩阵实现为数据模型直接支持的数据类型, 并为它们提供了丰富的 操作 ;Hama 针对机器学习 社会网络分析中的关键基本操作 图计算用并行编程模型 Mapreduce 提供了图上的聚类 最短路径计算等操作的解决方案 本章主要介绍针对科学大数据分析和处理的两个开源系统 SciDB 和 Hama 6.2 SciDB 系统介绍 6.2.1 整体介绍 近几年来,M. Stonebraker 等人在列存储的基础上, 结合科学研究所产生数据的结构 特点, 在 Paradigm4 公司的赞助下, 研发了一套科学数据管理和分析的系统软件, 其社区 免费版本名为 SciDB SciDB 是一个开源的科学领域的数据库, 旨在解决科学研究中数据 量大 数据世袭等科学问题, 与传统的 DBMS 不同, 它侧重于科学数据的分析操作, 设 计目标是与 R SPSS SAS S MATLAB 以及 IDL 等科学分析软件结合来分析管理科学数据 SciDB 适用于大规模阵列数据 (10 15 字节 ) [1], 如科学计算 : 天文学 遥感和温 度的建模, 生物信息的管理 商业应用 : 金融风险管理 web 数据分析 目前使用本系统 的领域有 : 商业公司, 如 e-commerce Pharma Insurance Computational Finance 等 ; 科学领域如 NCBI One Thousand Genomes project Lawrence Berkeley National Labs NASA Goddard EarthDB (Frew) 等 目前 SciDB 开发到了 11.7.5 版本, 还处于初始阶段, 由于其过于考虑软件的通用性, 使得其在实际应用方面还不理想, 但是对于科学数据的管理和分 析的相关系统的研究和开发具有一定的积极意义 6.2.2 系统架构 SciDB 的整体系统架构采用无共享的设计,SciDB 部署在服务器集群上的, 每个节点 都包含有处理器, 内存及本地存储模块, 通过标准的以太网及 TCP/IP 网络连接 每个物 理的服务器都有一个 SciDB 实例, 负责通信 查询处理和本地存储管理器存储 其 SciDB 架构如图 6.1 所示 62

图 6.1 SciDB 系统架构 [1,2] 运行在每个节点上的 SciDB 进程共享访问一个逻辑上集中的系统目录数据库, 这个数 据库用于存储节点 分发数据 扩展用户定义等 这种设计相对于大多数无共享系统具有 相当少的紧密耦合, 并且受现代分布式计算系统设计的启发, 本系统采用了 Map/ Reduce 模型 这种松耦合架构易于灵活配置和可靠性保证, 其中, 当查询访问的数据存储在离线 节点时, 物理节点的变换不影响 SciDB 实例 ; 增加节点相当于在系统目录中添加新的实例 此外, 这种系统依赖与其他软件来处理用户界面 数据可视化等等 SciDB 的主要设计包括 : 阵列数据模型,AQL, 磁盘上的对阵列的存储管理, 以及查 询执行 (1)Shared-Nothing 设计 对于 pb 级的数据规模,SciDB 必须能够运行在机器集群中的节点的集上, 是一种无共享系统 [3] 因此, 其沿用跨节点的数据分区的标准做法, 对块进行分区 查询执行可以 通过在一些节点集上并行的执行本地查询, 后跟一个收集 洗牌器, 为下一个本地操作 的集合重新分配数据 这非常类似于并行 RDBMS 的查询处理策略 为了支持最近邻查询的并行执行, 特征检测操作, 以及其他数据聚类操作,SciDB 让 块按照用户指定的数量重叠 (2)SciDB-R SciDB 中包含对 R 的接口, 使得 R 脚本可以访问 SciDB 数据库中的数据 [4] 因此,R 命令可以传递给 SciDB, 在 SciDB 中它们可以并行运行, 答案存储在 SciDB 中, 以便进 行进一步处理 随后 R 命令被同样地推向给 SciDB, 连同其他 R 数据所需的操作数 因 此, 这会产生一个可扩展的 R 版本, 并且可以直接通过 SciDB 提供标准数据管理服务 (3) 阵列数据模型如前所述,SciDB 适合处理阵列数据, 具有天然的阵列数据模型, 它的特性反映了共同的科学用例 SciDB 数据库被组织为 n 维阵列的集合, 每个 SciDB 阵列的单元包含一组元组的值, 并且元组中的每个值都与不同的属性名称相关联 因此, 用户可以访问的逻辑对象是一个 N 维的阵列, 而不是一张表 特别是, 阵列中的每一个单元的值是一个向量 维度可以是整数, 也可以是用户自定义的类型 ( 字符串, 浮点数, 维度, 经度等等 ), 例如, 使用 SciDB 数据定义功能制定的传感器数据阵列, 其定义方法如图 6.2 所示 : 63

图 6.2 SciDB 的传感器数据阵列创建方法 [5] 这个阵列有两个维度,SensorID 和 Timestep 每个单元中, 存在一个由 Windspeed, Temperatur, 及 Conditions 三个值组成的向量 对于每一个值, 我们必须指定对象的数据 类型, 缺省值为整型 表 6.1 显示了这个阵列中的部分数据 另外,SciDB 支持模式迁移, 因此属性可以被提升为维度, 维度也可以转变为属性 属性和维度也可以添加和删除 表 6.1 Array 样例 [5] (4)AQL AQL [6] 跟 SQL 很像, 对于前面所说的 Sensor_Data, 用户可以通过过滤操作找到感兴 趣的子集, 如图 6.3 所示 这在逻辑上创建了一个满足指定谓词的原始阵列的子集 实际上, 过滤器产生了一个与原始阵列 形状 相同, 但有更多的 无效 单元的阵列 相比之 下, 关系表过滤器只能产生较小的表 因此,AQL 的语义与关系语义有些不同 图 6.3 AQL 的过滤功能 [6] AQL 用户可以随意使用线性代数操作 图 6.4 显示了如何在 Temperature 和 Windspeed 之间的执行皮尔逊相关性操作, 同时也表明, 这是允许任何根据 from 子句解析阵列操作 的标准的类 SQL 结构 图 6.4 AQL 在 Temperature 和 Windspeed 之间的执行皮尔逊相关性操作 [6] (5) 存储管理 SciDB 的存储管理器的设计借鉴了一些商业 DBMS 的特征, 但新增了一些特征反映阵列的数据处理要求, 使得 SciDB 实现了一个分布式, 无重写的存储管理器 SciDB 阵 64

列中的数据可以不更新, 新的阵列数据可被追加到一个 SciDB 数据库或一个 SciDB 的查 询结果可以被写回到存储管理器 这种做法只能保证 ACID 特性中的 A 和 D [5,7] 阵列在磁盘上的存储 阵列按照固定的逻辑块大小存储在磁盘上 此外, 如果有多个单元值, 那么将存储多 个物理阵列, 每个对应一个单元值 因此, 存储块包含的值只有一个字段类型 这种存储 块的理想大小是几兆字节, 因此磁盘查找被分摊到大量字节的读取 为了处理阵列中的 无效,SciDB 为这种信息分配了额外的存储块 这个额外的块包含了大量的编码了的 无效 单元列表, 而数据块中没有为这样的数据单元空间分配空间 SciDB 执行器读取这个带外块来决定如何解释每个数据块的值 每个数据块包含一个有效 值列表, 按行和队长编码存储 这个编码方案的缺陷是不允许多种 null 类型 有可能在 执行时将各种 null 类型重新映射到运行时的值, 例如, 一些可以被映射到空, 而一些被 映射到零 同时,SciDB 通过执行向量处理来优化 CPU 性能 使用这种策略, 建立一个 子块 的管道, 穿过整体值的集合, 因此, 设置开销分摊到许多值的执行上 需要特别说明的是, 这种块存储方式支持简单的多维查询 例如, 一个数据按照 ( 经度, 纬度 ) 的形式存储着 美国人的住址信息 在 SciDB 中, 只需设置经度和纬度两个维度, 然后组块会自动的提 供一个二维的索引, 以便在这些数据上进行二维查找 而在 RDBMS 中, 我们需要选择一个主属性进行聚类, 使用两个物化的视图提供类, 或者尝试通过二级索引提供这种性能 在这种情况下,SciDB 明显拥有更快的查询和更简单的管理 无重写存储 SciDB 为每个阵列分配了一个特殊的维度, 称之为版本 这是一个整数维数, 始于零, 且单调增加更新直到数组被摧毁 插入和更新将新值存放到阵列的适当的版本中, 之前的 值保存不变 然后, 删除只需简单的在合适的时间, 将要删除的单元设为 无效 值 在物理层面上, 为块中的每个单元维护一个后向的 δ 值, 反映了大部分应用需要当前 版本的单元中的值的事实 AQL 允许任何用户在任何时间对数据库执行查询操作 因此, 它能支持时间轴 当执行历史查询时,SciDB 必须解码这一连串的向后 δ 沿着它们的方向, 用户可以删除或存档旧数据, 以便按照实际管理数据库存储 无重写存储更新语句的日志一起提供了数据的准确出处 这种方法还支持数据库审计, 提供法规遵从性, 以及重现结果 [7] (6) 查询执行 查询执行 [6] 面临所有的关系表查询执行时的所有挑战, 再加上由于阵列数据模型产生的问题 例如, 在 AQL 中, 可能存在三种情况的连接 : 一个阵列上的维度与另一个阵列上的维度 ; 一个阵列的维度与另一个阵列的单元值 ; 一个阵列的单元值与另一阵列的单元值 在第一种情况下, 如果两个阵列分块合适, 那么 SciDB 能够执行一个高效能的块与块间的连接操作 如果这两个阵列的分块不是很合适, 那么 SciDB 要根据一个的分块方 式对另一个重新分块 在第二种情况下,SciDB 根据第二个阵列的维度分块方式, 对单 元值的阵列重新进行维度划分 最后, 在第三个情况下, 两个阵列都要重新进行维度划分 实际上, 这种策略是 RDBMS 中常用的 merge-and-sort 方案的一种泛化形式 因为重分的 块和重划的维度, 在多维空间上进行了有效的排序 SciDB 与单独的 ScaLAPACK 或 ARPACK 相比, 在线性代数操作上具有巨大的优势, 65

也就是, 可以将分析和数据管理在相同的环境中进行混合和匹配, 而不必来回学习两个系 统或手动复制数据 6.2.3 系统特性 SciDB 具备如下特征 [3,5,7-10] : 无覆盖 (No Overwrite): SciDB 使用无覆盖存储管理, 阵列可以选择声明是否可以更新 历史数据采用压缩算法以节省空间 面向网格 (Grid Orientation): 适合部署在无共享的云环境或网格中 原位数据 ( In Situ Data): 为减轻数据库加载大规模数据的负担,SciDB 定义自己的 数据格式, 并为常用的外部数格式写适配器 只要有用户数据对应的适配器存在, 就 可以不通过加载数据直接使用 SciDB 集成处理过程 (Integration of the Cooking Process):SciDB 加载原始数据, 使用自定义 函数 (UDFs) 和数据操作处理 命名版本 (Named Versions): 用户对阵列的一部分执行特定的变更, 而保留其余部分 不变 数据起源 (Provenance): 可以满足数据推导可重复性的要求 搜索策略如下 : 对一个给定的元素, 寻找创建其的所有处理步骤和由其产生的所有数据 创建溯源查询语句并有效执行是难点 不确定性 (uncertainty): 科学领域的数据一般都是不精确的,SciDB 支持数据及其误 差 开源 (Open Source) 6.2.4 性能分析 (1) 弹性分割的性能科学实验中为了保证实验的正确性和可靠性, 科学家一般不舍弃数据, 但数据随时间不断增加, 这就要求一个科学的 DBMS 应支持弹性数据和弹性分割数据处理 文献 [7] 采用 MODIS 卫星图像数据库和 AIS 数据库研究不同用例下集群的弹性分割性能, 实验从两个节点开始, 以两个节点的增量扩展 案例研究包括增加 630 GB 数据到一个空数据库中超过 14 天 ( 按天增长 ); 另外, 加入 400GB 跨越 3 年的 AIS ship 数据, 分 36 个批次插入, 每个涵盖了一个月, 其性能结果如图 6.5 所示 图 6.5 (a) 数据采集和重组的弹性分割的性能,(b) 弹性分割方案的基准性能 [7] 图 6.5(a) 展示了在两个基准下各种分割方案在采集和重组阶段的性能 由图可以看出对于两个用例, 插入时间几乎是恒定的成本, 因为所有的方案都是先加载数据, 然后根据正 66

在评估的分割方案分摊到集群 三个扩展的再分配的代价是不统一的 在这个空间中追加操作占明显优势, 因为它没有重新平衡数据, 而是在将来切换时增加新的节点 kd 树和散列分割均表现良好, 因为它们逐渐只写入新设置的节点重新组织数据 轮循和一致范围全局重新分配数据, 因而有较高的时间要求 采用每个主机负载的相对标准偏差 (RSD) 评估方案的存储分布的均匀性, 并且百分数示于图 6.5(a) 图 6.5(b) 示出了两个用例在负载周期内基准查询中的查询性能, 图中 SPJ 查询为基准查询 科学的基准测试显示, 对于阵列为中心的工作负载而言, 集群数据访问很重要, 如追加表现不佳, 而 kd 树在两个工作负载子下具有最佳性能, 因为它有利于群集读取, 并且被适度倾斜 总之, 对于阵列工作负荷的分割,kd 树是最有效的, 因为它打破了热点, 并有效地迎合空间查询 ; 对于数据加载和重组, 追加的方法是最快的, 但对于数据库中严重不平衡的存储查询的执行, 这个速度是有代价的 总的来说,SciDB 的弹性分割数据的性能还是能满足复杂大数据分析的 (2) 查询性能复杂科学计算, 如地球科学 基因学 射电天文学等在做复杂分析是很少有连接匹配成对, 在通常情况下会呈现出偏斜, 因此,SciDB 开发了 n-way shuffle 连接和 load balancing shuffle 连接, 它可以在平衡各个节点的查询负载与完成连接的所需网络通信量之间高效的做出权衡 文献 [7] 验证了 SciDB 对于复杂科学数据的查询性能, 采用 2 维 100GB 的合成阵列评估了合并连接, 这个阵列共享维度和逻辑块的大小 改变输入数据的偏离程度, 并假设均匀情况下所有块的大小相同 对于其他情况, 每个节点分割遵循 Zipfian 分布, 其中参数表示输入的偏度, 值越高表示这个数据分布越不平衡 图 6.6 示出了 SciDB 对于复杂科学数据的查询性能, 其中, 测试用例采用数据对齐 (data alignment,da) 时间和连接执行 (join execution,je) 图 6.6 具有不同偏斜和数据移动策略的连接时间 [7] 由图可知, 对于均匀用例, 所有算法的性能相同, 当倾斜度 α=1, 负载平衡器转移相同数量的数据作为 n-way shuffle, 但它在连接执行中具有更好的并行性, 略占优势 当倾斜的增加,n-way shuffle 显著优于其它技术, 数据移动较少 当 α 3 时, 始终有 3 倍的速度提升 (3) 可视化效果目前, 用于大数据管理的分析系统大多依靠于数据库, 例如, 许多流行的数据分析系统, 如的 Tableau Spotfire R 和 Matlab, 正倾向于与数据库管理系统一起使用 此外, 分布式数据管理和分析系统, 如 Hadoop 具有扩展为数据可视化系统的潜力 不幸的是, 许多信息可视化系统不能实现从小型数据集到大规模数据集的无缝过度 为了实现大数据的可视化分析, 在 SciDB 的基础上已经开发了一种灵活 三层可扩展的交互式可视化系统 ScalaR, 如可以使用 SciDB 可视化 NASA MODIS 卫星图像数据 LSST 天文数据和世界各地的地震记录 67

文献 [7] 采用 NASA MODIS 卫星图像数据, 采用可视化的归一化积雪指数 (normalized difference snow index,ndsi) 计算整个世界不同的输出大小 ( 数据分辨率 ), 其效果如图 6.7 所示 图 6.7 ScalaR 产生的 Heatmap 可视化效果图 [7] 图 6.7 是 ScalaR 产生的 Heatmap 可视化效果图, 使用聚合来减少存储在 ndsi 阵列的 NDSI 数据集, 暗区代表大量的积雪 图 6.7(a) 示出了 NDSI 阵列的一个基线的可视化, 基线查询用时 5.68 秒 该 NDSI 阵列是一种高密度 SciDB 阵列, 含大约包含大约 600 万个数据点 要执行聚集约简, 可以使用 SciDB 的 regrid 操作将阵列分成相等大小的子阵列, 并且通过平均阵列值返回子阵列概要 图 6.7(b) 至 6.7(d) 是这四个约简查询的可视化效果 最小的约简 10 万个数据点, 最快的用时 1.35 秒, 其他的约简与基线是可比的 并且由图可知, ScalaR 产生 NDSI 数据的小聚集体的摘要非常快, 但所得到的图像是模糊的, 由于结果中数据点的数量少 然而, 对于 10 万个数据点的分辨率, 生产的可视化效果非常接近原始的有秩序的近似值 (4) 系统的可扩展性 SciDB 具有高度可扩展性 [8] : 为了满足用户要求的非业务数据类型 ( 复杂数据 误差值等 ),SciDB 提供 Postgres 样式的用户自定义数据类型 (user-defined data type,udt) 和用户自定义函数 (user-defined function,udf), 这些是在最先进的现代的 SQL DBMS 产品类型的扩展 用户能够将自己领域特定的数据类型添加至 SciDB 实例, 并且这些新的类型将与 SciDB 自身类型和运营商阵列互操作 此外,SciDB 将支持一类新的可扩展的操作,SciDB 鼓励用户用 C/ C++ 添加自定义的数组运算符, 实现用户自编的非常具体的算法适用于存储在 SciDB 与 SciDB 内置的运营商自建的一些预处理相结合的数据 6.2.5 系统对比 SciDB 不同与传统的关系数据库软件, 它侧重于科学数据的分析操作, 设计目标是与 R MATLAB 以及 IDL 等科学分析软件结合来分析管理科学数据 目前 SciDB 的研发还处于初始阶段, 由于其过于考虑软件的通用性, 使得其在实际应用方面还不理想, 但是对于科学数据的管理和分析的相关系统的研究和开发具有一定的积极意义 [1-10] 到目前为止, 学术界和工业界和其他各界都没有对 SciDB 与其类似的系统进行明确的性能比较, 不过其声称, 在科学数据处理这类问题上, 他们的处理速度比传统的 RDBMS 快 100 倍以上 [1] 68

6.3 Hama 系统介绍 6.3.1 整体介绍 Hama 是 Apache 软件基金会的一个顶级开源项目, 属于 Hadoop 项目中的一个子项目 该项目起源于 2008 年 5 月 19 日, 目前最新的版本是 2014 年 03 月 13 日发布的版本 0.7.0-SNAPSHOT [11] Hama 是基于 BSP( 整体同步并行 ) 计算技术的并行计算框架, 主要用于大量的科学计算, 如矩阵计算 图计算 网络计算等 BSP 计算技术最大的优势是加快迭代, 可以应用于多种 需要并行计算的场景, 如实现图遍历 (BFS) 最短路径 (SSSP) PageRank 计算 K-means 聚类 社交网络分析 排序计算等 [12] 目前, 随着 Hama 技术的日渐强大,Hama 得到了非常广泛的应用, 比较典型的应用主 要集中在网络数据的分析和图数据的分析, 如韩国电信 (Korea Telecom) 公司使用 Hama 来对交通相关的网络数据流进行分析 韩国的 NHN 互联网搜索引擎及网络游戏公司 (NHN,corp) 使用 Hama 来分析社交网络的数据, 从而为应用服务提供评估 Oracle 公司用 Hama 来对 100TB 的 tweets 数据集进行社交网络的分析 Google 和 Wikipedia 均使用 HamaGraphFile 进 行数据存储和处理 [13] 6.3.2 系统架构 Hama 是建立在 Hadoop 框架之上的基于 Map/Reduce 和 Bulk Synchronous 的实现框架, 运行环境需要关联 ZooKeeper,HBase 和 HDFS 等组件 为了便于说明 Hama 与各组件之间 的关系, 在此详细的介绍一下 Hama 的层次结构 [14], 如下图所示 : 图 6.8 Hama 的层次结构 [14] 图 6.8 比较形象的说明了 Hama 与 HDFS, HBase,Zookeeper 等各个功能模块之间的关 系 在这里,Hama API 为开发人员提供了灵活 简单 易于使用的 API, 开发人员可以通 过调用这些 API 来使用 Hama 系统 Hama Core 是 Hama 框架的核心部分, 为矩阵计算和图计算提供了核心的基元和系统的整体控制, 并且由该部分来选择具体的计算引擎 Hama Shell 的主要作用是提供与用户之间的交互, 便于用户对系统的控制 MapRedece BSP 和 Dryad 是 Hama 框架集成的三个具体的矩阵和图计算引擎, 在实际的应用中会根据不同的需 要来进行选择 Zookeeper 则为系统的各个计算节点之间的同步提供支持 整个底下的部分 承担了 Hama 的持久化存储功能 Hama 的集群环境系统架构主要由三个部分组成 :BSPMaster,GroomServers 和 Zookeeper 图 6.9 描述了系统模块之间的通讯与交互 Hama 的集群中需要有 HDFS 的运行环境负责持 69

久化存储数据, BSPMaster 负责进行对 GroomServer 进行任务调配,Groom Server 负责进行 对 BSPPeers 进行具体的调用,Zookeeper 负责对 GroomServer 进行失效转发 图 6.9 Hama 的系统架构图 Hama 的整个体系如上图所示, 在该体系中各个不同的模块相互配合 各司其职共同完成 Hama 的计算 接下来, 将详细介绍每一部分的功能 (1)BSPMaster 在 Apache Hama 中,BSPMaster 模块是系统中的一个主要角色, 他主要负责的是协同各 个计算节点之间的工作, 每一个计算节点在其注册到 Master 上的时候会分配到一个唯一的 ID Master 内部维护着一个计算节点列表, 表明当前哪些计算节点出于 alive 状态, 以及哪些计算节点上被分配到了整个计算任务的哪一部分 Master 中这些信息的数据结构大小取决 于整个计算任务被分成多少个 partition 因此, 一台普通配置的 BSPMaster 足够用来协调对 一个大型计算 BSPMaster 完成的主要任务包括 : 维护着 Groom Servers 的状态 ; 控制在集 群环境中的超步 (superstep); 维护在 GroomServers 中 job 的工作状态信息 ; 分配任务 调 度任务到所有的 GroomServers 节点 ; 广播所有的 GroomServers 执行 ; 管理系统节点中的失效转发 ; 提供用户对集群环境的管理界面 [15] 一个 BSPMaster 或者多个 GroomServers 是通过脚本启动的, 在 GroomServers 中还包含 了 BSPeer 的实例, 在启动 GroomServer 的时候就会启动了 BSPPeer, BSPPeer 是整合在 Gromm Server 中的,GrommServer 通过 PRC 代理与 BSPmaster 连接 当 BSPmaster GroomServer 启动完毕以后, 每个 GroomServer 的生命周期通过发送 心跳 信息给 BSPmaster, 在这个 心跳 信息中包含了 GrommServer 的状态, 这些状态包含了能够处理任务的最大容 量, 和可用的系统内存状态, 等等 BSPMaster 的绝大部分工作, 如 input,output,computation,saving 以及 resuming from checkpoint, 都将会在一个叫做 barrier 的地方终止 Master 会在每一次操作都会发送相同的 指令到所有的计算节点, 然后等待从每个计算节点的回应 (response) 每一次的 BSP 主机接收心跳消息以后, 这个信息会带来了最新的 GroomServers 状态,BSPMaster 服务器对给出 一个回应的信息,BSPMaster 服务器将会与 GroomServers 进行确定活动的 Groomserver 空闲 状态, 也就是 GroomServers 可资源并且对其进行任务调度和任务分配 BSPMaster 与 Groom Server 两者之间通讯使用非常简单的 FIFO( 先进先出 ) 原则对计算的任务进行分配 调度 (2)GroomServer 一个 GroomServers 对应一个处理 BSPMaster 分配的任务, 每个 GroomServers 都需要与 BSPMaster 进行通讯, 处理任务并且向 BSPMaster 处理报告状态, 集群状态下的 GroomServer 70

需要运行在 HDFS 分布式存储环境中, 而且对于 GroomServer 来说, 一个 GroomServers 对应一个 BSPPeer 节点, 需要运行在同一个物理节点上 (3)Zookeeper Zookeeper 用来管理 BSPPeer 的同步, 用于实现栅栏同步 (Barrier Synchronisation) 机 制 在 Zookeeper 上, 进入 BSPPeer 主要有进入 Barrier 和离开 Barrier 操作, 所有进入 Barrier 的 Peer 会在 Zookeeper 上创建一个 EPHEMERAL 的 node(/bsp/jobid/superstep NO./TaskID), 最后一个进入 Barrier 的 Peer 同时还会创建一个 ready node(/bsp/jobid/superstep NO./ready), Peer 进入阻塞状态等待 Zookeeper 上所有任务的 node 都删除后退出 Barrier [16] 6.3.3 系统特性 Hama 计算框架有着非常多的优势, 具有如下特性 :(1) 兼容性 :Hama 是 Hadoop 的子项目, 保留了与所有 Hadoop 接口的兼容, 可以直接使用 Hadoop 的所有功能 (2) 扩展性 : Hama 可以全面的使用大规模的分布式网络设施和服务, 如 EC2, 而不需要进行任何更改 (3) 灵活性 :Hama 提供了简单的计算引擎接口, 任何符合该接口标准的计算引擎都可以 自由的接入到 Hama 框架中, 如 Map/Reduce, Dryad (4) 高效性 :Hama 在很多应用领域, 相对于传统的计算方法, 如 MPI Mahout 等, 能够取得更高的计算效率 (5) 应用性 :Hama 可以应用于多种场景, 包括社交网络的数据分析, 最短路径计算, 图遍历等等 总的来说,Hama 的优势还是非常明显的, 在以后的发展中, 可以进一步的扩展 Hama 的计算功能, 优化 Hama 的一些性能瓶颈, 提高 Hama 的效率 6.3.4 性能分析 当前,Apache 基金会的 Hama 项目组对 Hama 的性能进行了全面的评测, 也有很多研 究人员对 Hama 的性能进行了评估, 接下来, 将列举一些比较典型的测试结果, 来比较客观 的呈现 Hama 计算框架的性能状况 首先, 这里要列出的第一个实验数据就是 Hama 与 MPI 算法对于矩阵计算的性能对比 如图 6.10 所示 : 图 6.10 Hama 与 MPI 关于矩阵计算的性能对比 [14] 该图形象的描绘出随着矩阵节点的增加, 矩阵计算的性能变化情况, 通过该图, 可以看 出,Hama 框架相对于 MPI 来说, 有非常好的扩展性 能够适应大维度的矩阵计算 其次, 为了展示在单点失效的情况下,Hama 与其他算法在处理上的效果, 研究人员对 单点失效的情况进行了认真评测, 结果如图 6.11 所示 : 71

图 6.11 Hama 与 MPI 在存在单点失效的情况下性能对比 [14] 通过该图, 可以看出, 存在单点失效的情况下,MPI 算法的性能迅速变差, 而 Hama 则依然保持了线性的时间代价 这说明了 Hama 在对单点失效问题进行了优化和处理, 能够 解决因单点失效带来的效率降低问题 最后, 展示一下 Hama 项目组对于 Hama 的性能所做的 K-means 算法效率实验结果对比, 如下图所示 : 图 6.3-5 Mahout 与 Hama 运行 K-means 算法的效果对比 [11] 该图的结果显示了在不同的迭代要求下,Hama 框架相对于 Mahout 来说, 其效率都是 非常高的, 而且随着迭代次数的增多,Hama 框架的时间代价增加非常微小, 而 Mahout 的 时间代价增长很快 从该图可以看出,Hama 的计算性能非常高 更多的性能测试可参阅 [12] 6.4 小结 本章主要针对科学大数据分析方面, 介绍了一个开源的科学数据管理和分析系统软件 SciDB 和一个开源科学数据计算框架 Hama SciDB 侧重于科学数据的分析操作, 扩充了针对科学数据常用向量或矩阵表示的特点扩 充了关系数据库的数据模式并扩展了数据库支持的数据类型及数据类型上的操作 此外, SciDB 还试图与 R,Matlab 以及 IDL 等科学分析软件结合来分析管理科学数据 目前 SciDB 的研发还处于初始阶段, 但是对于科学数据的管理和分析方法的研究具有深刻的积极意义 作为基于 Hadoop 的数据管理软件栈的一个组件,Hama 针对部分科学问题的计算提供了基于 HDFS 存储和 Mapreduce 计算框架的解决方案, 如图上求解最短路径 矩阵计算等, 大大提升了计算效率 Hama 目前正处于一个高速发展的阶段, 未来的发展空间还很大 随 着相关技术的不断成熟,Hama 将会得到更加广泛的应用 参考文献 [1]www.scidb.org/forum 72

[2]M. Stonebraker. SciDB: An Open-Source DBMS for Scientific Data. ERCIM News 2012(89) (2012) [3]M. Stonebraker, J. Becla,, et al. Requirements for Science Data Bases and SciDB. CIDR 2009 [4]R. Hammami, A. Zouhir, K. Naghmouchi, et al. SciDBMaker: new software for computer-aided design of specialized biological databases. BMC Bioinformatics 9 (2008) [5]M. Stonebraker, P. Brown, et al. "SciDB: A Database Management System for Applications with Complex Analytics", Computing in Science & Engineering, vol.15, no. 3, pp. 54-62, May-June 2013, doi:10.1109/mcse.2013.19 [6]P. Cudré-Mauroux, H. Kimura, et al. A Demonstration of SciDB: A Science-Oriented DBMS. PVLDB 2(2): 1534-1537 (2009) [7]M. Stonebraker, J. Duggan, et al. SciDB DBMS Research at M.I.T. IEEE Data Eng. Bull. 36(4): 21-30 (2013) [8]Paul G. Brown. Overview of scidb: large scale array storage, processing and analysis. SIGMOD Conference 2010: 963-968 [9]M. Stonebraker et al. The Architecture of SciDB, Proc. Scientific and Statistical Data Management Conf., Springer-Verlag, 2011, pp. 1 16. [10]J.Becla, K.T. Lim. Report from the SciDB Workshop. Data Science Journal 7: 88-95 (2008) [11] http://hama.apache.org/ [12] http://wiki.apache.org/hama/benchmarks [13] http://www.2401.net/jsjrjjyy/ebcc98c2f6f760d82b52d8b69b3602db.html [14]Sangwon Seo, Edward J. Yoon, et al. HAMA: An Efficient Matrix Computation with the MapReduce Framework, IEEE CloudCom 2010, 721-726. [15] http://en.wikipedia.org/wiki/apache_hama [16] http://www.uml.org.cn/yunjisuan/201212191.asp 73