1.4.3 传统大数据架构
传统大数据架构模式与传统数仓支撑的数据架构模式在业务应用需求上并没有发生根本性的变化,但是由于数据量、性能等问题导致原有的系统无法正常使用,进而需要进行技术改造和升级。该架构模式的核心是采用大数据架构来代替原有的数据仓库或BI类的底层。
传统大数据架构主要解决了面对海量数据时存储和计算的单位成本与能力瓶颈问题。
• 单位成本:传统提升存储和计算能力的做法是升级硬件,如增加硬盘、CPU、内存条的数量。当面对海量数据时,传统高性能主机的单位存储成本和使用成本极高。传统大数据架构模式的硬件基础是低价格、低配置的主机,可以通过水平扩展的方式提升存储和计算能力,因此单位成本大大降低。
• 能力瓶颈:无论是存储还是计算,当数据量足够大时,很容易出现高性能主机无法处理的情况。传统大数据架构模式的水平扩展模式可以支持大规模甚至超大规模集群。因此,存储和计算的能力极限很高。
传统大数据架构具有如下特征。
• 物理资源:从企业的数据量级、应用条件、数据安全等方面综合考虑,可选择私有化或第三方云服务两种物理模式,前者的优势是数据在企业内部环境内流通,因此具有更高的数据安全性和便利性;后者的优势在于单位成本更低、弹性扩展和按需付费、运维和部署成本更低等。
• 功能逻辑:从异构、多源数据环境内同步数据到大数据平台,该同步模式一般都为非实时同步;在大数据平台上,根据应用功能需求实现批量计算,最终以API、表(含数据)等方式提供服务;在应用需求上,通过API、服务接口、JDBC等方式支持数据分析、报表查询、机器学习等。
• 技术要求:主要是将关系数据库、文件、FTP等同步到大数据平台(主流框架为Hadoop);基于Hadoop生态内的不同技术组件实现数据开发、计算、运维管理,技术包括HDFS、MapReduce、Hive、HBase、Spark等;在应用层,可以支持多种SQL on Hadoop的技术组件或系统,以及API应用功能或服务等。
• 数据流模式:有两个数据流分支,主要体现在数据同步和数据计算两个核心环节上。数据同步需要拆分为全量同步和增量同步,而数据计算则需要拆分为全量计算和增量计算,由于计算中可能含有算法和模型,因此也会包含模型的全量训练和增量训练。
图1-6所示为传统大数据架构的核心逻辑,构建于DataX+Hadoop+Spark之上。
• 数据源除RDBMS外,还会包括各种数据文件、HTTP/API、其他数据(如其他BI系统、Hadoop集群等)等。
• 对于数据同步,选择支持多种数据源和目标的DataX。
• 分布式文件存储基于Hadoop的HDFS实现;分布式查询使用建立在HDFS之上的Hive和HBase,在HBase上还可以使用Phoenix实现类SQL的查询;分布式计算主要是批量计算模式,基于Hadoop的MapReduce、Tez、Spark实现,除Hive和HBase的分布式查询外,Spark也提供了Spark SQL、Spark DataFrame、Spark GraphX来实现更高效的数据计算方式;分布式机器学习基于Spark的ML模块实现;作业调度系统选择Oozie、分布式协作服务使用ZooKeeper、集群资源管理使用YARN。
• 数据应用支持个性化推荐、用户画像、精准营销、报表查询等。
图1-6 传统大数据架构的核心逻辑
传统大数据架构的优势是在应对海量数据时,能极大地降低IT成本且批处理效率较高,同时基于大数据生态的功能丰富性,可以支持的应用场景更为广泛;劣势在于技术门槛高、开发周期长、系统复杂度高,同时对流数据和流式计算的支持性较弱。因此,它主要适合于大中型企业,特别是数据量级在TB级以上且数据应用主要以离线、批量计算为主的场景,如用户画像、数据建模服务、报表统计、数据挖掘和分析等。