1.1.3 大数据平台
大数据平台是指通过Hadoop、Spark、Flink等分布式、实时或离线计算框架运行计算任务的平台。
大数据平台的目标是服务业务需求,解决现有业务问题,具有容纳海量数据、处理速度快、兼容性好等特点。
图1-1展示了大数据平台的基本架构,其中涉及多项技术,我们会在后续章节分别介绍。
图1-1 大数据平台的基本架构
大数据平台的相关技术如下。
● HDFS:它的全称为Hadoop分布式文件系统(Hadoop Distributed File System),是一种适合运行在通用或廉价硬件上的分布式文件系统,具有高度容错性,能提供高吞吐量的数据访问,适合应用于大规模数据集。
● HBase:它是一个分布式的、面向列的开源数据库,适合存储非结构化数据,具有高可靠性、高性能、面向列、可伸缩等特点。
● MapReduce:它是一种编程模型,用于大规模数据集的并行运算。MapReduce包括Map(映射)和Reduce(归约)两个步骤,能够让编程人员在不了解分布式并行编程的情况下在分布式系统中运行程序。
● Spark:它是专为大规模数据处理而设计的类似于MapReduce的通用并行框架,它的特点是可以将中间输出结果保存在内存中,不需要读写HDFS。
● Storm:它是一个分布式的、有容错性的实时计算框架,能够可靠地处理无界流数据,进行实时数据分析处理。
● Spark Streaming:它是Spark API的扩展,支持可扩展、高吞吐量、强容错的实时数据流处理。
● Flink:它是一个开源大数据处理框架,用于对无界数据流和有界数据流进行计算,能以内存速度和任何规模进行计算。
● Hive:它是基于Hadoop的一个数据仓库工具,用于进行数据提取、转化与加载,提供存储、查询和分析大规模数据的机制。
● Pig:它是基于Hadoop的大规模数据分析平台,提供Pig Latin语言,该语言的编译器会把数据分析请求转换为一系列经过优化处理的MapReduce作业。
● YARN:它是一种Hadoop资源管理器,具有一个通用的资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度服务。
● Presto:它是一个开源的分布式SQL查询引擎,可用于交互式分析查询,其架构由关系型数据库架构演化而来。
● Druid:它是一个分布式的、列存储的开源存储系统,适用于实时数据分析,具有快速聚合、灵活过滤、毫秒级查询、低延迟数据导入等数据操作特点。
● Impala:它是一种数据查询系统,可以使用SQL语句快速查询存储在HDFS或HBase中的PB级大数据。
● Ranger:它是一种集中式安全管理框架,用于解决授权和审计问题,可以对HDFS、YARN、Hive等进行细粒度的数据访问控制。
● Hue:它的全称为Hadoop User Experience,是一种Hadoop图形化用户界面,提供集成化的大数据可视化界面。它允许用户通过一个集中的界面访问、浏览、操作主流的大数据软件,即通过Hue可以实现整个大数据生态圈的集中式浏览,给用户带来非常友好的使用体验。
● Kerberos:它是一种计算机网络认证协议,旨在通过开放和不安全的网络提供可靠的身份验证。
● Azkaban:它是批量工作流任务调度器,使用KV(Key-Value,键值对)文件建立任务之间的依赖关系,并提供Web界面,方便用户管理和调度工作流。
● Sqoop:它是一个开源工具,用于在Hadoop与传统数据库(比如MySQL)之间进行数据传递。