本文原创,可以转载, 但必须以超链接形式标明文章原始出处和作者信息
转载请注明: 转载自sin的专栏http://blog.csdn.net/yclzh0522

一,背景介绍:

Sector/Sphere系统包括两个组件,一个是Sector分布式文件系统,一个是Sphere并行数据处理框架。

开源的,用C++开发的,遵循Apache2.0许可证,可以从官网下载http://sector.sf.net

开始于2006年,当前版本为2.8

二,特性分析

1,特性一:数据本地化

传统系统:

存储系统和计算系统分离

成本高,数据IO带宽高

Sector/Sphere模型:

在存储节点处理数据,代价不高,并行数据IO

2,特性二:简化编程

并行编程用MPI等

灵活而且很强大,但是开发非常复杂

Sector/Sphere:

对于开发者来说,集群作为一个整体,简化编程接口

数据并行程序有限

3,特性三:大规模系统

传统系统:

需要移动数据和装载数据

Sphere/Sector:

支持广域网范围的数据收集和分布

三,架构分析

SecurityServer:

用户账户认证:密码和IP地址

Sector使用自己的账号资源,但是可以扩展连接到LDAP和本地系统账户

Masters和slaves之间通过证书和IP地址认证

MasterServer:

维护文件系统元数据

多个激活的masters:高灵活性和负载均衡

1,可以在运行时间加入或者离开

2,都能够相应用户请求

3,同步系统元数据

维护slaves节点和其他masters的状态

响应用户请求

SlaveNodes

存储Sector文件:Sector是一个用户空间文件系统,每个Sector文件存储在一个或者多个slaves节点的本地文件系统(例如:EXTXFS等),Sector文件没有切分成blocks

处理Sector数据:数据处理在相同的存储节点或者最近的存储节,输入和输出都是Sector文件

Clients

Sector文件系统客户端API:用来在程序里访问Sector文件的C++API

Sector系统工具:文件系统访问工具

FUSE:挂载Sector文件系统作为本地目录

Sphere编程API:开发并行数据处理应用程序的API

四,机制分析

1,拓扑考虑和程序考虑

Sector管理和调度时考虑到网络拓扑结构

当允许提高程序性能或者安全需要时,用户可以文件本地化

2,副本

Sector靠副本提供软件层面的容错性,不需要硬件RAID。所有的文件都有默认个副本

,个数可以设置。副本间的距离默认最远,可以预设。文件可以限制本地化。

3,容错性

数据容错性:Sector通过副本机制保证数据一致性,无论多少个节点挂掉,活着的节点依然可以服务数据。Sector不需要请求元数据,文件系统可以通过真实数据重建。

系统容错性:所有的Sectormasterslave节点都可以动态加入或者离开,

Master监控slave节点并且可以自动重启挂掉的节点,或者移除有问题的节点,用户如果当前连接的挂掉,可以自动切换到好的master或者slave节点。

4,UDT:基于UDP的数据传输协议

官网:http//udt.sf.net

开源的基于UDP的数据传输协议,有新的拥塞控制盒可靠性控制

快速,穿透防火墙,易于使用,已经在很多商业和研究的大型数据系统使用。

5,广域网部署

Sector可以被部署在多个数据中心,Sector使用UDT协议数据传输,数据备份在不同的数据中心。

6,规则化数据管理

配置文件可以动态配置,数据IO可以通过配置达到吞吐量和容错性之间平衡。

7,存储节点处理

每个存储节点也作为计算节点,数据处理在本地节点或者最近的可用节点,像md5

Sum和grep可以运行更快在Sector上。用SpehreMapReduceAPI进行大规模数据分析。

Sector特性总结:

1,高达1000多节点和PB级别数据

2,软件层面的容错性

3,工作在单数据中心或者多数据中心的拓扑结构

4,灵活的规则化数据管理

5,集成WAN加速

6,集成安全和穿透防火墙

7,集成系统监控

缺点:

1,文件大小受限于存储节点的可用空间

2,用户可能需要切分他们的数据集成适当的大小

3,Sector设计提供了在大数据集上高吞吐量。

Sphere:简化数据处理

Sphere:数据移动

一个客户程序需要确定input,outputUDF的名字。

UDF:遵循Sphere标准的C++函数intFunctionName(constSInput*input,SOutput*output,SFile*file)

编译成动态库(.so

MalStoneBenchmark例子

MalStone流程:

1,输入log文件集合

2,UDF-I:读取log文件,处理每行,获得siteID并且hash到一个bucketID,过滤不必要的信息产生新的记录

3,中间集:bucket文件,每个文件包含site的一个子集。

4,UDF-2:读取bucket文件,计算传染率每周每个点

5,结果集:包含了每个点的传染率

安装环境:

下载:http://sourceforge.net/projects/sector

文档:http://sector.sourceforge.net/doc/index.html

Linux,g++4.xopenssl-devfuse(可选的)

代码目录结构:

Conf:配置文件目录

Doc:文档

Examples:Sphere编程例子

Fuse:FUSE接口

Include:头文件

Lib:存储编译后的库文件

Master:master服务器

Tools:客户端工具

Security:安全服务器

Slave:slave服务器

编译

Tar-zxvfsector.2.8.tar,gz

Cd./sector-sphere;make

配置:

master.confmaster服务器配置,像Sector端口,安全服务器地址和master服务器数据位置

Slave.confslave节点配置,像master服务器地址和本地存储路径

Client.confmaster服务器地址和用户账户和密码便于用户不需要每次运行Sector工具时输入这些信息

本文原创,可以转载, 但必须以超链接形式标明文章原始出处和作者信息
转载请注明: 转载自sin的专栏http://blog.csdn.net/yclzh0522

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