摘 要:当今时代,计算技术已进入以网络为中心的时代,很多企业或机构的网络都需要比较长时间的服务,甚至有些业务不能宕机。因此为了避免任何服务中断和关键性的数据丢失造成的商业损失,提高网络不间断服务,提供高可用、可扩展的网络集群服务,我们需要设计与实现基于Linux的网络集群服务。在本次研究中我们从需求分析,集群结构,设计原则等这几个角度上出发,阐述了使用Hadoop集群框架技术的网络集群服务的设计方法和实现原理。
关键词:Linux;Hadoop集群;高可用;可扩展
一、需求分析
在网络业务量爆炸性增长的时代,网络带宽和服务器端都迎来了巨大的挑战。基于网络的应用正以惊人的速度增长,同时,越来越多的网络客户需要一周7天,一天24小时不间断的网络服务。基于Linux的网络集群服务可以解决诸如此类的问题,保持服务的可持续性,构建高可用性、可拓展性、负载均衡的集群技术。此外,平衡各计算机之间的负载提高整个系统的性能,选择开放自由的Linux系统,可以运行于极为普及的PC机上,不需要购买昂贵的专用硬件设备,节约非常大的成本,也方便于后期的维护和管理。
集群的高可用性,即是在硬件和软件上都有冗余,通过检测软硬件的故障,将故障屏蔽,由存活结点提供服务,可实现高可用性。即使部分硬件和软件发生故障,但整个系统的服务必须是7*24小时运行的。当发现一个模块失败时,要这模块上提供的服务迁移到其他模块上。在理想状况下,这种迁移是即时的、自动的。
集群的可扩展性能,集群系统中的结点数目可以增长到几千个,乃至上万个,其伸缩性远超过单台超级计算机。当服务器负载压力增长的时候,系统能够扩展来满足需求,且不降低服务质量。
集群的负载均衡为企业提供了更为实用,性价比更高的系统架构解决方案。负载均衡集群把很多客户集中访问的请求负载压力尽可能平均的分摊到计算机集群中处理。客户请求负载通常包括"应用程度处理负载"和"网络流量负载"。这样的系统非常适合向使用同一组应用程序为大量用户提供服务。每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求在各节点之间动态分配,以实现负载均衡。
二、Linux网络集群服务相关内容
计算机集群简称“集群”,是一种计算机系统,它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(Node),通常通过局域网连接,但也有其它的可能连接方式。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。集群计算机通常用来改进单个计算机的计算速度以及可靠性。一般情况下集群计算机比单个计算机,工作站或超级计算机性能价格比要高得多。
集群系统若按功能和结构的不同可以分成:高可用性集群、负载均衡集群以及高性能计算集群。其中高可用性集群一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行,系统中的数据也不会存在丢失的情况;负载均衡集群在运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性;高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而主要应用在科学计算领域。
三、目前网络集群建设情况分析
早在九十年代末,Linux操作系统开始不断走向成熟,最重要的是它在普通PC机上提供了对高性能网络的支持,这就大力推动了基于Linux的集群系统发展。在国内,包括中国科学院在内的许多大学与研究机构在二十世纪九十年代就开始了基于Linux集群研究,以及国内许多知名企业如浪潮、联想等也都有Linux集群产品和解决方案。如今,计算技术已进入以网络为中心的时代,基于网络的应用正以惊人的速度增长,同时,越来越多的网络客户需要更多更强的计算系统来服务,若单买高配置的电脑可能会面临资源浪费、开销大等问题。这就要求作为服务的系统能够提供更高的性能、更强的处理能力、更好的伸缩性和更合适的价格,集群系统则是适合这种情况的一个很好的选择,它能使有限的资源内实现最大的利用。
以开源集群搭建管理工具Hadoop为基础,以实现集群系统的故障检测与服务自切换为前提,以分布式系统管理为核心,研究并实现基于Linux的网络集群服务系统,极大地提高了数据中心的资源利用率,明显减少了数据中心的管理和维护成本,全面提高了管理的效率和服务的高可用性,保证了面向用户提供不间断服务。在众多常用的集群软件中,如lvs、keepalived等,现在许多人都喜欢把Linux集群指为LVS,但我觉得严格意义上应该区分开。Hadoop集群是目前在国内企业里实现大型项目的最合适选择,它的框架开源免费,且具备分布式存储和计算的核心功能,框架的通用性强,极大的降低了大数据项目的研究实现对人的要求,在众多企业中的到成功的应用。如今Hadoop更是进入的2.0时代,核心配置由HDFS和MapReduce两大基础框架,到现在新增YARN框架,使集群更具可扩展性、高可用性、可持续性等。
四、Hadoop集群结构分析
通过对基于Linux系统的网络集群业务流程的调研,并充分考虑未来主机服务器增减、机器出现故障而宕机等可变需求因素,以开源集群搭建管理工具Hadoop为基础,以实现集群系统的故障检测与服务自切换为前提,以分布式系统管理为核心,研究并实现基于Linux的网络集群服务系统。所设计开发的集群系统共包含HDFS、MapReduce以及YARN这三 大模块。本系统的突出之处在于HDFS模块,该模块是实现高可用的重要模块,其中用到Zookeeper技术来实现故障排查及数据转移。通过使用本文系统进行大数据的存储和使用工作,可以使得业务的可扩展性、實用性、可持续性等大大增强,具有易管理、易维护的优点,在很大程度上降低了运营成本,也避免资源浪费,提升了网络系统稳定性、市场竞争力及项目监控能力等。
一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。高可用的实现原理主要体现在自动侦测故障、自动切换或故障转移以及它的自动恢复功能。因而本次在实现集群系统的过程中使用的Hadoop集群框架,能很好的体现出集群高可用性以及负载均衡的功能特性。
Hadoop框架具备分布式存储和计算的核心功能,分布式系统的核心理念是让多台服务器协同工作。框架由三个重要的模块组成,其中HDFS模块实现了多台机器上的数据存储,MapReduce模块实现了多台机器上的数据计算,YARN模块实现了资源调度与管理。
五、集群结构设计
本项目使用Hadoop框架技术在CentOS系统中设计实现。集群搭建之前,需要确保有3台以上基于Linux系统的机器已准备就绪,并且安装JDK1.8.0、SSH、Hadoop 2.9.2以及Zookeeper 3.4.14,更改系统环境变量。为保集群各个节点能够互相安全通信,设置hosts系统文件以及设置SSH免密码登陆是必不可少的。Hosts系统文件中用别名取代IP地址,这样可以避免很多不必要的麻烦。设置SSH免密登录时,因为master和slave 节点是主要的部署控制节点,所以需要将master 和 slave 的公钥复制到到其他所有服务器的 /root/.ssh/authorized_keys这延时将master 服务器的公钥写到slave 的操作。集群之前需要关防火墙,且机器的时区也有必要保持一致,如果不同步,可能会出现集群启动异常或者其他异常。本设计准备5台装有CentOS系统的主机,2台主机充当NameNode角色,3台主机充当DataNode角色,为之后的高可用性集群作准备。
为保集群各个节点能够互相安全通信,设置hosts系统文件以及设置SSH免密码登陆是必不可少的。Hosts系统文件中用别名取代IP地址,这样可以避免很多不必要的麻烦。集群之前需要关防火墙,且机器的时区也有必要保持一致,如果不同步,可能会出现集群启动异常或者其他异常。在部署Hadoop集群时,需要配置它的核心文件:core-site.xml、hdfs-site.xml、map-site.xml、yarn-site.xml、hadoop-env.sh、yarn-env.sh、slaves。core-site.xml配置service的URI地址、Hadoop集群临时目录等信息;hdfs-site.xml配置Hadoop集群的HDFS别名、通讯地址、端口等信息;mapred-site.xml配置计算框架资源名称、历史任务访问地址等信息;yarn-site.xml:配置资源管理器的相关内容。
小结
在本次设计与实现中,我们针对目前网络服务在当下的现状以及存在的问题进行研究分析,并结合实际情况设计实现出以开源集群搭建管理工具Hadoop为基础,以实现集群系统的故障检测与服务自切换为前提,以分布式系统管理为核心,研究并实现基于Linux的网络集群服务系统。提高网络不间断服务,提供高可用、可扩展、负载均衡的网络集群服务,综合各多种因素采用先进的软件和技术,确保集群的功能实现以满足需要。
参考文献:
[1]许礼捷. 基于CentOS的Hadoop分布式集群的构建方法研究[J]. 沙洲职业工学院学报,2016,19(1).
[2]王宏志,李春静. Hadoop集群程序设计与开发[M]. 人民邮电出版社,2018.8:1-319.
[3]杨云海,章芬芬. 使用虚拟机搭建Hadoop3.0集群安装环境[J]. 现代信息科技,2018,2(10):99-101.
作者简介:
阮文卿(1996-),女,漢 ,广东省广州市,本科,研究方向: 网络。