了解Spark

发布时间:2022-06-21 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了了解Spark脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

apache Spark是一个开的集群计算框架,主要用来处理实时生成的数据。

Spark是建立在Hadoop的Mapreduce顶部。它被优化到了内存中运行,而MaPReduce等替代方法是将数据写入硬盘或从硬盘中写入数据,因此,Spark比其它替代方法运行速度更快。

Apache Spark的特点:

  • 快速——Spark使用的是DAG(有向无环图)调度程序,为批处理和流数据提供高性能;
  • 易于使用——它有助于使用Java、Scala、Python以及R和SQL编写应用程序,还提供了80多个运算符。
  • 通用性——它提供了一系列的库,包含SQL、DataFrame以及用于机器学习的MLlib、GraphX和Spark Streaming。
  • 轻量级——它是一个轻型统一分析执行引擎,用于大规模的数据处理;
  • 无处不在——它可以轻松运行在Hadoop、Apach Mesos、Kubernetes或独立端。

Spark的应用:

  • 数据集成——系统生成的数据不够整合,无法进行结合分析,Spark可以减少提取、转换、加载(数据仓库ETL技)等过程的成本和时间;
  • 流处理——处理实时生成的数据总是很困难(如日志文件),Spark可以运行流数据并拒绝潜在的欺诈性操作;
  • 机器学习——Spark可以将数据存贮在内存中并且可以快速运行重复的查询,因此可以轻松处理机器学习算法;
  • 交互式分析——Spark可以快速生成相应,因此可以交互式处理数据,而非运行预定义的查询。

Spark架构:

  •  Spark遵循主从架构,它的集群有一个主服务器和多个从服务器组成;
  •  Spark架构依赖于两个抽象:弹性分布式数据集(RDD);有向无环图(DAG);

弹性分布式数据集(RDD):可以存储在工作节点上内存的数据组项。

  •  弹性——失败时可以恢复数据;
  •     分布式——数据分布在不同的节点之间;
  •      数据集——数据组。
  •      DAG中每个节点Node都是RDD分区。

Spark架构图:

了解Spark

Driver Progarm:

  • 驱动程序是一个运行应用程序,由main()函数启动并创建SparkContext对象的进程。SparkContext的目的是协调spark应用程序,作为集群上的独立进程运行。要在群集上运行,SparkContext将连接到不同类型的群集管理器,然后执行以下任务
    • 在集群的节点上获取执行程序;
    • 将应用程序的代码发送给执行程序;
    • 将任务发送给执行程序并运行。

 Cluster Manager:

  • 主要作用是跨应用程序分配资源;
  • Spark能够在大量的集群上运行,它是由各种类型的集群管理器组成(例如:Hadoop Yarn、Apach Mesos、Standalone等);

Work Node:

  • 工作节点是Spark的从节点;
  • 它的作用是在集群中运行应用程序代码。

Executor:

  • 执行程序是为工作节点上应用程序启动的进程;
  • 它运行任务并将数据保存在内存或磁盘中;
  • 将数据读写到外部源;
  • 每个应用程序都包含其执行者。

Task:

  • 任务是被发送给一个执行程序的工作单位。

Spark 组件:

了解Spark

 

Spark 是一个计算引擎,可以组织、分发和监控多个应用程序,由不同的组件紧密集成。 

Spark Core:

  • Spark的核心,用来执行核心功能;
  • 包含任务调度,故障恢复,与存储系统和内存管理交互的组件。

Spark SQL:

  • 它构建于Spark core之上,为结构化数据提供支持;
  • 它允许通过SQL(结构化查询语言)以及Hive查询数据;
  • 它支持JDBC和ODBC连接,用于连接建立Java对象与现有数据库、数据仓库、商业智能工具之间的连接;
  • 支持各种数据源,如Hive表、Parquet和Json

Spark Streaming:

  • 用来支持流数据的可伸缩和容错处理;
  • 它可以使用Spark Core的快速调度功能来执行流分析;
  • 接受小批量数据并对数据执行RDD转换;
  • 它的设计确保流数据编写的应用程序可以重复使用,只需要很少的修改即可分析批量的历史数据;
  • Web服务器生成的日志文件可以视为流数据的实时示例,

MLib:

  • 它是一个机器学习库,包含各种机器学习算法;
  • 包含相关性和假设检验,分类、回归、聚类和主成分分析;
  • 它比Apach Mahout使用的基于磁盘的实现快9倍。

GraphX:

  • 它是一个用于操作图形和执行图形并行计算的库;
  • 有助于创建一个有向图,可以任意属性附加到每个顶点和边;
  • 要操纵图形,它支持各种基本运算符,如子图、连接顶点和聚合消息。

脚本宝典总结

以上是脚本宝典为你收集整理的了解Spark全部内容,希望文章能够帮你解决了解Spark所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。