大数据课程K1——Spark概述

本文介绍了Spark的起源、特点,包括其作为大数据处理引擎的优势,生态系统的模块划分,以及Spark的使用模式,特别是单机模式的安装步骤。重点提到了Spark如何改进MapReduce的不足,如减少Shuffle和排序,支持缓存。最后,通过练习任务展示了Spark在内存限制下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州

 ▲ 本章节目的

⚪ 了解Spark的背景;

⚪ 了解Spark的特点;

⚪ 掌握Spark的生态系统模块、使用模式;

⚪ 掌握Spark的单机模式安装;

一、简介

1. 背景

Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的,后贡献给Apache。是一种快速、通用、可扩展的大数据分析引擎。它是不断壮大的大数据分析解决方案家族中备受关注的明星成员,为分布式数据集的处理提供了一个有效框架,并以高效的方式处理分布式数据集。Spark集批处理、实时流处理、交互式查询、机器学习与图计算于一体,避免了多种运算场景下需要部署不同集群带来的资源浪费。目前,Spark社区也成为大数据领域和Apache软件基金会最活跃的项目之一,其活跃度甚至远超曾经只能望其项背的Hadoop。

2. 特点

Spark是一种分布式的、快速的、通用的、可靠的、免费的计算框架。

目前市面上比较常用和流行的计算框架:

1. Hadoop Map Reduce->离线批处理;

2. Spark->离线批处理->实时流处理;

3. Storm->实时流处理;

4. Flink->实时流处理;

 从上图可以看出,MapReduce在执行任务时,底层会发生Shuffle过程,则会产生大量和多次的磁盘I/O,拉低性能。并且在Shuffle过程会针对每个分区内的数据做排序,耗费大量的CPU,拉低性能。此外,在做一次迭代性质算法的场景下,比如梯度下降法,逻辑回归等时,需要重复的用到某些中间步结果集。由于不能做到中间结果集的复用,会带来大量的重新计算代价。

Spark团队吸取了以上Map Reduce的一些经验教训,做出了相关优化。比如尽量减少Shuffle过程生产,减少不必要的排序以及支持缓存机制,达到中间结果集的复用。

二、Spark的生态系统模块

 上图是Spark的整个生态系统。可以看出Spark涵盖了大数据处理的各种应用场景:

1. 离线批处理;

2. 交互式查询和数仓;

3. 实时流处理;

4. 算法建模和数据挖掘;

即Spark可以一线式处理大数据的所有应用场景,避免部署多种不同的集群带来的麻烦。

三、Spark的使用模式

1. 常见的使用模式三种:

1. Local 本地单机模式:一般用于测试或练习;

2. Standalone Spark集群模式:Spark集群的资源管理由Spark自己来负责;

3. On Yarn Spark集群模式:Spark集群的资源管理由Yarn来管理。

2. Spark单机模式安装:

1. 安装和配置好JDK

2. 上传和解压Spark安装包

3. 进入Spark安装目录下的conf目录

复制conf spark-env.sh.template 文件为 spark-env.sh

在其中修改,增加如下内容:

SPARK_LOCAL_IP=服务器IP地址(主机名)

4. 进入 Spark 的 bin 目录,执行:

sh spark-shell --master=local

 5. 退出:ctrl + c。

四、练习任务

1. 有一个文件,文件中存储了40亿个整型数字,没有重复出现的。

# 要求找出有哪些数字没有出现过,并且内存使用不能超过2GB。

# Int的范围将近43亿个数字,而文件中有40亿个数字,肯定有一些数字是没有出现过的。

#如果用整型数组存40亿个数字,此时内存占用:15GB,不符合要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值