山东大学软件工程应用与实践: Spark(一) 项目综述

2021SC@SDUSC


目录

一、项目背景

二、Spark安装(基于Mac)

1.安装JDK

2.安装apache spark

三、Spark框架结构分析

四、项目分工

五、总结


一、项目背景

Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎,现在形成了一个高速发展、应用广泛的生态系统。Spark是UC Berkeley AMP lab(加州大学伯克利分校AMP实验室)所开源的类Hadoop Mapreduce的通用并行框架,它拥有Hadoop Mapreduce所具有的有优点;但不同于Mapreduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的Mapreduce的算法。

Spark是一种与Hadoop相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark是在Scala语言中实现的,它将Scala用作其应用程序框架。与Hadoop不同,Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集、

尽管创建Spark是为了支持分布式数据集上的迭代作业,但是实际上它是对Hadoop的补充,可以再Hadoop文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。


二、Spark安装(基于Mac)

在macos系统上安装Spark

1.安装JDK

因为电脑之前已安装过jdk8,所以本次无需再次安装

2.安装apache spark

2.1 下载

打开terminal(如果没有安装过homebrew要先装homebrew。homebrew是一款Mac必备神器,简单一条指令就可以实现包管理。而anaconda是很好用的python开源版本,没有anaconda的话也可以使用pip安装pyspark)

homebrew介绍与安装

mac上安装anaconda

brew install apache-spark
conda install pyspark

2.2 配置文件

打开terminal,输入

vim ~/.bash_profile

打开.bash_profile文件后,添加

export SPARK_PATH=/usr/local/Cellar/apache-spark/3.1.2
export PATH=$SPARK_PATH/bin:$PATH

退出编辑模式,退出.bash_profile文件,回到命令行,输入

source ~/.bash_profile

点击回车,运行配置文件。


三、Spark框架结构分析

Spark主要分为五大部分,分别是Spark Core、Spark Streaming、Spark SQL、Spark GraphX和Spark MLlib。

  • Spark Core:spark的内核,主要包含:有向循环图、RDD(弹式分布数据集)、Lingage、Cache、broadcast等,并封装了底层通讯框架,是其他组件的基础
  • Spark Streaming:流式处理系统,可以对多种数据源进行类似于hadoop中的Map、Reduce和Join等复杂操作,将流式计算分解成一系列短小的批处理作业
  • Spark SQL:能够统一处理关系表和RDD(弹式分布数据集),使得开发人员可以轻松地使用SQL命令进行外部查询,同时进行更复杂的数据分析
  • Spark GraphX:分布式图计算框架,用于Spark中的图和图并行计算
  • Spark MLlib:Spark提供的可扩展的机器学习库,包含了一些通用的学习算法和工具,如:分类、回归、聚类、协同过滤、降维等。

四、项目分工

经过小组讨论,根据上一部分提到的Spark五个部分,我选择了Spark Core部分,具体的包括Spark基本设计思想、模块设计、SparkContext的初始化等。


五、总结

希望本次课程,我能够对Spark的源码有一定的了解和认识,同时借此机会多多学习,也熟练一下Spark的用法,培养对应的能力。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值