大数据最全大数据技术与应用(Spark)

5)采用容错的、高可伸缩性的 Akka 作为通信框架。

2.Spark Streaming

Spark Streaming 是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源(如 Kafka、Flume、Twitter、Zero 和 TCP 套接字)进行类似 map、reduce 和 join 的复杂操作,并将结果保存到外部文件系统、数据库中,或应用到实时仪表盘上。

Spark Streaming 的核心思想是将流式计算分解成一系列短小的批处理作业,这里的批处理引擎是 Spark Core。也就是把 Spark Streaming 的输入数据按照设定的时间片(如 1 秒)分成一段一段的数据,每一段数据都转换成 Spark 中的 RDD,然后将 Spark Streaming 中对 DStream 的转换操作变为对 Spark 中的 RDD 的转换操作,将 RDD 经过操作变成的中间结果保存在内存中。

  1. Spark SQL

可以执行SQL查询,支持基本的SQL语法和HiveQL语法,可读取的数据源包括Hive、HDFS、关系数据库(如MySQL)等。

  1. Spark MLlib

Spark MLlib 实现了一些常见的机器学习算法和实用程序,包括分类、回归、聚类、协同过滤、降维及底层优化,并且该算法可以进行扩充。Spark MLlib 降低了机器学习的门槛,开发人员只要具备一定的理论知识就能进行机器学习的工作。

5.MLBase

是Spark生态圈的一部分,专注于机器学习领域,学习门槛较低。MLBase由4部分组成:MLlib,MLI,ML Optimizer和MLRuntime。

6.Spark GraphX

图计算的应用在很多情况下处理的数据量都是很庞大的。如果用户需要自行编写相关的图计算算法,并且在集群中应用,难度是非常大的。而使用GraphX即可解决这个问题,因为它内置了许多与图相关的算法,如在移动社交关系分析中可使用图计算相关算法进行处理和分析。

二:mapreduce与spark的对比

1.spark基于内存,mapreduce基于磁盘。

2.spark更加通用,spark提供了transformation和action这两大类的多个功能api,另外还有流式处理sparkstreaming模块、图计算GraphX等等;mapreduce只提供了map和reduce两种操作,流计算以及其他模块的支持比较缺乏。

3.mapreduce任务调度和启动开销大,spark线程池模型减少task启动开销。

4.mapreduce不适合迭代计算(如机器学习、图计算等),交互式处理(数据挖掘) 和流式处理(点击日志分析), 其中间结果需要落地,需要保存到磁盘,这样必然会有磁盘io操做,影响性能。

spark把运算的中间数据存放在内存,迭代计算效率更高,更适合做需要反复迭代的计算。

5.spark容错性高,它通过弹性分布式数据集RDD来实现高效容错,RDD是一组分布式的存储在节点内存中的只读性质的数据集,这些集合是弹性的,某一部分丢失或者出错,可以通过整个数据集的计算流程的血缘关系来实现重建;mapreduce的话容错可能只能重新计算了,成本较高  。

6.spark框架和生态更为复杂,首先有RDD、血缘lineage(保存了RDD的依赖关系)、执行时的有向无环图DAG、stage划分等等,很多时候spark作业都需要根据不同业务场景的需要进行调优已达到性能要求;

mapreduce框架及其生态相对较为简单,对性能的要求也相对较弱,但是运行较为稳定,适合长期后台运行。

总结:spark生态更为丰富,功能更为强大、性能更佳,适用范围更广;mapreduce更简单、稳定性好、适合离线海量数据挖掘计算。

三:结构化数据与非结构化数据

结构化数据是指按照预定义的模式和格式进行组织和存储的数据。它通常以表格形式存在,每个数据字段都有明确定义的数据类型和约束条件。结构化数据可以使用关系型数据库进行存储和管理,例如使用SQL语言进行查询和操作。常见的结构化数据包括用户信息、订单记录、销售数据等。

非结构化数据是指没有明确格式和模式的数据,它的组织形式不规则且不易被机器直接理解和处理。非结构化数据通常以文本、图像、音频、视频等形式存在。由于非结构化数据的复杂性,传统的关系型数据库难以有效存储和处理这些数据。因此,针对非结构化数据,常用的存储和处理方式包括文本搜索引擎、图像识别技术、自然语言处理等。

四:spark搭建的三种模式

1.local

Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。

2.yarn

Standalone模式是指使用Spark原生的资源管理器的集群运行模式,需要使用Master和Worker节点,其中,Master节点负责资源的控制、管理、监控集群中的Worker节点.3.standalone

五:mapreduce的执行流程

YARN模式是指使用Hadoop的YARN作为资源管理器的集群运行模式。
在YARN模式下,不需要使用Master和Worker节点(即不需要在搭建额外的spark集群了),而是使用YARN下的ResourceManager 节点与NodeManager节点,对应Standalone模式下的Master节点和Worker节点。

1、数据输入
  • 在执行MapReduce任务前,将小文件进行合并,大量小文件会产生大量的map任务,增大map任务装载次数,而任务装载较耗时,从而导致MapReduce运行速度较慢。因此采用CombineTextInputFormat来作为输入,解决输入端大量的小文件场景。
2、Map阶段
  • 减少溢写(spill)次数
  • 减少合并(merge)次数
  • 在map之后,不影响业务逻辑前提下,先进行combine处理,减少 I/O
3、Reduce阶段

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

csdn.net/topics/618545628)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值