IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 山东大学软件工程应用与实践——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项目的架构和运行原理,对其基础架构有一个较深的理解和认识,培养团队精神和刻苦努力精神。加强阅读源代码分析代码的能力,最后希望可以通过团队努力取得一个好的结果。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:56:57  更:2021-10-01 16:58:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:25:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码