【大数据入门核心技术-Spark】(一)Spark介绍

目录

​一、Spark概述

二、为什么要学习Spark

三、Spark 四大特性

1、速度快

2、易用性

3、通用性

4、兼容性


一、Spark概述

【大数据入门核心技术-Spark】(一)Spark介绍_第1张图片


Apache Spark™ is a unified analytics engine for large-scale data processing.

spark是基于内存计算的大数据处理框架,由于基于内存计算,处理数据非常快。这里仅仅只涉及到数据的计算,并没有涉及到数据的存储,后期就需要对接各种不同的外部数据源,比如处理HDFS上的数据。

官方网址:
https://spark.apache.org/ 

二、为什么要学习Spark

就是因为spark处理速度比mapreduce快很多,提高任务运行的速度,很受企业青睐。
spark不在是一个简单的框架,而是发展成一个生态系统,它里面有很多不同的子项目
sparksql
sparkStreaming
Graphx
Mlib


三、Spark 四大特性


1、速度快

spark比mapreduce在内存中快100倍,比mapreduce在磁盘中快10倍。

spark比mapreduce快的主要2个原因
1)mapreduce的任务每一个job它的输出结果只能够保存在磁盘,后续有其他的job需要依赖于前面job的输出结果,这个时候需要进行大量的磁盘io操作。 spark的任务每一个job它的输出结果可以保存在内存中,后续有其他的job需要依赖于前面job的输出结果,这个时候就可以直接在内存中获取得到,大大减少磁盘io操作,最后提升了性能。


例如: select name,age from (select * from user where age >30 and age <40)

2) mapreduce的任务它是以进程的方式运行在yarn集群中,比如一个job有100个MapTask,这个时候就需要开启100个进程去处理这个100个task。spark的任务它是以线程的方式运行在进程中,比如一个job有100个MapTask,这个时候就可以极端一点:只启动一个进程,在这个进程运行100个线程。这里开启一个进程和开启一个线程代价是不一样,开启一个进程需要的时间和资源比线程要大大增加。spark中可以减少大量的时间资源调度,提升性能。


2、易用性

可以快速开发一个spark应用程序,通过java、scala、python、R、sql不同语言开发代码程序

3、通用性

spark框架是一个生态系统,可以通过不同子项目sparksql、sparkStreaming、Mlib、Graphx应用到不同的应用场景。

4、兼容性

spark任务就是一个计算程序,哪里可以给当前这个程序提供对应的计算资源,我们就可以把程序提交到哪里去。

yarn
spark程序可以提交到yarn中去运行,整个任务的资源分配由resourcemanager去负责standalone

standalone
它是spark自带的集群模式,整个任务的资源分配由Master去负责

mesos
它是一个apache开源类似于yarn的资源管理平台

你可能感兴趣的:(大数据技术入门到21天通关,spark,大数据,分布式,big,data,hadoop)