数据库和文件中储存的数据量每天都在增长,因此我们需要构建能够储存大量数据(“大数据”),并且廉价、可维护、可伸缩的环境。传统的关系数据库(RDBMS)系统在当前的需求下成本过高并且不可伸缩,因此开发、使用能够满足需求的新技术正合时宜。
在这些方向中,云计算是其中一项领先的技术。云计算有许多不同的实现,我们选择的是Hadoop,这是一个拥有Apache许可、基于Google Map Reduce的框架。
在本文中,我将尝试说明如何构建一个可伸缩的Hadoop集群,以存储、索引、检索和维护理论上无限容量的数据。
本文将逐步介绍这些部分的安装和配置:
网络架构
根据我们目前能够拿到的文档,可以认为云内的节点越在物理上接近,越能获得更好的性能。根据经验,网络延时越小,性能越好。
为了减少背景流量,我们为这个云创建了一个虚拟专用网。另外,还为应用服务器们创建了一个子网,作为访问云的入口点。
这个虚拟专用网的预计时延大约是1-2毫秒。这样一来,物理临近性就不再是一个问题,我们应该通过环境测试来验证这一点。
建议的网络架构:
图1 - Hadoop集群的网络架构
操作系统
我们选择Linux作为操作系统。Linux有许多不同的发行版,包括Ubuntu、RedHat和CentOS等,无论选择哪一个都可以。基于支持和许可费用的考虑,我们最终选择了CentOS 5.7。最好是定制一个CentOS的映像,把那些需要的软件都预装进去,这样所有的机器可以包含相同的软件和工具,这是一个很好的做法。
根据Cloudera的建议,OS层应该采用以下设置:
硬件要求
由于Hadoop集群中只有两种节点(Namenode/Jobtracker和Datanode/Tasktracker),因此集群内的硬件配置不要超过两种或三种。
图2 - Hadoop集群服务器角色
硬件建议:
评论删除后,数据将无法恢复
评论(1)