当前位置:   article > 正文

初入云上大数据2

初入云上大数据2

目录

一、什么是Hadoop生态圈?

1、基本概念

2、主要组成部分

二、什么是MapReduce?

1、基本概念

2、MapReduce的特点

3、MapReduce的运行架构

三、什么是spark?

1、spark介绍

2、spark的特点

 3、与MapReduce的区别

四、冷备、温备、热备

五、结构化数据与非结构化数据

六、附Linux部分基本操作命令


一、什么是Hadoop生态圈

1、基本概念

Hadoop生态圈是由一系列基于Hadoop开发的相关工具、库、应用程序、平台和服务组成的生态系统。它们都是用于大数据处理、分析和存储的技术,旨在解决大规模数据处理问题。

2、主要组成部分

1,Hadoop分布式文件系统(HDFS):HDFS是一个分布式文件系统,可以存储大量的数据。它将数据划分成 块,存储在多个节点上,并提供高可靠性和容错性,以确保数据不会丢失。例如,如果一个节点失败,HDFS可以自动将其数据复制到其他节点,从而保证数据的可靠性。

2,MapReduce:MapReduce是一个分布式计算模型,用于处理大规模数据集。它将数据划分成小块,然后在分布式计算集群上并行处理这些块。MapReduce的核心是“map”和“reduce”两个阶段。在“map”阶段,将数据分解成键值对并进行处理;在“reduce”阶段,对中间结果进行合并和汇总。例如,可以使用MapReduce对Web日志文件进行分析,以了解用户的访问模式和行为。

3,YARN:YARN是一个资源管理器,用于管理Hadoop集群中的计算资源。它可以分配计算资源,管理应用程序,并提供集群级别的安全性和控制。例如,YARN可以分配计算资源,让Spark应用程序在集群上运行。

4,Hive:Hive是一个数据仓库工具,可以将结构化数据映射到HDFS上。它提供了类似SQL的查询语言,可以进行数据分析和报表生成。例如,可以使用Hive查询电子商务网站的订单数据,并生成报表。

5,Pig:Pig是一个数据分析工具,可以处理非结构化数据。它提供了一个脚本语言,可以将脚本转换为MapReduce任务。例如,可以使用Pig处理社交媒体上的文本数据,并提取有用的信息。

6,HBase:HBase是一个分布式的非关系型数据库,可以处理非常大的数据集。它提供了高度可伸缩性和容错性,可以存储海量的数据。例如,可以使用HBase存储物联网传感器数据,并对数据进行分析。

7,ZooKeeper:ZooKeeper是一个分布式的协调服务,可以协调集群中各个节点之间的交互。它可以确保节点之间的同步和一致性,提供可靠的服务。例如,在Hadoop集群中,ZooKeeper可以用于管理HDFS的名称节点。

8,Spark:Spark是一个基于内存的计算引擎,用于处理大规模数据集。它提供了比MapReduce更快的处理速度,并支持实时数据处理和机器学习。例如,可以使用Spark对电商网站的销售数据进行实时分析,并对用户进行个性化推荐。

二、什么是MapReduce?

1、基本概念

MapReduce是一个分布式计算框架,主要由两部分组成:编程模型和运行时环境。其中,编程模型为用户提供了非常易用的编程接口,用户只需要像编写串行程序一样实现几个简单的函数即可实现一个分布式程序,而其他比较复杂的工作,如节点间的通信、节点失效、数据切分等,全部由MapReduce运行时环境完成。

2、MapReduce的特点

1、易于编程。它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器运行。也就是说你写一个分布式程序,跟写一个简单的串行程序是一模一样的。就是因为这个特点,使得MapReduce 编程变得非常流行。

2、良好的扩展性。当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展它的计算能力。

3、高容错性。 MapReduce 设计的初衷就是使程序能够部署在廉价的PC机器上, 这就要求它具有很高的容错性。比如其中一台机器挂了,它可以把上面的计算任务转移到另外一个节点上运行,不至于使这个任务运行失败,而且这个过程不需要人工干预,完全是由 Hadoop 内部完成的

4、能对PB级以上海量数据进行离线处理。适合离线处理而不适合实时处理, 比如要求毫秒级别的返回一个结果, MapReduce 很难做到。

