Spark笔记一之简介,启动,与Hadoop对比,运行模式

本文介绍了Apache Spark,一个大数据处理框架,强调其在内存中处理速度优于MapReduce,支持多种编程语言,并广泛应用于实时查询、批处理、流式计算和机器学习。对比了Spark与Hadoop在Shuffle过程和数据共享方面的差异,指出Spark基于内存的优势。详细阐述了Spark的运行模式,包括Local、Standalone、Yarn和Mesos,并提供了在Windows和Linux环境下启动Spark的步骤。
摘要由CSDN通过智能技术生成
简介

Spark由Berkeley大学研发是apache下的一个大数据处理框架是一个顶级项目。

1.      他号称在内存中比MapReduce快100倍,disk中快10倍

2.      易用性强上手快,支持java,scala,python,R语言

3.      应用广,可包含大数据查询,流式计算,机器学习,图计算

4.      可以在各个平台下运行

spark应用场景

大批量数据实时查询,离线数据批处理,流式计算

官网:http://spark.apache.org/


与hadoop对比

在hadoop中map任务的输出是一个<k,v>键值对,而reduce任务的输入就是读取map任务输出的这个键值对,Hadoop框架会将多个map任务的输出按照不同的分区拷贝到不同的reduce节点上,这个过程叫做shuffle。Spark也存在map和reduce任务和hadoop一样.

Shuffle对比

以下是hadoop中shuffle的过程示意图


1.MAP任务处理完毕之后先将数据存入内存。

2.紧接着对内存中的数据执行分区排序操作并存入磁盘,此时磁盘中就存在很多的小片用于存储。(写1)

3.读取磁盘上小分片中的数据然后merge写入一个大文件,这个大文件中包含很多分区。(读1+写2)

4.此时磁盘上会有很多的大文件,每个文件上的分区数据会输出给不同节点上的reduce任务(读2),这步操作应该还会产生IO消耗。

5.Reduce任务所在节点读取完毕后再对其进行merge操作形成一个大文件写入磁盘(写3)。

6最后reduce任务读取(读3)这个大文件作为自己的入参来进行计算。

以上就是hadoop中shuffle的简单过程,统计一下读写磁盘共有6次。Spark也有shuffle过程但是全部是基于内存的所以比hadoop快。

 

数据共享对比

Hadoop

1.Hdfs将数据存储在不同的节点上而且每个节点都会备份,一份数据可能会存储在3个不同的节点上这样还涉及到数据同步问题。

2.机器学习中结果也需要写入hdfs上这样也涉及同步问题。

3.在高并发查询时,每查询一次都要去hdfs上读取数据。

Spark

由于spark的数据是基于内存的所以速度快且不涉及数据备份,在高并发查询时只第一次从hdfs中读取后面的则可以从内存中读取。

 

Hadoop设计上不占用大量内存,spark则需要占用大量内存。

 

运行模式

Local:本地模式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值