大数据技术(程序员月薪2w+小技巧)

小技巧放最后!!!

1.什么是spark?

Spark是一种快速、通用、可扩展的大数据分析引擎。

spark官网:Apache Spark™ - Unified Engine for large-scale data analytics

2.spark和mapreduce的区别

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

  mapreduce是将中间结果保存到磁盘中,减少了内存占用,牺牲了计算性能。

  Spark是将计算的中间结果保存到内存中,可以反复利用,提高了处理数据的性能。

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

   3.Spark是粗粒度资源申请,而MapReduce是细粒度资源申请

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

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

3.什么是结构化数据,什么是非结构化数据

概念

结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。

非结构化数据:不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

数据模型

结构化数据:二维表(关系型)

非结构化数据:无

4.spark特点

1 速度快

由apache Spark支持内存计算,并且通过DAG(有向无环图)执行引擎支持无环数据流,所以官方宣称其在内存中的运算速度要比Hadoop的MapReduce快100倍,在硬盘中要快10倍

Spark处理数据时,可以将中间处理结果数据存储到内存中

Spark Job调度以DAG方式,并且每个任务Task执行以线程方式,并不是像MapReduce以进程方式执行

2易于使用

Spark的版本已经更新到了Spark3.1.2(截止日期2021.06.01),支持了包括Java、Scala、Python、R和SQL语言在内的多种语言。为了兼容Spark2.x企业级应用场景,Spark仍然持续更新Spark2版本

3 通用性强

在Spark的基础上,Spark还提供了包括Spark SQL、Spark Streaming、MLib及GraphX在内的多个工具库,我们可以在一个应用中无缝的使用这些工具库
在这里插入图片描述

四、运行方式
Spark支持多种运行方式,包括在Hadoop和Mesos上,也支持Standalone的独立运行模式,同时也可以运行在云Kubernets(Spark2.3开始支持)上
对于数据源而言,Spark支持从HDFS、HBase、Cassandra及Kafka等多种途径获取和数据

5.spark用途

Spark是大数据技术中数据计算处理的王者,能够一次处理PB级的数据,分布在数千个协作的物理或虚拟服务器集群中,它有一套广泛的开发者库和API,并且支持Java,Python,R和Scala等语言,其灵活的特性,适合各种环境,以下是Spark最常见的两种应用场景:

离线场景:可以以时间为维度,几年的数据集,或者以业务为维度,某个领域的大数据集等,这种数据我们一般叫做离线数据,或者冷数据。

实时场景:网站埋点、实时从前端页面传输过来的数据、业务系统或物理硬件实时传输过来的数据、硬件信号或者图像数据等,需要实时去计算处理并且返回结果的数据。

Spark是为数据科学设计的,数据科学家将Spark纳入其应用程序,能够处理包括跨大型数据集的交互式查询,来自传感器或金融系统的流数据以及机器学习任务,且Spark将数据集缓存在内存中的能力大大加快了迭代数据处理速度,使得Spark成为实现迭代的MapReduce算法的理想处理引擎。

Spark是为大数据工程师设计的,在强大的计算能力和优秀的架构设计面前,可以让数据工程师在不管是离线情景下还是实时的业务需求下,都可以放心的选择使用Spark。

Spark因其自身优势,发展势头迅猛,目前几乎所有一站式大数据平台都已集成了Spark,很多行业也都正在用Spark来改善他们的业务,以下是Spark在一些行业的具体用途:

保险行业:通过使用Spark的机器学习功能来处理和分析所有索赔,优化索赔报销流程。

医疗保健:使用Spark Core,Streaming和SQL构建病人护理系统。

零售业:使用Spark分析销售点数据和优惠券使用情况。

互联网:使用Spark的ML功能来识别虚假的配置文件,并增强他们向客户展示的产品匹配。

银行业:使用机器学习模型来预测某些金融产品的零售×××的资料。

政府:分析地理,时间和财政支出。

科学研究:通过时间,深度,地理分析地震事件来预测未来的事件。

6.spark结构框架
一、Spark Core
实现了 Spark 的基本功能,包含RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。
数据结构:RDD
二、Spark SQL
Spark 用来操作结构化数据的程序包。通过 Spark SQL,我们可以使用 SQL操作数据。
数据结构:Dataset/DataFrame = RDD + Schema
三、Spark Streaming
Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API。
数据结构:DStream = Seq[RDD],DStream离散化流
四、Spark GraphX
Spark中用于图计算的API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。
数据结构:RDD或者DataFrame
五、Spark MLlib
提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。
数据结构:RDD或者DataFrame。

7.Spark和Hadoop的对比
一、二者各方面比较
Hadoop    Spark
类型:    基础平台,包含计算、存储、调度    分布式计算工具
场景:   大规模数据集上的批处理    迭代计算,交互式计算,流计算
价格:    对机器要求低,便宜    对内存有要求,相对较贵
编程范式:    Map+Reduce,API较为底层,算法适应性差    RDD组成DAG有向无环图,API较为顶层,方便使用
数据存储结构:    MapReduce中间计算结果在HDFS磁盘上,延迟大    RDD中间运算结果在内存中,延迟小
运行方式    Task以进程方式维护,任务启动慢    Task以线程方式维护,任务启动快

小技巧:时间有限下一篇文章更新!!!

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值