3、MapReduce的运行架构

MapReduce采用Master/Slave的架构,其架构图如下所示:

MapReduce包含四个组成部分,分别为Client、JobTracker、TaskTracker和Task,下面我们详细介绍这四个组成部分。

  1)Client 客户端

  每一个 Job 都会在用户端通过 Client 类将应用程序以及配置参数 Configuration 打包成 JAR 文件存储在 HDFS,并把路径提交到 JobTracker 的 master 服务,然后由 master 创建每一个 Task(即 MapTask 和 ReduceTask) 将它们分发到各个 TaskTracker 服务中去执行。

  2)JobTracker

  JobTracke负责资源监控和作业调度。JobTracker 监控所有TaskTracker 与job的健康状况,一旦发现失败,就将相应的任务转移到其他节点;同时,JobTracker 会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器,而调度器会在资源出现空闲时,选择合适的任务使用这些资源。在Hadoop中,任务调度器是一个可插拔的模块,用户可以根据自己的需要设计相应的调度器。

  3)TaskTracker

  TaskTracker 会周期性地通过Heartbeat 将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker 发送过来的命令并执行相应的操作(如启动新任务、杀死任务等)。TaskTracker 使用"slot"等量划分本节点上的资源量。"slot"代表计算资源(CPU、内存等)。一个Task 获取到一个slot 后才有机会运行,而Hadoop 调度器的作用就是将各个TaskTracker 上的空闲slot分配给Task 使用。slot分为Map slot 和Reduce slot 两种,分别供Map Task 和Reduce Task 使用。TaskTracker 通过slot 数目(可配置参数)限定Task 的并发度。

  4)Task

  Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动。HDFS 以固定大小的block 为基本单位存储数据,而对于MapReduce 而言,其处理单位是split。split 是一个逻辑概念,它只包含一些元数据信息,比如数据起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。但需要注意的是,split 的多少决定了Map Task 的数目,因为每个split 只会交给一个Map Task 处理。Split 和 Block的关系如下图所示:

三、什么是spark?

1、spark介绍

Spark 是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,其用于大规模数据处理的统一分析引擎。它提供了 Scala、Java、Python 和 R 中的高级 API,以及支持用于数据分析的通用计算图的优化引擎。它还支持丰富的高级工具集,包括用于 SQL 和 DataFrames 的 Spark SQL、用于 Pandas 工作负载的 Pandas API on Spark、用于机器学习的 MLlib、用于图形处理的 GraphX 和用于流处理的结构化流。

2、spark的特点

1、运行速度迅速:Spark基于内存进行计算(当然也有部分计算基于磁盘,比如shuffle),内存计算下,Spark 比 Hadoop 快100倍。

2、容易上手开发:Spark的基于RDD的计算模型,比Hadoop的基于Map-Reduce的计算模型要更加易于理解,更加易于上手开发,实现各种复杂功能,比如二次排序、topn等复杂操作时,更加便捷。

3、超强的通用性:Spark提供了Spark RDD、Spark SQL、Spark Streaming、Spark MLlib、Spark GraphX等技术组件,可以一站式地完成大数据领域的离线批处理、交互式查询、流式计算、机器学习、图计算等常见的任务。

4、集成Hadoop:Spark并不是要成为一个大数据领域的“独裁者”,一个人霸占大数据领域所有的“地盘”,而是与Hadoop进行了高度的集成,两者可以完美的配合使用。Hadoop的HDFS、Hive、HBase负责存储,YARN负责资源调度;Spark复杂大数据计算。实际上,Hadoop+Spark的组合,是一种“double win”的组合。

5、极高的活跃度:Spark目前是Apache基金会的顶级项目,全世界有大量的优秀工程师是Spark的committer。并且世界上很多顶级的IT公司都在大规模地使用Spark。

 3、与MapReduce的区别

1、Spark处理数据是基于内存的,而MapReduce是基于磁盘处理数据的。

MapReduce是将中间结果保存到磁盘中,减少了内存占用,牺牲了计算性能。Spark是将计算的中间结果保存到内存中,可以反复利用,提高了处理数据的性能。

2、Spark在处理数据时构建了DAG有向无环图,减少了shuffle和数据落地磁盘的次数。

