spark的核心组件有哪些?

2020-04-26 10:16发布

3条回答
flame
1楼 · 2020-04-26 10:38.采纳回答

1.Spark SQL

Spark SQL是Spark用来操作结构化数据的组件。通过Spark SQL,用户可以使用SQL或者Apache Hive版本的SQL方言(HQL)来查询数据。Spark SQL支持多种数据源类型,例如Hive表、Parquet以及JSON等。Spark SQL不仅为Spark提供了一个SQL接口,还支持开发者将SQL语句融入到Spark应用程序开发过程中,无论是使用Python、Java还是Scala,用户可以在单个的应用中同时进行SQL查询和复杂的数据分析。由于能够与Spark所提供的丰富的计算环境紧密结合,Spark SQL得以从其他开源数据仓库工具中脱颖而出。Spark SQL在Spark l.0中被首次引入。在Spark SQL之前,美国加州大学伯克利分校曾经尝试修改Apache Hive以使其运行在Spark上,进而提出了组件Shark。然而随着Spark SQL的提出与发展,其与Spark引擎和API结合得更加紧密,使得Shark已经被Spark SQL所取代。

2.Spark Streaming

众多应用领域对实时数据的流式计算有着强烈的需求,例如网络环境中的网页服务器日志或是由用户提交的状态更新组成的消息队列等,这些都是实时数据流。Spark Streaming是Spark平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的API。由于这些API与Spark Core中的基本操作相对应,因此开发者在熟知Spark核心概念与编程方法之后,编写Spark Streaming应用程序会更加得心应手。从底层设计来看,Spark Streaming支持与Spark Core同级别的容错性、吞吐量以及可伸缩性。


3.MLlib

MLlib是Spark提供的一个机器学习算法库,其中包含了多种经典、常见的机器学习算法,主要有分类、回归、聚类、协同过滤等。MLlib不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语,包括一个通用的梯度下降优化基础算法。所有这些方法都被设计为可以在集群上轻松伸缩的架构。

4.GraphX

GraphX是Spark面向图计算提供的框架与算法库。GraphX中提出了弹性分布式属性图的概念,并在此基础上实现了图视图与表视图的有机结合与统一;同时针对图数据处理提供了丰富的操作,例如取子图操作subgraph、顶点属性操作mapVertices、边属性操作mapEdges等。GraphX还实现了与Pregel的结合,可以直接使用一些常用图算法,如PageRank、三角形计数等。


十一郎
2楼 · 2020-05-13 09:09

核心组件有:SparkCore、SparkSql、SparkStreaming、SparkMllib、SparkGraphX。以及正在研发中的StructureStreaming。

猫的想法不敢猜
3楼 · 2021-03-12 15:39

相对于第一代的大数据生态系统Hadoop中的MapReduce,Spark 无论是在性能还是在方案的统一性方面,都有着极大的优势。Spark框架包含了多个紧密集成的组件,如图4所示。位于底层的是Spark Core,其实现了Spark的作业调度、内存管理、容错、与存储系统交互等基本功能,并针对弹性分布式数据集提供了丰富的操作。在Spark Core的基础上,Spark提供了一系列面向不同应用需求的组件,主要有Spark SQL、Spark Streaming、MLlib、GraphX。


相关问题推荐

  • spark的优点有哪些?2021-07-05 16:55
    回答 20

    首先, Spark 非常好用。由于高级 API 剥离了对集群本身的关注,你可以专注于你所要做的计算本身, 只需在自己的笔记本电脑上就可以开发 Spark 应用。其次, Spark 很快,支持交互式使用和复杂算法。最后, Spark 是一个通用引擎,可用它来完成各种各样的运算...

  • 回答 5

    现在企业中多数用的是相对稳定的Spark2.2.0版本。

  • 回答 4

        Spark,是一种One Stack to rule them all的大数据计算框架,是一种基于内存计算的框架,是一种通用的大数据快速处理引擎。    这一站式的计算框架,包含了Spark RDD(这也是Spark Core用于离线批处理)、Spark SQL(交互式查询)、Spark Streaming(实时...

  • 回答 10

    常用RDD算子(1)Action RDDforeach:遍历每个元素,无返回值,一般用在将结果存储到数据库中使用saveAsTextFile存储到hdfs,RDD每个partition存到hdfs的一个block块saveAsObjectFile:存储到hdfs,将每个partition的数据序列化后,以sequenceFile(序列化)...

  • 回答 6

    主要功能:管理当前节点内存,CPU的使用状况,接收master分配过来的资源指令,通过ExecutorRunner启动程序分配任务,worker就类似于包工头,管理分配新进程,做计算的服务,相当于process服务。需要注意的是:1)worker会不会汇报当前信息给master,worker心...

  • RDD五大属性2020-07-15 13:45
    回答 3

    1、RDD是一个分片的数据集合;2、RDD的函数针对每个分片进行计算;3、RDD之间是个依赖的集合;4、可选:key-value型RDD是根据哈希来分区的;5、可选:数据本地性优先计算。

  • 回答 3

    在hadoop/bin目录下有yarn命令yarn application -kill 

  • 回答 4

    Spark SQL 在 Spark1.x 中和传统 SQL 不完全一致。但是在 Spark2.x 版本中遵循的美国的ANSI的SQL2003完全标准sql 。oracle和mysql都有自己的语法规则,平时所使用的 SQL 语句都不是标准 SQL 。平时用的 mysql 和 oracle 以及 hive,都是部分遵循标准SQL 。...

  • 回答 3

    #!/bin/bash #队列名 根据yarn的队列提交 realtime_queue=root #提交的任务名 my_job_name=OrderQZspark-shell --master yarn --deploy-mode client \--queue $realtime_queue \ #总的executors数 根据数据量与自己的集群资源来分配--num-executors...

  • 回答 2

    Spark是一种快速、通用、可扩展的大数据分析引擎,于2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。项目是用Scala进行编写。Spark的结构:Spark生态系统已经发展成为一个包含多个子项目的集...

  • 回答 1

    自己随意编写一份测试数据,所用的测试数据如下,需求是按照第一列的字母分组,然后按照第二列数据取出每一组内前N个数据,后面我分别列出了我使用的三种方案来实现该需求,不同方案在不同的场景下会有各自的优势 a 25b 36c 24d 45e 60a 33b 26c 47d 43e 62a...

  • 回答 1

    把数据从redis读出来放到kafka里呗,然后用spark-streaming去读kafka的数据,或者写个程序从redis把数据读出来用socket或文件的形式传给spark-streaming,spark-streaming支持很多种源的方式

没有解决我的问题,去提问