论分布式存储系统架构设计

摘要
2019年6月,我所在的公司中标某集团全国保险大数据平台搭建项目,该项目周期为2年,总投资为5000万人民币,通过该项目,搭建该集团大数据建设项目,实现该集团所有业务以及用户行为数据入库并解析,为集团提供精准营销、挖掘潜在客户等提供业务支撑,帮助集团实现快速的业务增长。我有幸作为此次项目的负责人以及架构师参与了项目的搭建以及开发过程。该项目时间紧任务重、涉及人员组织多,直接相关集团保险公司内部40个部门 600 余人,外部配合协作 20 多个厂商团队 300 余人。该项目于 2021年 5 月完成系统上线, 2021年 6 月通过最终验收,得到了用户的一致肯定,顺利达成了项目既定目标。本文重点结合实际经验,以该项目为例,论述一下项目建设过程中分布式部署存储系统架构设计。

正文
2019年6月,我作为项目负责人以及架构师,主持某集团全国保险大数据平台建设项目,该项目周期为2年,总投资为5000万人民币。该项目时间紧任务重,具有相当大的挑战性。一是需要配合的改造部门多,将近有40个部门60个应用配合大数据平台的改造,在数据入湖的时候需要定义统一的数据格式并且要和60个应用进行配合改造。这里面,有一些应用技术老旧、平台维护升级困难、数据来源格式不统一。这就给大数据平台的数据接入带来了相当大的挑战。二是技术含量高,要实现全国保险业务的数据入湖并存储以及解析,并且需要将近5年的数据做特殊处理进行分布式存储。同时,要求大数据平台具有很好的扩展性和高可用性,每日处理的数据量能达到PB级别。三是数据难整合,需要将前5年的数据按其有效性进行分类、转化、整合,并最终展现在界面上,供业务分析和参考。四是涉及人员组织多,直接研发团队成员28人,集团总部再保险部、财务部、风险部、八大业务部、32 个省公司等 200 余人,同时涉及外部配合协作承保系统、核保系统、理赔系统、收付费系统、财务系统等 30 多个厂商团队 300 余人。我担任项目第一负责人,负责项目整体技术方案评估、立项论证以及项目管理工作。在项目启动前,负责分析项目的预期经济效益、可选技术方案,分析关联项目影响,并向公司提交立项报告。项目启动后,作为主要负责人,牵头与公司内部技术专家、外部架构师一同建立项目技术架构组,设计项目整体技术架构,同时挑选项目内部成员,建立需求分析组、系统开发组、系统测试组、运维支持组,开展业务需求分析、系统设计、数据迁移方案、上线切换方案工作。一方面,我个人接受各组工作汇报,指导团队研发工作,监控整体工作进度。同时,我及时向公司领导、项目客户方、相关项目团队汇报沟通工作进展、阐明关键技术要点。
我们都知道,要建设大数据平台项目,里面很重要的一点,就是实现数据的存储。这里很显然,我们要用分布式存储。目前,分布式存储技术主要包含下面四种技术:
1.集群存储技术。集群存储系统是指架构在一个可扩充服务器集群中的文件系统,用户不需要考虑文件是存储在集群中的什么位置,仅仅需要使用统一的界面就可以访问文件资源。当负载增加时,只需要在服务器集群中增加新的服务器就可以提高文件系统的性能。集群存储系统能够保留传统的文件存储系统的语义,增加了集群存储系统必须的机制,可以向用户提供高可靠性、高性能、可扩充的文件存储服务。
2.分布式文件系统。分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包含多个供多用户访问的服务器。另外,对等待性允许一些系统扮演客户机和服务器的双重角色,分布式文件系统以透明方式链接文件服务器和共享文件夹,然后将其映射到单个层次结构,以便可以从一个位置对其进行访问,而实际上数据却分布在不同的位置。用户不必再转至网络上的多个位置以查找所需的信息。
3.网络存储技术。网络存储系统就是将“存储”和“网络”结合起来,通过网络连接各存储设备,实现存储设备之间、存储设备和服务器之间的数据在网络上的高性能传输。为了充分利用资源,减少投资,存储作为构成计算机系统的主要架构之一,就不再仅仅担负附加设备的角色,逐步成为独立的系统。利用网络将此独立的系统和传统的用户设备连接,使其以高速、稳定的数据存储单元存在。用户可以方便得使用浏览器等客户端进行访问和管理。
4.P2P网络存储技术。P2P网络存储技术的应用使得内容不是存在几个主要的服务器上,而是存在所有用户的个人电脑上。这就为网络存储提供了可能性,可以将网络中的剩余存储空间利用起来,实现网络存储。
通过对四种分布式存储技术的比较分析,最终,该项目采用了分布式文件系统技术。因为要实现多个平台的数据入湖,业务允许数据延时,所以我们搭建了Hadoop大数据平台,利用HDFS的高容错性、可构建在廉价的机器上等特点,实现了分布式文件系统的存储。该项目上线运行后,每天都能处理TB级别的数据,当业务量剧增的时候,PB级别的数据处理起来也游刃有余。成功的实现了该项目的预定目标。在项目实施过程中,还需要考虑当部分服务器失效时,数据服务仍可正常访问。这时,就需要用到冗余技术。查询资料得知,常用的冗余技术包括:数据备份、数据分割、门限方案、纠错编码、纠删编码等。在本次项目实施过程中,我们使用到了HDFS的纠删码技术。纠删码技术是一种数据保护技术,最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术。他通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。在一定范围的数据出错情况下,通过纠删码技术可以进行恢复。默认的纠删码策略可以节省50%的存储空间,同时还可以承受更多的存储故障。同时,对于一些重要的数据,我们也使用了数据备份技术,将数据备份到云服务端,保障系统在发生不可抗力的时候数据丢失的情况。运用这两种技术,成功提高了分布式存储系统的可靠性,使得系统更加稳定、高效的运行。
经过我和团队的不懈努力,历时2年,项目终于于 2021年6月顺利通过了验收,并得到了一致好评,运行至今,用户反馈良好,集团公司的再保险业务运营水平得以提升。但是,在实施过程中,也暴露了一些具体问题,例如HDFS上面存储过多的小文件,一方面会大量占用NameNode的内存空间,另一方面就是元数据文件过多,使得寻址索引速度变慢,影响机器性能等等,这些问题通过应急处理和协调,都得到了妥善解决,没有影响到项目的总体进度。我们已经把这些经验和教训,总结到了工作总结里面,向其他技术人员分享,为今后系统架构设计提供帮助。相信通过不断持续学习改进,加强自己的系统分析与设计能力,努力工作,提升工作水平,为社会和公司多贡献一点自己的价值。

你可能感兴趣的:(软考高级系统架构师,论文,分布式,hdfs)