2021-03-03

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架。Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

Spark 框架核心组件,以及Spark和Hadoop生态关系

Spark具有如下4个主要特点:

运行速度快 - Spark 使用先进的DAG(Directed Acyclic Graph,有向无环图)执行引擎,以支持循环数据流与内存计算,基于内存的执行速度可比Hapdoop MapReduce快上百倍。
容易使用 - Spark 支持使用Scale、Java、Python等,并且可以通过Spark Shell进行交互式编程。
通用性 - Spark 提供了完整的技术栈,包括SQL查询、流式计算、机器学习等组件。
运行模式多样 - Spark 可以运行于独立的集群模式,或者运行于Hadoop中,也可以运行于Amazon EC2等云环境中,并且可以访问 HDFS、Cassandra、HBase、Hive等多种数据源。
Spark 生态系统
Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成了一套完整的生态系统,既能够提供内存计算框架,也可以支持SQL即席查询、实时流式计算、机器学习和图计算等。

Spark大数据处理框架入门-包括生态系统、运行流程以及部署方式
Spark 专注于数据的处理分析,而数据的存储还是借助于Hadoop HDFS、Amazon S3等来实现。

Spark 可以部署在资源管理器YARN之上。

Spark 生态系统主要包含了:

Spark Core
Spark SQL
Spark Streaming
MLlib(机器学习)
GraphX(图计算)
Spark最初的设计目标是使数据分析更快——不仅运行速度快,也要能快速、容易地编写程序。为了使程序运行更快,Spark提供了内存计算,减少了迭代计算时的IO开销;而为了使编写程序更为容易Spark使用简练、优雅的Scala语言编写,基于Scala提供了交互式的编程体验。虽然,Hadoop已成为大数据的事实标准,但其MapReduce分布式计算模型仍存在诸多缺陷,而Spark不仅具备Hadoop MapReduce所具有的优点,且解决了Hadoop MapReduce的缺陷。Spark正以其结构一体化、功能多元化的优势逐渐成为当今大数据领域最热门的大数据计算平台。
由于Spark采用Scala语言进行开发,因此,建议采用Scala语言进行Spark应用程序的编写。Scala是一门现代的多范式编程语言,平滑地集成了面向对象和函数式语言的特性,旨在以简练、优雅的方式来表达常用编程模式。Scala语言的名称来自于“可伸展的语言”,从写个小脚本到建立个大系统的编程任务均可胜任。Scala运行于Java平台(JVM,Java 虚拟机)上,并兼容现有的Java程序。
Spark生态系统
  在实际应用中,大数据处理主要包括以下三个类型:

复杂的批量数据处理:时间跨度通常在数十分钟到数小时之间;

基于历史数据的交互式查询:时间跨度通常在数十秒到数分钟之间;

基于实时数据流的数据处理:时间跨度通常在数百毫秒到数秒之间。

Spark专注于数据的处理分析,而数据的存储还是要借助于Hadoop分布式文件系统HDFS、Amazon S3等来实现的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值