大数据课程K1——Spark概述

文章作者邮箱: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,不符合要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值