大数据处理(二)|学习笔记

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 快速学习大数据处理(二)

开发者学堂课程【高校精品课-北京理工大学-大数据技术导论:大数据处理(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/857/detail/15611


大数据处理(二)

 

内容介绍:

一、spark 概述

二、spark 的生态系统

 

spark 是重要的一个开源框架,大数据处理开源框架 spark。spark 内容分为四个部分,第一 spark 的概述,讲spark的起源和 spark 的历史。第二个部分,spark 这个生态系统上相关的一些个开源框架。第三个,spark 的运行原理,第四,spark 有哪些重要的组件。以及这些组件在什么场景下进行应用。

 

一、spark 概述

主要是 spark 的历史,Spark 的特点,以及 spark 与外一个很重要的大数据处理框架 hadoop 的对比分析。spark最初是由美国加州伯克利大学的这个 amp 实验室开发的一个框架,在2009年开发的一个基于内存的大数据处理框架,可用于构建大型的低延迟的数据分析处理任务。在2013年的时候,Spark 加入了 apache 的开源项目伯克利大学的。AMT实验室把 spark 项目贡献给 apache 基金会,成为一个重要的开源项目。Spark 已经成为 apache 软件基金会最重要的三大分布式计算框架之一。

1.spark 历史

Spark 在2014年打破了由重要的开源处理框架 hadoop 创造的一个大数据处理的排序记录。spark 用了1/10的计算资源,获得了比 hadoop 当时处理一个100TB 的数据,快三倍的一个速度。我们下面看一下这张表格来对比,

图片136.png

在2013年的时候,hadoop 创造了一个排序记录的一个记录,用了2100个机器72分钟,完成了100TB 数据的一个排序任务,在2014年的时候,Spark 用了207个机器,在23分钟的时间内完成了100TB的数据处理排序任务,那么他们的排序数量,都是由100TB 的数据。节点数 hadoop2013年的时候用了2000个节点,而 spark 用了207个节点,那么在时间上,hadoop 用了72分钟完成了数据的排序,而 spark 只用了23分钟完成了100TB 的数据的排序,Spark 在2014年以十倍的快速的速度刷新了 hadoop 创建的100TB 数据的排序记录,所以使得 spark 项目一举成名。

2. spark 的特点

Spark 是一个可以完成流数据处理的一个框架,可以完成 stream processing,Spark 的处理速度非常快,通过刚才的例子可以看出,它比的 hadoop 处理框架可以快十倍。还有一点,它可以实现这么快速的数据处理,原因是它是一个基于内存的一个数据处理框架。而 hadoop 是基于硬盘的数据库处理框架,Hadoop 的数据都是存在 HDFS 的硬盘文件当中,而 spark 这个框架,它的数据是在处理过程当中是存在内存的。取数据从硬盘来取的话,要比从内存来取数据要慢将近1000倍,所以基于内存的数据库里,框架一定是会比基于硬盘的数据处理框快很多,spark 还有一个特点,比较简洁,Spark 是可以用 scala 语言进行开发。scala语言是一个非常简洁的一个高级数据处理语言,它的编程语言可以实现比 Java 少1/10的代码。而完成同样的功能,还有 spark 一个特点,它是一个 lazy evaluation,也就是惰性处理机制,也就是 spark 在处理数据的时候,它会进行一系列的转换,在转换最后必须要进行数据计算的时候才完成数据计算,而在中间过程当中,不去进行数据的计算,而只进行一系列的数据转换。

图片135.png

3. spark 支持语言

spark 支持的最原生的语言是 scala,它是用 scala 语言进行开发的,它同时还可以支持其他的主流的大数据处理语言,包括 python,Java,还有 R 语言。

图片134.png

4.使用 Spark 架构的公司

Spark 作为这样一个快速的表现优秀的一个大数据处理框架,很多大型的公司都采用了这个数据处理框架来处理大数据的分析。比如包括雅虎,包括 ebay,包括 Uber,还有包括亚马逊,百度、阿里巴巴都使用 spark 大数据处理框架来完成大量数据的分析和处理任务,这也说明了 spark 这个大数据处理框架是非常的有用,非常的实效而且性能非常好。

图片133.png 

5.spark 与 hadoop 的对比

对比一下 spark 和 hadoop 这两个大数据处理框架,来进一步的了解 spark 和 hadoop。

图片132.png 

hadoop 的数据读取是从磁盘进行读取的每一步完成任务也是把数据写到磁盘里面,而 spark 数据在进行分析和处理的时候,是从内存里面进行数据的读取,读取之后进行数据转换,把中间的结果写在内存里面这样可以使 spark的速度非常快,就会让它在完成大量数据处理的时候,Spark 的延迟比较低,而 hadoop 的延迟比较高,所以 hadoop只适合这种批处理,文件批处理的这个任务。

从基本的处理单元来讲,Hadoop 是以进程为基本处理单元的,而 spark 是以线程为处理单元的,以线程处理单元使得 spark 可以进行并行的数据处理,从这个角度上并行的完成一系列的任务,使得 spark 也可以更快速一些。

在执行机制上,Hadoop 是以迭代的执行机制进行多次的 map reduce 这样的迭代机制,而 spark 是基于 dag的任务调度机制执行机制,它基于 dag,把任务转换成一系列的 dag 图,对 dag 图进行一步一步的进行处理。

那么基于以上的 hadoop 的特点和 spark 的特点,那么它们适合的数据处理场景是不一样的,hadoop 比较适合批处理的数据处理场景。它的延迟比较高,它可以一次完成大量数据处理,但是,时间会比较长,spark 的快速的数据处理机制可以使得 spark 可以支持流数据的处理,它的延迟比较低,它可以支持数据查询、统计分析,还有图数据和机器学习等不同的数据处理场景,hadoop 只支持一种批处理的场景。而 spark 可以支持四种图处理,机器学习、流处理。和传统的数据查询、处理、分析这样四种不同的经典的数据处理的场景,使得 spark 比 hadoop 的适用的场景和范围更加广。 

 

二、spark 的生态系统

Spark 作为一个很重要的开源的大数据处理框架,它和其他很多大数据的相关的开源框架一起完成一些大数据处理任务。

这些开源框架有包括数据来源的,spark 可以进行一起工作的数据来源,包括有 h base,HDFS,have mysql和mango DB 等等,还有消息处理机制卡夫卡。spark 可以跟大部分的主流的数据源的框架进行集成,那么对于运行环境这边,spark 也可以跟 hadoop 和我 cubanics docker 等等一些主流的环境进行集成。

图片131.png

对于上层的应用 Spark 基于 spark 可以构建很多上层的应用框架,包括 school,包括机器学习的 mahout,包括数据仓库的 have,ambery 等等,这些主流的应用框架都可以构建在 spark 这个大数据处理框架上。这一部分,

展示了主流的还 spark 的生态处理系统,可以集成的一些个重要的主流的软件。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
8月前
|
SQL 分布式计算 大数据
Python+大数据学习笔记(一)
Python+大数据学习笔记(一)
84 0
|
8月前
|
大数据 Linux 网络安全
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
205 0
|
SQL 分布式计算 运维
开源大数据 OLAP 引擎最佳实践 | 学习笔记(二)
快速学习开源大数据 OLAP 引擎最佳实践
开源大数据 OLAP 引擎最佳实践 | 学习笔记(二)
|
8月前
|
Java 数据库连接 数据库
Java大数据开发工程师__Spring学习笔记(待更新)
Java大数据开发工程师__Spring学习笔记(待更新)
61 1
|
8月前
|
关系型数据库 MySQL 大数据
大数据开发工程师基本功修炼之Linux学习笔记(四)
大数据开发工程师基本功修炼之Linux学习笔记(四)
150 1
|
8月前
|
大数据 Linux 开发工具
大数据开发工程师基本功修炼之Linux学习笔记(三)
大数据开发工程师基本功修炼之Linux学习笔记(三)
108 0
|
8月前
|
大数据 Java Linux
大数据开发工程师基本功修炼之Linux学习笔记(二)
大数据开发工程师基本功修炼之Linux学习笔记(二)
121 0
|
大数据
数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第14章大数据与数据科学篇
数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第14章大数据与数据科学篇
130 0
|
canal 弹性计算 分布式计算
如何将 PolarDB-X 与大数据等系统互通|学习笔记(一)
快速学习如何将 PolarDB-X 与大数据等系统互通
如何将 PolarDB-X 与大数据等系统互通|学习笔记(一)
|
存储 分布式计算 DataWorks
持续定义 SaaS 模式云数据仓库—— MaxCompute 数据的持续保护 | 学习笔记(三)
快速学习持续定义 SaaS 模式云数据仓库—— MaxCompute 数据的持续保护
持续定义 SaaS 模式云数据仓库—— MaxCompute 数据的持续保护 | 学习笔记(三)