0
点赞
收藏
分享

微信扫一扫

Spark学习笔记(零基础入门)

书呆鱼 2022-04-06 阅读 143

目录

1 Spark的介绍

1.1 Spark的定义

1.2 Spark为什么比MapReduce快?

1.3 RDD 弹性式分布式数据集

1.4 MasterURL


1 Spark的介绍

1.1 Spark的定义

它是一个集成了离线计算实时计算SQL查询机器学习图计算为一体的一站式框架 。

一站式的体现:既可以做离线计算(批处理),也可以做其他的(SQL查询、机器学习、图计算)

flink对于机器学习、图计算支持真的的不太友好哈。

1.2 Spark为什么比MapReduce快?

因为Spark是基于内存计算,Spark运行起来只有一次Suffle,但是MapReduce存在两次Suffle。

1.3 RDD 弹性式分布式数据集

  • 弹性式:Spark运行时导致内存溢出,会把数据落地到磁盘上,并不会导致数据丢失。
  • 数据集:其实就是一个存放数据的地方,可以认为是一个不可变的Scala集合。
  • RDD的特点: 只读、可分区、分布式的数据集。这个数据集全部或者一部分可以缓存在内存中(这里有个小Tips:就是缓存内存就是对RDD做了持久化操作哦),在多次计算时被重用。
  • RDD的存在:RDD的计算和数据保存都在Worker上(Spark的集群模式是主从架构,一个Master调度N个Worker)。RDD是分区的,每个分区分布在集群中的不同Worker节点上面,这样的好处就是RDD可以并行式计算。
  • RDD的来源:可以读取HDFS或者hive中的数据,也可以自己创建(makeRDD)。
  • 有关MapReduce:
  • 好处:自动容错、负载均衡、高扩展
  • 坏处:采用非循环的数据列模型,进行计算的时候数据迭代进行大量的磁盘IO流。
  • 但是Spark避免了MapReduce的坏处,采用血缘追溯,通过执行时产生的有向无环图,找到数据故障的partition,提高容错性。
  • 有关RDD的封装:spark2.X版本RDD已经被封装了,我们做开发的时候不会使用rdd,而是直接使用DataSet或者DataFrame进行计算。

1.4 MasterURL

spark编程是通过SparkConf.setMaster传递线程运行的参数,以及是线程采用什么模式

master含义
local程序在本地运行,同时为本地程序提供一个线程来处理spark程序
local[M]程序在本地运行,同时为本地程序提供M个线程来处理spark程序
local[*]程序在本地运行,同时为本地程序提供当前计算机CPU Core数个线程来处理spark程序
local[M,N]
程序在本地运行,同时为本地程序分配M个工作线程来处理,如果程序提交失败,会进行最多N次重试
spark://ip:port
基于Standalone模式运行,spark程序提交到ip和port对应的master上运行
spark://ip1:port1,ip2:port2基于Standalone ha模式运行,spark程序提交到ip和port对应的master上运行
yarn [deploy-mode=cluster]yarn的集群模式(一般是生产环境中使用)
yarn [deploy-mode=client]yarn的客户端模式(一般是生产环境中做测试时使用)
举报

相关推荐

0 条评论