spark比较于Hadoop-MapReduce
Hadoop 提供的 MapReduce 框架处理大数据的时候,却发现它存在许多天生的缺陷, 如效率低,编程模型不够灵活,只适合做离线计算等。Spark 可用来构建大型的、低延迟的大数据处理的应用程序 ,它基于内存,并且提供了更加丰富的算子使得我们可以更高效和灵活的处理大数据。
大数据计算场景
(1) 复杂的批量数据处理 ,离线计算 ,比如MR
(2)交互式查询,比如Impala、Hive
(3) 实时数据流的数据处理 ,比如storm
Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成了一套完整的生态系统,既能够提供内存计算框架spark core,也可以支持SQL即席查询spark sql、实时流式计算spark stream、机器学习和图计算等。因此,Spark所提供的生态系统足以应对上述三种场景,即同时支持批处理、交互式查询和流数据处理。
另外,spark专注数据处理过程,处理数据来源不仅可以是hdfs,也可以是其它支持hadoop接口的系统,比如本地文件,hive、hbase等。Spark生态系统可以很好地实现与Hadoop生态系统的兼容,使得现有Hadoop应用程序可以非常容易地迁移到Spark系统中。
spark 运行框架
Spark运行架构包括
- 集群资源管理器(Cluster Manager)集群资源管理器可以是Spark自带的资源管理器,也可以是YARN或Mesos
- 运行作业任务的工作节点(Worker Node)
- 每个应用的任务控制节点(Driver)
- 每个工作节点上负责具体任务的执行进程(Executor)
spark安装
基于已有的hadoop安装
请下载Pre-build with user-provided Hadoop [can use with most Hadoop distributions 版本
spark local模式
读写本地磁盘 :spark项目不必要求hdfs环境
spark yarn 模式
- spark driver向 yarn的ResourceManger申请生成Job的ApplicationMaster,
由AM与ResourceManage交互申请资源,并且在NodeManager生执行task。 - ResourceManger 、NodeManager属于yarn集群中的概念。
Master节点(ResourceManger) ,每个slave是一个NodeManager
yarn -cluster 模式
driver --> RM (Master节点)--> AM(Slave节点)--> AM与RM交互,在另外的slave节点生成task
image.png
yarn -cleint 模式
driver --> RM (Master节点)--> AM(Master节点)--> AM与RM交互,在另外的slave节点生成task
image.png
网友评论