一、Hadoop 生态圈组件介绍
Hadoop包括以下3个核心模块。
- 1)HDFS(分布式文件系统):一个分布式文件系统,能够以高吞吐量访问应用中的数据。
- 2)YARN(分布式资源管理器):一个作业调度和资源管理框架。
- 3)MapReduce(分布式计算框架):一个基于YARN的大数据并行处理程序。
HDFS(Hadoop Distributed File System):HDFS 是 Hadoop 的 分布式文件系统,它是将大规模数据分散存储在多个节点上的基础。HDFS 主要负责数据的存储和管理,可以将大数据集分成多个数据块,并将这些数据块分配到不同的计算节点上存储,提高数据的可靠性和处理效率。
MapReduce:MapReduce 是 Hadoop 的 分布式计算框架,它提供了一种简单的编程模型,通过将大规模数据分解成多个小任务并行处理,可以大大提高数据处理的效率。MapReduce 模型包括 Map 和 Reduce 两个阶段,其中 Map 阶段将数据分解成多个小块进行处理,Reduce 阶段将处理结果合并。
YARN(Yet Another Resource Negotiator):YARN 是 Hadoop 的 资源管理器,它负责为多个应用程序分配和管理计算资源,可以有效地提高计算资源的利用率。YARN 可以将集群中的计算资源划分为多个容器,为不同的应用程序提供适当的资源,并监控和管理各个应用程序的运行状态。
二、 MapReduce 概述
1.1 MapReduce的定义
MapReduce是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。
1.2 MapReduce 的优缺点
1、优点:
- MR 易于编程
- 有良好的扩展性
- 有很高的容错性
- 适合做 PB 级以上海量数据的离线处理
2、缺点:
- 不擅长实时计算
- 不擅长流式计算
- 不擅长 DAG (有向图)计算
1.3 MapReduce的核心思想
(1)分布式计算程序通常分为 2 个阶段
(2)第一个阶段的 MapTask 并发实例,完全并行运行,互不相干
(3)第二个阶段的 ReduceTask 并发实例互不相干,但是他们的数据依赖于上一个阶段的所有 MapTask 并发实例的输出
(4)MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行
三、spark技术特点和概述
1.1 Spark概述
Spark 是一种由 Scala 语言开发的快速、通用、可扩展的
大数据分析引擎
。
spark框架包含多个紧密集成的组件,包括Spark SQL(即席查询)、Spark Streaming(实时流处理)、Spark MLlib(机器学习库)、Spark GraphX(图计算)。如下图所示,并且spark支持在一个应用中同时使用这些组件。
1.2 Spark的特点
- 运行速度快
- 易于使用
- 通用性强
- 适用环境广
- 代码简洁
1.3 Spark的运行架构
Spark运行架构由三个主要组件组成:Driver节点、Cluster Manager和Executor节点。
- 集群资源管理器(Cluster Manager)
- Spark 驱动节点(Driver)
- 若干个工作节点(Worker Node)
(1)Driver节点是应用程序的入口点,它负责解析用户的应用程序代码,并将任务划分成一系列的任务(stage),以及在集群上为任务安排调度。Driver节点负责管理各个任务之间的依赖关系,并将它们转换成一个可执行的物理执行计划(DAG)。
(2)Cluster Manager负责在集群中为应用程序分配资源。它可以是Standalone,YARN或Mesos等。
(3)Executor节点负责在工作节点上执行任务。每个Executor都运行在自己的JVM进程中,并且为应用程序分配了一定数量的内存和CPU资源。Executor在运行过程中负责接收和执行任务。
1.4 Spark的原理
四、mapreduce和spark的区别
① mapreduce是基于磁盘的,spark是基于内存的。mapreduce会产生大量的磁盘IO,而 spark基于DAG计算模型,会减少Shaffer过程即磁盘IO减少。
②spark是多线程运行,mapreduce是多进程运行。进程的启动和关闭和会耗费一定的时间。
③兼容性:spark可单独也可以部署为on yarn模式,mapreduce一般都是on yarn模式
④shuffle与排序,mapreduce有reduce必排序
⑤spark有灵活的内存管理和策略
五、结构化数据与非结构化数据是什么?
结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。
非结构化数据:不方便用数据库二维逻辑表来表现的数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。
六、Linux简单操作命令实训练习
版权归原作者 YYY7769 所有, 如有侵权,请联系我们删除。