spark学习笔记_1
简单的讲,Apache Spark是一个快速且通用的集群计算系统。
Apache Spark 历史:
2009年由加州伯克利大学的AMP实验室开发,并在2010年开源,13年时成长为Apache旗下大数据领域最活跃的开源项目之一。2014年5月底spark1.0.0发布,2016年6月spark2.0发布,至今最近的版本是xxx(看官网)。
Spark的使用场景:
实时查看浏览统计信息,流式计算,SQL查询,图计算,机器学习。
Spark特点:
- 快速的处理能力。由于spark可以将中间输出和最后结果存储在内存中,不像hadoop MR那样需要大量的磁盘I/O的开销,同时spark的DAG执行引擎也支持数据在内存中的计算。
- 使用方便。spark支持Java、Scala、Python和R编写的应用程序,同时提供了80多个高等级操作符,可以用Scala、Python和R shell进行交互查询。
- 通用性强。Spark提供了一组库,其中包括SQL和DataFrames、用于机器学习的MLlib、GraphX和Spark Straming,在同一个应用程序中无缝地组合这些库。
- 随处运行。spark能够访问HDFS、Cassandra、HBase、S3、Hive、Techyon以及任何Hadoop的数据源。
Spark运行模式:
| 运行环境 | 模式 | 描述 |
| Local | 本地模式 | 本地线程方式运行,分local单线程和local-cluster多线程,主要用于开发调试spark应用程序。 |
| Standalone | 集群模式 | 利用spark自带的资源管理器和调度器运行spark集群,采用Master/Slave模式,为解决单点故障可采用ZK实现HA。 |
| ApacheMesos | 集群模式 | 运行在Mesos资源管理器框架之上,由Mesos负责资源管理,spark负责任务调度和计算。 |
| Hadoop Yarn | 集群模式 | 运行在Yarn资源管理器框架之上,由Yarn负责资源管理,spark负责任务调度和计算。 |
在实际的应用中,spark应用程序的运行模式取决于传递给sparkcontext的master环境变量的值,目前该值由特定的字符串或是URL组成,如下所示:
- Local[N]:使用N个线程。
- Local cluster[worker,core,Memory]:伪分布式模式,可以配置所需要启动的虚拟工作节点,以及每个节点所管理的CPU数量和内存大小。
- Spark://hostname:port:Standalone模式,需要将spark部署到相关节点,URL为Spark master的主机地址和端口。
- Mesos://hostname:port:Mesos模式,需要将spark和mesos部署到相关节点,URL为Mesos的主机地址和端口。
- Yarn standalone/Yarn cluster:Yarn模式一,主程序逻辑和任务都运行在Yarn集群中。
- Yarn client:Yarn模式二,主程序逻辑运行在本地,具体任务运行在Yarn集群中。
Spark术语:
- Application:Spark应用程序,包含一个Driver program和若干Executor。
- SparkContext:Spark应用程序的入口,负责调度各个运算资源,协调各个Woker Node上的Executor。
- Driver Program:运行Application的main()函数并创建SparkContext。
- Executor:Worker Node上的进程,该进程负责运行Task,并负责任务间数据维护(数据是存在内存中还是磁盘上)。
- Cluster Manager:为任务分配资源。
- Worker Node:集群中运行spark application的节点。
- Task:运行在Executor上的工作单元。
- Job:SparkContext提交的具体Action操作。
- Stage:每个Job会被拆分很多组task,每组task被称为Stage,也称TaskSet。
- RDD:弹性分布式数据集。
- DAGScheduler:根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler。
- TaskSchedule:将Taskset提交给WorkerNode集群运行并返回结果。
Spark Job运行原理:
- 创建SparkContext对象,然后SparkContext向Cluster Manager申请资源;
- Cluster Manager在WokerNode上创建Executor并分配资源(CPU,内存等),后期Executor定期向ClusterManager发送心跳信息;
- SparkContext启动DAGSchudler,将提交的任务分解为若干Stage,各个Stage构成DAG;
- Taskset发送给TaskSchudle,TaskSchudle将Task发送给对应的Executor,同时SparkContext将应用程序代码发到Executor,从而启动Task的执行;
- Executor执行Task,然后释放相应的资源。
spark学习笔记_1的更多相关文章
- Spark学习笔记-GraphX-1
Spark学习笔记-GraphX-1 标签: SparkGraphGraphX图计算 2014-09-29 13:04 2339人阅读 评论(0) 收藏 举报 分类: Spark(8) 版权声明: ...
- Spark学习笔记3——RDD(下)
目录 Spark学习笔记3--RDD(下) 向Spark传递函数 通过匿名内部类 通过具名类传递 通过带参数的 Java 函数类传递 通过 lambda 表达式传递(仅限于 Java 8 及以上) 常 ...
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
- Spark学习笔记之SparkRDD
Spark学习笔记之SparkRDD 一. 基本概念 RDD(resilient distributed datasets)弹性分布式数据集. 来自于两方面 ① 内存集合和外部存储系统 ② ...
- spark学习笔记总结-spark入门资料精化
Spark学习笔记 Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用. ...
- Spark学习笔记2(spark所需环境配置
Spark学习笔记2 配置spark所需环境 1.首先先把本地的maven的压缩包解压到本地文件夹中,安装好本地的maven客户端程序,版本没有什么要求 不需要最新版的maven客户端. 解压完成之后 ...
- Spark学习笔记3(IDEA编写scala代码并打包上传集群运行)
Spark学习笔记3 IDEA编写scala代码并打包上传集群运行 我们在IDEA上的maven项目已经搭建完成了,现在可以写一个简单的spark代码并且打成jar包 上传至集群,来检验一下我们的sp ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
- Spark学习笔记2——RDD(上)
目录 Spark学习笔记2--RDD(上) RDD是什么? 例子 创建 RDD 并行化方式 读取外部数据集方式 RDD 操作 转化操作 行动操作 惰性求值 Spark学习笔记2--RDD(上) 笔记摘 ...
随机推荐
- Rhel6.6---执行命令df -h卡住不动
问题描述 nfs服务宕掉后,df -h卡住不动,使用xftp也无法打开文档路径 -bash-4.1# mount /dev/mapper/vg_root-LogVol00 on / type ext4 ...
- git--编写好代码文件后更新到git仓库流程
先说一下git仓库分类: Git分为三大部分存储区域1:工作区域(就是你打开编辑器的本地代码仓库)2:提交缓存区域(使用git add 命令暂时放置的区域)3:git远程仓库(使用git push命令 ...
- windows系统,boost编译安装
windows系统,boost编译安装vs2017 1.下载https://www.boost.org/users/download/下载windows对应的zip包解压 2.配置vc环境变量我的是: ...
- bzoj4700
题解: cdq分治 先考虑没有人被秒掉的情况 代码: #include<bits/stdc++.h> #define y1 ____y1 ; using namespace std; ty ...
- [Codeforces375E]Red and Black Tree
Problem 给定一棵有边权的树.树上每个点是黑或白的.黑白点能两两交换. 求符合任意一个白点到最近黑点的距离小于等于x时,黑白点交换次数最少为多少. Solution 明显是一题树形DP.我们先跑 ...
- 第一周嵌入式程序设计(linux环境下)的学习总结
2014025641 <嵌入式程序设计>第1周学习总结 本周学习内容 首先我们先复习下之前学习过的内容,什么是linux? Linux 就是一个操作系统,就像你多少已经了解的 Window ...
- Main Steps to Setup an ODI data sync
0. Get ODI installed 1. Topo physical Architecture/new physical schema 2. New Logical schema 3. New ...
- maven profile实现多环境配置
每次项目部署上线都需要手动去修改配置文件(比如数据库配置,或者一个自定义的配置)然后才能打包,很麻烦,网上找到 maven profile可以完成这个工作,记录如下: 环境:eclipse + spr ...
- 第十六周翻译-SQL Server复制的阶梯:第1级 - SQL Server复制简介
SQL Server复制的阶梯:第1级 - SQL Server复制简介 作者:Sebastian Meine,2012年12月26日 翻译:赖慧芳 译文: 该系列 本文是Stairway系列的一部 ...
- 安装webstrom2019
破解webstrom2019 下载地址:https://www.jetbrains.com/webstorm/ 下载安装后进行破解(安装基本上是傻瓜样式的) 可以在线进入 http://idea.l ...