《数字化转型之路》 —2.2.2 大数据技术生态系统
2.2.2 大数据技术生态系统
随着Hadoop的不断推广和应用,社区在2012年推出Hadoop 2.0,并于2018年推出3.0版本。其中HDFS和MapReduce是其核心的组件,成为整个Hadoop生态系统的基石。
HDFS(Hadoop分布式文件系统)作为一个分布式文件系统,通过网络服务将众多的X86服务器组合成一个集群。每个服务器使用自身的廉价硬盘构成巨大的存储池,每一个文件按照设定的块大小分割成若干个块,然后按照每个块保存三份副本的方式分散到不同的节点上。由于没有采用专用的硬件存储设备,因此整体成本要低很多,而且由于多副本的存在也保证了数据不会因为个别设备的故障而无法访问。因此,基于HDFS就可以利用有限的资金来构建PB级的存储池,而其中所保存的文件则可以通过网络服务供集群中的所有节点访问。Hadoop还提供了Flume和Sqoop工具,分别实现实时日志和关系型数据的数据自动化(导入HDFS中),使得HDFS与业务系统能够更好地衔接起来。
如果说HDFS为大数据分析提供了海量的存储池,那么Map-Reduce为数据分析提供了所需要的计算力和平台。MapReduce作为一种编程模型,提供了强大的开发框架,以便让一个复杂的任务能够分散到众多的节点上分布执行(Map),并对所有节点处理后的中间数据进行集中汇总和加工(Reduce)。MapReduce能够支持广泛的开发语言而且提供了强大的API,因此数据工程师可以结合业务要求灵活开发数据分析应用。而且为了进一步降低数据分析的门槛,Hadoop还提供了Hive这类轻量级数据仓库工具。数据分析师可以使用类似于SQL的脚本语言来设计分析程序,Hive会负责自动生成相应的MapReduce Java程序。
在Hadoop 2.0中,针对MapReduce内因Jobtracker负担过重而导致的集群在可扩展性、调度效率方面的问题,提供了全新的资源管理平台YARN。该平台一方面让业界最大的Hadoop集群规模从4000台左右扩展到了8000台以上,另一方面则是通过容器概念的引入实现了并发作业调度的飞跃,从而使得在集群上可以更快地执行大规模的数据分析任务。
除了Hadoop的核心组件,大数据生态体系中还有很多其他的技术在不断涌现,如:
Spark:Apache社区另一个针对大规模数据处理的分析引擎。与Hadoop MapReduce相比,其基于内存的计算模式在性能上具有极大的提升,而且开发效率表现得也非常出色。
Kafka:一种高吞吐量的分布式发布订阅消息系统,可以用于构建实时数据管道和流式应用程序,具有水平扩展、容错等优异特性。
Oozie:作为工作流的工具,它可以把多个Map/Reduce作业组合到一个逻辑工作单元中,从而完成更为大型的任务。
ZooKeeper:是Google的Chubby的开源实现,为分布式系统提供一致性服务。它基于Paxos算法开发,解决了分布式系统在分区容错性方面的问题。
Druid:一个分布式的支持实时分析的数据存储系统。与传统的OLAP系统相比,它在处理数据的规模、数据处理的实时性方面有了显著的性能改进。
Elastic Search:一个分布式的RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。Elastic Search允许执行和合并多种类型(结构化、非结构化、地理位置以及度量指标)的搜索,而且支持海量的数据源。
MPP(大规模并行处理)数据库:一种通过分片将数据和处理分散到若干节点的数据库技术。同时由于无共享(share nothing)模式,各个节点只处理本地的数据,从而极大地降低了对集中存储的需求,在保证性能的同时也使得系统具有极强的可扩展性。MPP的著名平台包括Greenplum、Vertica等,Hadoop社区推出的HBase也是一个典型的MPP数据库。
以上技术的整合,为企业提供了具备强大存储及计算能力的分布式大数据处理平台。相比于Hadoop平台以批处理方式进行离线分析,Storm和Spark等平台实现了流式计算,从而使得企业的大数据分析具有了时效性,能够让决策在业务流程中即时完成。
大数据平台就如同云计算的PaaS服务,它的价值体现还需要具体应用的运行。因此通过Java、Scala、Python、R及Hive等开发语言来开发数据分析应用程序才是大数据分析的关键,这就涉及模型和算法的投入。
- 点赞
- 收藏
- 关注作者
评论(0)