SPARK软件栈

一、Spark简介

        Spark是一个用来实现快速而通用的集群计算的平台

        Spark扩展了广泛使用的MapReduce计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理。Spark的一个主要特点就是能够在内存中进行计算,因而更快。即使是必须在磁盘上进行的复杂计算,Spark依然比MapReduce更加高效。

        Spark提供丰富的接口,除了基于Python、Java、Scala和 SQL的简单易用的API以及内建的丰富的程序库外,Spark还能和其他大数据工具密切配合使用。如Spark可以运行在Hadoop集群上,访问包括Cassandra在内的任意Hadoop数据源。

        总结:Spark适用批处理、迭代算法、交互式查询、流处理,且使我们可以简单而低耗地把各种处理流程整合在一起,减轻了原先需要对各种平台分别管理的负担。   

二、Spark软件栈

        Spark项目包含多个紧密集成的组件。Spark的核心是一个对由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎。由于Spark的核心引擎有着速度快和通用的特点,所以Spark还支持为各种不同应用场景专门设计的高级组件,比如SQL和机器学习等。这些组件关系密切且可以相互调用。

图-Spark软件栈 

1. Spark Core

        Spark Core 实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集(resilient distributed dataset,简称RDD)的API定义。RDD 表示分布在多个计算节点上可以并行操作的元素集合,是Spark主要的编程抽象。Spark Core 提供了创建和操作这些集合的多个API。

2.Spark SQL

        Spark SQL是Spark用来操作结构公数据的程序包。通过Spark SQL,我们可以使用SQL或者Apache Hive版本的SQL(HQL)来查询数据。 Spark SQL 支持多种数据源。如Hive、Parquet以及Json等。也支持开发者将SQL和传统的RDD编程的数据操作方式相结合。

3.Spark Streaming

        Spark Streaming 是Spark提供的对实时数据进行流式计算的组件。Spark Streaming提供用来操作数据流的API,并且与Spark Core中的RDD API高度对应,降低学习门槛。从底层来看,Spark Streaming 支持与Spark Core同级别的容错性、吞吐量以及可伸缩性。

4.MLlib

        Spark中还包含一个提供常见的机器学习(ML)功能的程序库(MLlib)。MLlib提供了很多机器学习算法,包括分类、回归、聚类、协同过滤等,还提供了模型评估,数据导入等额外的支持功能。MLlib还提供了一些更底层的机器学习原语,包括一个通用的梯度下降优化算法。这些方法都被设计为可以在集群上轻松伸缩的架构。

5.GraphX

        GraphX是用来操作图(朋友关系网图)的程序,可以进行并行的图计算。GraphX也扩展了Spark的RDD API,能用来创建一个顶点和边都包含任意属性的有向图。GraphX还支持针对图的各种操作(如进行图分割的subgraph和操作所有顶点的mapVertices),以及一些常用图算法(如PageRank和三角计数)。

6.集群管理

         就底层而言,Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。Sparkf支持在各种集群宣器(cluster manager)上运行,包括Hadoop YARN、Apache Mesos,以及Spark自带的一个简易调度器,叫作独立调度器。如果有安装Hadoop YARN或Mesos的集群,Spark也支持这些集群管理器的支持。

三、Spark的存储层次

        Spark不仅可以将任何Hadoop分布式文件系统(HDFS)上的文件读取为分布式数据集,也可以支持其他支持Hadoop接口的系统,比如本地文件、亚马逊S3、Cassandra、Hive、HBase等。Hdoop并非Spark的必要条件,Sparkf支持任何实现了Hadoop接口的存储系统。Spark支持的Hadoop输入格式包括文本文件、SequenceFile、Avro、Parquet等。

四、Spark用途

1.数据处理应用

         Spark主要用例是针对工程师(使用Spark开发生产环境中的数据处理应用的软件开发者,实现数据处理应用。

2.数据科学应用

        数据科学家常用来分析数据,发现问题或一些潜在规律。机器学习和数据分析多通过MLlib程序库提供支持。另外,Spark还能支持调用R或Matlab写成的外部程序。从而达到数据科学领域的应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值