Spark自学之路

Spark基础——思维导图


#1.1Spark是什么

    Apache Spark 是一个快速的,多用途的计算系统,相对于Hadoop MapReduce将中间结果保存在磁盘中,Spark使用了内存保存中间结果,能在数据尚未写入硬盘时在内存中进行运算。Spark只是一个计算框架,不像Hadoop一样包含了分布式文件系统和完备的调度系统,若使用 Spark,需要搭载其它的文件系统和更成熟的调度系统。

#为什么会有Spark

 Spark 产生之前,已经存在非常成熟的计算系统,例如 MapReduce,这些计算系统提供了高层次的API,把计算运行在集群中并提供容错能力,从而实现分布式计算。MR(MapReduce)的问题:1. 计算过程比较缓慢,不适应交互式计算,不适应迭代计算。2. 不是所有的计算都由Map 和 Reduce 两个阶段来构成。Spark解决的问题:1. 内存存储中间结果2. 提供更好的API,函数式

#1.2Spark的特点

速度快

 · Spark 在内存时的运行速度是Hadoop MapReduce 的100倍· 基于硬盘的运算速度大概是Hadoop MapReduce 的10倍· Spark 实现了一种叫做RDD 的DAG执行引擎,其数据缓存在内存中可以进行迭代处理

易用

 · Spark 支持Java,Scala,Python,R,SQL等多种语言的API· Spark 支持超过80个高级运算符使得非常轻易的构建并行计算程序· Spark 可以使用基于Scala,Python,R,SQL的Shell交互式查询

通用

 · Spark提供了一个完整的技术栈,包括SQL执行,Dataset命令式API,机器学习库MLlib,图计算框架GraphX,流计算SparkStreaming· 用户可以在同一个应用中同时使用这些工具,这一点是划时代的

兼容

 · Spark可以运行在Hadoop Yarn,Apache Mesos,Kubernets,Spark Standalone等集群中· Spark可以访问HBase,HDFS,Hive,Cassandra 在内的多种数据库

总结

· 支持Java,Scala,Python 和 R的API
· 可扩展至超过8K个节点
· 能够在内存中缓存数据集,以实现交互式数据分析
· 提供命令行窗口,减少探索式的数据分析的反应时间

#1.3Spark的组件
目标
理解 Spark 能做什么
理解 Spark 的学习路线

Spark 最核心的功能是 RDDs, RDDs 存在于 spark-core 这个包内, 这个包也是 Spark 最核心的包.同时 Spark 在 spark-core 的上层提供了很多工具, 以便于适应不用类型的计算.

Spark-Core 和 弹性分布式数据集(RDDs)

· Spark-Core 是整个 Spark 的基础, 提供了分布式任务调度和基本的 I/O 功能
· Spark 的基础的程序抽象是弹性分布式数据集(RDDs), 是一个可以并行操作, 有容错的数据集合
· RDDs 可以通过引用外部存储系统的数据集创建(如HDFS, HBase), 或者通过现有的 RDDs 转换得到
· RDDs 抽象提供了 Java, Scala, Python 等语言的API
· RDDs 简化了编程复杂性, 操作 RDDs 类似通过 Scala 或者 Java8 的 Streaming 操作本地数据集合

Spark SQL

  · Spark SQL 在 spark-core 基础之上带出了一个名为 DataSet 和 DataFrame 的数据抽象化的概念· Spark SQL 提供了在 Dataset 和 DataFrame 之上执行 SQL 的能力· Spark SQL 提供了 DSL, 可以通过 Scala, Java, Python 等语言操作 DataSet 和 DataFrame· 它还支持使用 JDBC/ODBC 服务器操作 SQL 语言

Spark Streaming

· Spark Streaming 充分利用 spark-core 的快速调度能力来运行流分析
· 它截取小批量的数据并可以对之运行 RDD Transformation
· 它提供了在同一个程序中同时使用流分析和批量分析的能力

MLlib

· MLlib 是 Spark 上分布式机器学习的框架. Spark分布式内存的架构 比 Hadoop磁盘式 的 Apache Mahout 快上 10 倍, 扩展性也非常优良
· MLlib 可以使用许多常见的机器学习和统计算法, 简化大规模机器学习
· 汇总统计, 相关性, 分层抽样, 假设检定, 随即数据生成
· 支持向量机, 回归, 线性回归, 逻辑回归, 决策树, 朴素贝叶斯
· 协同过滤, ALS
· K-means
· SVD奇异值分解, PCA主成分分析
· TF-IDF, Word2Vec, StandardScaler
· SGD随机梯度下降, L-BFGS