Spark计算比MapReduce快的根本原因在于DAG计算模型。一般而言,DAG相比MapReduce在大多数情况下可以减少shuffle次数。Spark的DAGScheduler相当于一个改进版的MapReduce,如果计算不涉及与其他节点进行数据交换,Spark可以在内存中一次性完成这些操作,也就是中间结果无须落盘,减少了磁盘IO的操作。但是,如果计算过程中涉及数据交换,Spark也是会把shuffle的数据写磁盘的。

3、Spark比MapReduce快。

有一个误区,Spark是基于内存的计算,所以快,这不是主要原因,要对数据做计算,必然得加载到内存,Hadoop也是如此,只不过Spark支持将需要反复用到的数据Cache到内存中,减少数据加载耗时,所以Spark跑机器学习算法比较在行(需要对数据进行反复迭代)。

4、Spark是粗粒度资源申请,而MapReduce是细粒度资源申请。

粗粒度申请资源指的是在提交资源时,Spark会提前向资源管理器(YARN,Mess)将资源申请完毕,如果申请不到资源就等待,如果申请到就运行task任务,而不需要task再去申请资源。

MapReduce是细粒度申请资源,提交任务,task自己申请资源自己运行程序,自己释放资源,虽然资源能够充分利用,但是这样任务运行的很慢。

5、MapReduce的Task的执行单元是进程,Spark的Task执行单元是线程。

进程的创建销毁的开销较大,线程开销较小。

四、冷备、温备、热备

按备份系统的准备程度,可将其分为冷备份、温备份和热备份三大类 。

1、冷备份 : 备份系统未安装或未配置成与当前使用的系统相同或相似的运行环境,应用系统数据没有及时装入备份系统。一旦发生灾难,需安装配置所需的运行环境,用数据备份介质(磁带或光盘) 恢复应用数据,手工逐笔或自动批量追补孤立数据,将终端用户通过通讯线路切换到备份系统,恢复业务运行。
     优点 : 设备投资较少,节省通信费用,通信环境要求不高
     缺点 : 恢复时间较长,一般要数天至1周,数据完整性与一致性较差

2、温备份 : 将备份系统已安装配置成与当前使用的系统相同或相似的系统和网络运行环境,安装应用系统业务定期备份数据。一旦发生灾难,直接使用定期备份数据,手工逐笔或自动批量追补孤立数据或将终端用户通过通讯线路切换到备份系统,恢复业务运行。
     优点 : 设备投资较少,通信环境要求不高
     缺点 : 恢复时间长,一般要十几个小时至数天,数据完整性与一致性较差

3、热备份 : 备份处于联机状态,当前应用系统通过高速通信线路将数据实时传送到备份系统,保持备份系统与当前应用系统数据的同步;也可定时在备份系统上恢复应用系统的数据。一旦发生灾难,不用追补或只需追补很少的孤立数据,备份系统可快速接替生产系统运行,恢复营业。
     优点 : 恢复时间短,一般几十分钟到数小时,数据完整性与一致性最好,数据丢失可能性最小
     缺点 : 设备投资大,通信费用高,通信环境要求高,平时运行管理较复杂

五、结构化数据与非结构化数据

1. 概述不同
结构化数据是指按照固定格式和规则组织的数据,例如表格、数据库等。非结构化数据则是指没有固定格式和规则的数据,例如文本、音频和视频等。

2. 含义不同
结构化数据是按照固定格式和规则组织的数据。例如,电子表格中的数据就是结构化数据,因为它们按照一定的列和行组织,并且每个单元格都有自己的数据类型和格式。

非结构化数据是没有固定格式和规则的数据。例如,一篇文章中的文本就是非结构化数据,因为它没有固定的格式和规则,也没有明确的数据类型和格式。

3.. 组织方式和数据类型不同
结构化数据按照固定格式和规则组织,具有明确的数据类型和格式,而非结构化数据没有固定的格式和规则,也没有明确的数据类型和格式。此外,结构化数据可以方便地进行处理和分析,而非结构化数据则需要进行特殊的处理和分析。

六、附Linux部分基本操作命令

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/393025
推荐阅读
相关标签
  

闽ICP备14008679号