本文原创,可以转载, 但必须以超链接形式标明文章原始出处和作者信息
转载请注明: 转载自sin的专栏 http://blog.csdn.net/yclzh0522
一,背景介绍:
Sector/Sphere系统包括两个组件,一个是Sector分布式文件系统,一个是Sphere并行数据处理框架。
开源的,用C++开发的,遵循Apache 2.0许可证,可以从官网下载 http://sector.sf.net
开始于2006年,当前版本为2.8
二,特性分析
1,特性一:数据本地化
传统系统:
存储系统和计算系统分离
成本高,数据IO带宽高
Sector/Sphere 模型:
在存储节点处理数据,代价不高,并行数据IO
2,特性二:简化编程
并行编程用MPI等
灵活而且很强大,但是开发非常复杂
Sector/Sphere:
对于开发者来说,集群作为一个整体,简化编程接口
数据并行程序有限
3,特性三:大规模系统
传统系统:
需要移动数据和装载数据
Sphere/Sector:
支持广域网范围的数据收集和分布
三,架构分析
Security Server:
用户账户认证:密码和IP地址
Sector使用自己的账号资源,但是可以扩展连接到LDAP和本地系统账户
Masters和slaves之间通过证书和IP地址认证
Master Server:
维护文件系统元数据
多个激活的masters:高灵活性和负载均衡
1,可以在运行时间加入或者离开
2,都能够相应用户请求
3,同步系统元数据
维护slaves节点和其他masters的状态
响应用户请求
Slave Nodes
存储Sector文件:Sector是一个用户空间文件系统,每个Sector文件存储在一个或者多个slaves节点的本地文件系统(例如:EXT,XFS等),Sector文件没有切分成blocks
处理Sector数据:数据处理在相同的存储节点或者最近的存储节,输入和输出都是Sector文件
Clients
Sector文件系统客户端API:用来在程序里访问Sector文件的C++ API
Sector系统工具:文件系统访问工具
FUSE:挂载Sector文件系统作为本地目录
Sphere编程API:开发并行数据处理应用程序的API
四,机制分析
1,拓扑考虑和程序考虑
Sector管理和调度时考虑到网络拓扑结构
当允许提高程序性能或者安全需要时,用户可以文件本地化
2,副本
Sector靠副本提供软件层面的容错性,不需要硬件RAID。所有的文件都有默认个副本
,个数可以设置。副本间的距离默认最远,可以预设。文件可以限制本地化。
3,容错性
数据容错性:Sector通过副本机制保证数据一致性,无论多少个节点挂掉,活着的节点依然可以服务数据。Sector不需要请求元数据,文件系统可以通过真实数据重建。
系统容错性:所有的Sector master和slave节点都可以动态加入或者离开,
Master监控slave节点并且可以自动重启挂掉的节点,或者移除有问题的节点,用户如果当前连接的挂掉,可以自动切换到好的master或者slave节点。
4,UDT:基于UDP的数据传输协议
官网:http://udt.sf.net
开源的基于UDP的数据传输协议,有新的拥塞控制盒可靠性控制
快速,穿透防火墙,易于使用,已经在很多商业和研究的大型数据系统使用。
5,广域网部署
Sector可以被部署在多个数据中心,Sector使用UDT协议数据传输,数据备份在不同的数据中心。
6,规则化数据管理
配置文件可以动态配置,数据IO可以通过配置达到吞吐量和容错性之间平衡。
7,存储节点处理
每个存储节点也作为计算节点,数据处理在本地节点或者最近的可用节点,像md5
Sum和grep可以运行更快在Sector上。用Spehre和MapReduce API进行大规模数据分析。
Sector特性总结:
1,高达1000多节点和PB级别数据
2,软件层面的容错性
3,工作在单数据中心或者多数据中心的拓扑结构
4,灵活的规则化数据管理
5,集成WAN加速
6,集成安全和穿透防火墙
7,集成系统监控
缺点:
1,文件大小受限于存储节点的可用空间
2,用户可能需要切分他们的数据集成适当的大小
3,Sector设计提供了在大数据集上高吞吐量。
Sphere:简化数据处理
Sphere:数据移动
一个客户程序需要确定input,output和UDF的名字。
UDF:遵循Sphere标准的C++函数 int FunctionName(const SInput* input, SOutput* output, SFile* file)
编译成动态库(.so)
MalStone Benchmark例子
MalStone流程:
1,输入log文件集合
2,UDF-I:读取log文件,处理每行,获得site ID并且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.x,openssl-dev,fuse(可选的)
代码目录结构:
Conf:配置文件目录
Doc:文档
Examples:Sphere编程例子
Fuse:FUSE接口
Include:头文件
Lib:存储编译后的库文件
Master:master服务器
Tools:客户端工具
Security:安全服务器
Slave:slave服务器
编译
Tar -zxvf sector.2.8.tar,gz
Cd ./sector-sphere;make
配置:
master.conf master服务器配置,像Sector端口,安全服务器地址和master服务器数据位置
Slave.conf slave节点配置,像master服务器地址和本地存储路径
Client.conf master服务器地址和用户账户和密码便于用户不需要每次运行Sector工具时输入这些信息
本文原创,可以转载, 但必须以超链接形式标明文章原始出处和作者信息
转载请注明: 转载自sin的专栏 http://blog.csdn.net/yclzh0522