GraphX

 · GraphX 是分布式图计算框架, 提供了一组可以表达图计算的 API, GraphX 还对这种抽象化提供了优化运行

总结

· Spark 提供了 批处理(RDDs), 结构化查询(DataFrame), 流计算(SparkStreaming), 机器学习(MLlib), 图计算(GraphX) 等组件
· 这些组件均是依托于通用的计算引擎 RDDs 而构建出的, 所以 spark-core 的 RDDs 是整个 Spark 的基础

#1.4Spark和Hadoop的异同

大数据自学——Spark相关推荐

  1. 大数据自学能学会么?怎么学?

    大数据本质也是数据,但是又有了新的特征,包括数据来源广.数据格式多样化(结构化数据.非结构化数据.Excel文件.文本文件等).数据量大(最少也是TB级别的.甚至可能是PB级别).数据增长速度快等.那 ...

  2. 大数据课程——Spark SQL

    大数据课程--Spark SQL   实验内容以及要求 现有一份汽车销售记录(文件名:Cars.csv),销售记录包括时间.地点.邮政编码.车辆类型等信息,每条记录信息包含39项数据项.按步骤完成如下 ...

  3. 尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程,map、mapPartitions、mapPartitionsWithIndex、flatMap、glom、groupBy)】

    视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...

  4. 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

    视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[Spark(概述.快速上手.运行环境.运行架构)] 尚硅谷大数据技术Spark教 ...

  5. 尚硅谷大数据技术Spark教程-笔记09【SparkStreaming(概念、入门、DStream入门、案例实操、总结)】

    尚硅谷大数据技术-教程-学习路线-笔记汇总表[课程资料下载] 视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01[SparkCore ...

  6. 大数据之Spark案例实操完整使用(第六章)

    大数据之Spark案例实操完整使用 一.案例一 1.准备数据 2.需求 1:Top10 热门品类 3.需求说明 方案一. 实现方案二 实现方案三 二 .需求实现 1.需求 2:Top10 热门品类中每 ...

  7. 大数据之spark学习记录二: Spark的安装与上手

    大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...

  8. 大数据篇--Spark常见面试题总结一

    文章目录 一.Spark 概念.模块 1.相关概念: 2.基本模块: 二.Spark作业提交流程是怎么样的 三.Spark on YARN两种方式的区别以及工作流程 1.Yarn组件简介: 2.Spa ...

  9. 大数据自学要多久?为什么零基础自学大数据那么久?

    伴随着大数据时代的冲击,大数据开发相关的技术人才成为目前招聘市场炙手可热的高薪岗位,越来越多想要通过技术获得高薪工作的同学选择大数据技术方向.我们知道目前学习大数据可以通过自学或者参加培训两种方式,参 ...

最新文章

  1. 用什么写php最好用,php用什么开发工具比较好
  2. 解决Weblogic 本机可以访问控制台,网络IP访问不了
  3. ms计算机选择题,MS计算机选择题.docx
  4. Python汉诺塔问题
  5. react与微信小程序
  6. 发布自己的CocoaPods的步骤
  7. php--学习封装类 (一)(操作mysql数据库的数据访问)
  8. Ubuntu18.04关闭zeitgeist-datahub自启动
  9. 谷歌为什登不上去github_同声传译被攻陷!谷歌发布Translatotron直接语音翻译系统...
  10. 架构之路(五):忘记数据库
  11. vs2010mfc单文档中添加对话框中的控件
  12. mac php codesniffer,[转载]使用PHP_CodeSniffer规范php代码
  13. vector begin()用法
  14. 如何将qlv格式视频转换成mp4格式
  15. UDP的单播广播和组播
  16. 电脑键盘部分按键失灵_键盘失灵_电脑键盘失灵怎么办_电脑键盘失灵_笔记本键盘失灵怎么办-太平洋IT百科...
  17. java股票行情接口展示
  18. BUUCTF:[XMAN2018排位赛]通行证
  19. 【愚公系列】2022年09月 微信小程序-slider滑动选择器详解
  20. 电游入侵传统教育,用练级学习

热门文章

  1. 2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础
  2. 2.3.12 Python 函数进阶-装饰器
  3. 1433. [ZJOI2009]假期的宿舍【二分图】
  4. java 判断字符串是否为数字
  5. Docker容器学习梳理-容器时间跟宿主机时间同步
  6. laravel小记(composer 安装和predis使用)
  7. Linux运维学习历程-第五天-Linux文件系统与管理
  8. 数据库水平切分的实现原理解析
  9. Windows Server 2003 下安装Apache+Php+Mysql
  10. TypeScript入门教程 之 Promise