解析基于Hadoop平台的云存储应用实践

2012-03-29 16:17 博客 佚名
关键字:hadoop 云存储

  随着网络和服务器的迅速成长,数据的容量越来越大,数据的存储面临严峻的挑战,怎样有效地存储数量庞大的数据,云存储是个不错的选择。简要介绍云计算和云存储的概念,并以Hadoop为平台进行一个数据处理的实验,统计相同文件名的个数。

  云计算(Cloud Computing)是一种基于因特网的超级计算模式,在远程的数据中心里,成千上万台电脑和服务器连接成一片电脑云。用户通过电脑、笔记本手机等方式接人数据中心,按自己的需求进行运算。目前,对于云计算仍没有普遍一致的定义。结合上述定义,可以总结出云计算的一些本质特征,即分布式计算和存储特性、高扩展性、用户友好性、良好的管理性。

  云存储架构图

  橘色的作为存储节点(Storage Node)负责存放文件,蓝色作为控制节点((Control Node)则是负责文件索引,并负责监控存储节点间容量及负载的均衡,这两个部分合起来便组成一个云存储。存储节点与控制节点都是单纯的服务器,只是存储节点的硬盘多一些,存储节点服务器不需要具备RAID的功能,只要能安装Linux即可,控制节点为了保护数据,需要有简单的RAID level O1的功能。

  云存储不是要取代现有的盘阵,而是为了应付高速成长的数据量与带宽而产生的新形态存储系统,因此云存储在设计时通常会考虑以下三点:

  (1)容量、带宽的扩容是否简便

  扩容是不能停机,会自动将新的存储节点容量纳入原来的存储池。不需要做繁复的设定。

解析基于Hadoop平台的云存储应用实践

  图1 云存储架构图

  (2)带宽是否线形增长

  使用云存储的客户,很多是考虑未来带宽的增长,因此云存储产品设计的好坏会产生很大的差异,有些十几个节点便达到饱和,这样对未来带宽的扩容就有不利的影响,这一点要事先弄清楚,否则等到发现不符合需求时,已经买了几百TB,后悔就来不及了。

  (3)管理是否容易。

  云存储关键技术

  云存储必须具备九大要素:①性能;②安全性;③自动ILM存储;④存储访问模式;⑤可用性;⑥主数据保护;⑦次级数据保护;⑧存储的灵活;⑨存储报表。

  云计算的发展离不开虚拟化、并行计算、分布式计算等核心技术的发展成熟。下面对其介绍如下:

  (1)集群技术、网格技术和分布式文件系统

  云存储系统是一个多存储设备、多应用、多服务协同工作的集合体,任何一个单点的存储系统都不是云存储。

  既然是由多个存储设备构成的,不同存储设备之间就需要通过集群技术、分布式文件系统和网格计算等技术,实现多个存储设备之间的协同工作,使多个的存储设备可以对外提供同一种服务,并提供更大更强更好的数据访问性能。如果没有这些技术的存在,云存储就不可能真正实现,所谓的云存储只能是一个一个的独立系统,不能形成云状结构。

  (2)CDN内容分发、P2P技术、数据压缩技术、重复数据删除技术、数据加密技术

  CDN内容分发系统、数据加密技术保证云存储中的数据不会被未授权的用户所访问,同时,通过各种数据备份和容灾技术保证云存储中的数据不会丢失,保证云存储自身的安全和稳定。如果云存储中的数据安全得不到保证,也没有人敢用云存储了。

  (3)存储虚拟化技术、存储网络化管理技术

  云存储中的存储设备数量庞大且分布多在不同地域,如何实现不同厂商、不同型号甚至于不同类型(例如FC存储和IP存储)的多台设备之间的逻辑卷管理、存储虚拟化管理和多链路冗余管理将会是一个巨大的难题,这个问题得不到解决,存储设备就会是整个云存储系统的性能瓶颈,结构上也无法形成一个整体,而且还会带来后期容量和性能扩展难等问题。

  部署Hadoop

  从历史上看,数据分析软件面对当今的海量数据已显得力不从心,这种局面正在悄然转变。新的海量数据分析引擎已经出现。例如Apache的Hadoop,实践证明,Hadoop在数据处理方面是做得最好的且是开源的平台之一。

  云存储中心是由大量服务器构成Hadoop的数据节点((DataNodes),负责保存文件的内容,实现文件的分布式存储、负载平衡以及文件的容错控制。

  下面将利用Hadoop作为实验平台,一步一步演示如何部署一个三个节点的集群,并测试一下MapRe-dace分布式处理的强大功能,在Hadoop分布式文件系统(HDFS)中存人两个文件,并采用MapReduce计算出两个namelist文件中各个名字出现的次数,程序架构设计如图2所示。

解析基于Hadoop平台的云存储应用实践

  图2 3个节点的Hadoop集群

  其中NameNode主节点和DataNode从节点的分布情况如下:

  表1

解析基于Hadoop平台的云存储应用实践

  (1)启动Hadoop集群

  只需要在NameNode主节点上执行start-all.sh命令即可,同时Master节点可以通过ssh登录到各,lave节点去启动其他相关进程。

解析基于Hadoop平台的云存储应用实践

  (2) MapRudce测试

  在NameNode和DataNode两个结点都运行正常的时候,也就是Hadoop部署成功了之后,我们在NameNode主节点上准备两个名单文件。名单文件的内容如下:

解析基于Hadoop平台的云存储应用实践

  4运行实验及结果

解析基于Hadoop平台的云存储应用实践

  图片说明

  5结语

  结果跟我们预期的一样,这样在以Hadoop为平台进行了对HDFS的文件存储,并且统计了文件中数据的数量,然后显示出来。


比特微信账号
比特微信账号

微信扫一扫
关注Chinabyte

返回首页 长微博 返回顶部