大数据概述
一、列举Hadoop生态的各个组件及其功能、以及各个组件之间的相互关系,以图呈现并加以文字描述。
1、HDFS(分布式文件系统)
HDFS是Hadoop组件的核心之一,是整个hadoop体系的基础,是用来负责数据的存储与管理功能的。
HDFS是高度容错设计和适合在低成本的硬件上部署。
HDFS能够提供高吞吐量访问应用程序数据,所以其适用于大型数据集的应用程序。
2、Yarn(资源管理框架)
YARN是集群资源调度管理的组件,在YARN之上部署其他计算框架,由YARN统一进行资源分配。
3、Mapreduce(分布式计算框架)
MapReduce是分布式并行编程模型,用于大规模数据集的并行计算,它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分。
其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。
让不会分布式并行编程的技术人员,也可以将程序运行在分布式系统上,实现海量数据集的计算。
MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。
4、Sqoop(数据同步工具)
Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。
数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。
Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。
5、Hbase(分布式列存数据库)
HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。
HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。
HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。
6、Zookeeper(分布式协作服务)
解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。
Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。
7、Hive(数据仓库)
Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。
HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。
可对存储在Hadoop文件中的数据集进行数据整理、特殊查询和分析处理。
8、Flume(日志收集工具)
它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。
同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。
此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力,用于收集数据。
总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统。当然也可以用于收集其他类型数据。
9、Spark(内存DAG计算模型)
Spark 是使用 scala 实现的基于内存计算的大数据开源集群计算环境,用于大规模数据处理的统一分析引擎。
它提供 Java、Scala、Python 和 R 中的高级 API,以及支持通用执行图的优化引擎。
它还支持一组丰富的高级工具,包括用于 SQL 和结构化数据处理的Spark SQL 、用于机器学习的MLlib、用于图形处理的 GraphX 以及用于增量计算和流处理的结构化流。
具有轻量级快速处理、易于使用、支持复杂查询、实时的流处理、与已存Hadoop数据整合、活跃和不断壮大的社区等特点。
Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍。
二、对比Hadoop与Spark的优缺点。
1、性能
Spark在内存中处理数据相比于Hadoop使用磁盘IO进行操作速度更快
,具体流程为:
Mapreduce: 读 – 处理 - 写磁盘 -- 读 - 处理 - 写
Spark: 读 - 处理 - 处理 --(需要的时候)写磁盘 - 写
而不同于Mapreduce,Spark把中间数据缓存在内存里,处理数据的延迟大大降低了
。
由于Spark数据的交换无需写入磁盘,能很大程度地避免数据落地
。
2、易用性
Spark支持Scala、Java、Python、Spark SQL等语言等,Spark可以使用交互模式
操作获得实时反馈。
MapReduce没有交互模式。
3、成本
Spark在数据多大PB的情况下依然有非常高
的处理速度。
被用于在数量只有十分之一的机器上,对100TB数据进行排序的速度比Hadoop MapReduce快3倍。
4、兼容性
MapReduce和Spark相互兼容
;
MapReduce通过JDBC和ODC兼容诸多数据源、文件格式和商业智能工具,Spark具有与MapReduce同样的兼容性。
三、如何实现Hadoop与Spark的统一部署?
由于Hadoop生态系统中的一些组件所实现的功能,目前还是无法由Spark取代的,例如Spark无法做到毫秒级响应。
另一方面,企业许多现有应用是基于Hadoop开发的,技术转换成用Spark开发需要一定成本。
所以可将不同的计算框架统一部署在Yarn资源管理框架上,由Yarn进行资源调度和管理,计算资源按需伸缩,不需要负载应用混搭,提高集群利用率,共享底层存储,避免数据跨集群迁移,实现Hadoop和spark的统一部署。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通