栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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

2021SC@SDUSC 摘要:作为本课程第一篇blog,简单介绍项目背景和运行环境的安装,主要完成组内任务的划分,确定好分析方向,为后续的分析项目源代码工作做出铺垫。

文章目录

一、项目背景及目的

1.项目背景:

2.本课程主要目的:

二、Spark作用(能做些什么)及特点(优势)

1.Spark作用:

        (1)中间结果输出:

        (2)替代方案:

2.Spark特点:

        (1).速度快:

        (2).基于内存:

        (3).兼容性高:

        (4).更容易的API:

三、运行环境的安装

四、Spark——分布数据处理引擎

五、项目分工

六、总结

一、项目背景及目的

1.项目背景:

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

2.本课程主要目的:

        通过解读Spark开源代码,组队成员加强交流合作,深入分析Spark源码,搜索相应资料完成项目代码解读任务,共同提升解读代码能力;理解Spark底层实现原理,对项目的架构有初步了解和认识;逐步加强对实战项目的了解,增加对实战项目的兴趣。

二、Spark作用(能做些什么)及特点(优势)

        如果比较关心大数据,你会发现很多领域都提到Spark:机器学习需要Spark,数据流传输需要Spark,ETL需要Spark,一句话概括Spark:Spark是一个通用的分布式数据处理引擎。

1.Spark作用:

        (1)中间结果输出:

        基于MapReduce的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。出于任务管道承接的,考虑,当一些查询翻译到MapReduce任务时,往往会产生多个Stage,而这些串联的Stage又依赖于底层文件系统(如HDFS)来存储每一个Stage的输出结果。


        (2)替代方案:

        Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。

2.Spark特点:

        (1).速度快:

        每一个作业都是独立调度,可以把所有的作业做出一个图以进行调度,各个作业之间相互依赖,在调度过程中一起调度,速度得到大幅提升。与Hadoop的MapReduce相比,Spark基于内存的运算要快几十甚至上百倍以上,基于硬盘的运算也要快10倍以上。Spark实现了高效的DAG(有向无环图)执行引擎,可以通过基于内存来高效处理数据流。

        (2).基于内存:

        所有过程都基于内存,所以通常也将Spark称作是基于内存的迭代式运算框架。

        (3).兼容性高:

        Spark可以非常方便地与其他的开源产品进行融合。Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,器,并且可以处理所有Hadoop支持的数据,包括HDFS、Hbase和Cassandra等。

        (4).更容易的API:

        支持Python,Scala和Java. 其实spark里面也可以实现Mapreduce,但是这里它并不是算法,只是提供了map阶段和reduce阶段,但是在两个阶段提供了很多算法。如Map阶段的map, flatMap, filter, keyBy,Reduce阶段的reduceByKey, sortByKey, mean, gourpBy, sort等。

三、运行环境的安装

        在64位Linux环境下,配置Spark的运行环境

        1.安装JDK   下载相应版本的JDK:

        2.安装Scala:

        3.安装Spark:

        4.运行spark-shell:

        5.准备源码阅读环境:

        6.Spark源码编译与调试:

        以上步骤,通过各成员搜索资料及讨论进行安装调试,在队长博客中展示详细步骤,这里不再赘述。队长博客地址:队长博客地址。

四、Spark——分布数据处理引擎

        Spark是一个通用的分布式数据处理引擎。
        通用:通用指的是Spark可以做很多事情。刚刚我们提到过的,包括机器学习,数据流传输,交互分析,ETL,批处理,图计算等等等等都是Spark可以做到的。甚至可以说,你需要用数据实现的任何事情,你都可以用Spark试试看。
        分布式:指的是Spark处理数据的能力是建立在许多机器上的,是可以和分布式的存储系统对接的,是可以做横向扩展的(简单点说就是电脑越多,能力越大)
        引擎:所谓引擎,说的就是Spark自己不会存储数据,它就像实体的机械引擎一样,会将燃料(对Spark来说是数据)转化成使用者需要的那种形式——例如驱动汽车,再例如得到一个需要的目标结论。但无论如何,巧妇难为无米之炊,没数据是万万不行的。

  转自:zhihu~

五、项目分工

        通过小组初步讨论,我们确立的小组分工:

        对Spark划分为四大核心模块:一是分析Spark core,二是分析Spark Streaming,三是分析Spark SQL,四是分析Spark GraphX。其中,由于第一部分Spark core复杂程度较高,由两人共同完成,其他成员也可以在后续分析中进一步分析Spark core的内容。每位成员按照小组讨论计划,稳步推进,在规定时间完成相应的任务,达到预期结果。

        本项目中,我主要负责第三部分Spark SQL的内容,通过完成源码下载,环境配置等准备操作后,根据内容推进和队员完成情况,有能力则进一步帮助队友完成相应代码的分析任务。在SQL中前期主要分析总体设计,SQL运行原理,与传统关系型数据库运行的比较,其运行架构等内容进行分析!

六、总结

        此课程——软件工程应用与实践是一门很有价值的课程,我希望通过此次课程,在自己和队友的共同努力下,深入理解Spark项目的架构和运行原理,对其基础架构有一个较深的理解和认识,培养团队精神和刻苦努力精神。加强阅读源代码分析代码的能力,最后希望可以通过团队努力取得一个好的结果。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282922.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号