Spark 特点

版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_42246689/article/details/85723746

3、Spark 特点 

3.1、Speed:快速高效 

随着实时大数据应用越来越多,Hadoop 作为离线的高吞吐、低响应框架已不能满足这类需 求。Hadoop MapReduce 的 Job 将中间输出和结果存储在 HDFS 中,读写 HDFS 造成磁盘 IO 成为瓶颈。Spark 允许将中间输出和结果存储在内存中,节省了大量的磁盘 IO。Apache Spark 使用最先进的 DAG 调度程序,查询优化程序和物理执行引擎,实现批量和流式数据的高性 能。同时 Spark 自身的 DAG 执行引擎也支持数据在内存中的计算。Spark 官网声称性能比 Hadoop 快 100 倍。即便是内存不足需要磁盘 IO,其速度也是 Hadoop 的 10 倍以上。 

3.2、Ease of Use:简洁易用 

Spark 现在支持 Java、Scala、Python 和 R 等编程语言编写应用程序,大大降低了使用者的门 槛。自带了 80 多个高等级操作符,允许在 Scala,Python,R 的 shell 中进行交互式查询,可 以非常方便的在这些 Shell 中使用 Spark 集群来验证解决问题的方法。 

3.3、Generality:全栈式数据处理 

Spark 提供了统一的解决方案。Spark 统一的解决方案非常具有吸引力,毕竟任何公司都想用 统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。 
 
支持批处理(Spark Core)。Spark Core 是 Spark 的核心功能实现,包括:SparkContext 的初始 化(DriverApplication 通过 SparkContext 提交)、部署模式、存储体系、任务提交与执行、计 算引擎等。

支持交互式查询(Spark SQL)。Spark SQL 是 Spark 来操作结构化数据的程序包,可以让我们 使用 SQL 语句的方式来查询数据,Spark 支持多种数据源,包含 Hive 表,parquet 以及 JSON 等内容。

支持流式计算(Spark Streaming)。与 MapReduce 只能处理离线数据相比,Spark 还支持实 时的流计算。Spark 依赖 Spark Streaming 对数据进行实时的处理。

支持机器学习(Spark MLlib)。提供机器学习相关的统计、分类、回归等领域的多种算法实 现。其一致的 API 接口大大降低了用户的学习成本。

支持图计算(Spark GraghX)。提供图计算处理能力,支持分布式, Pregel 提供的 API 可以 解决图计算中的常见问题。

支持 Python 操作--PySpark

支持 R 语言--SparkR   

3.4、Runs Everywhere:兼容

可用性高。Spark 也可以不依赖于第三方的资源管理和调度器,它实现了 Standalone 作为其 内置的资源管理和调度框架,这样进一步降低了 Spark 的使用门槛,使得所有人都可以非常 容易地部署和使用 Spark,此模式下的 Master 可以有多个,解决了单点故障问题。当然,此 模式也完全可以使用其他集群管理器替换,比如 YARN、Mesos、Kubernetes、EC2 等。 
 
丰富的数据源支持。Spark 除了可以访问操作系统自身的本地文件系统和 HDFS 之外,还可 以访问 Cassandra、HBase、Hive、Tachyon 以及任何 Hadoop 的数据源。这极大地方便了已经 使用 HDFS、HBase 的用户顺利迁移到 Spark。 

Spark 支持的几种部署方案:

Mesos:Spark 可以运行在 Mesos 里面(Mesos 类似于 YARN 的一个资源调度框架)

Standalone:Spark 自己可以给自己分配资源(Master,Worker)

YARN:Spark 可以运行在 Hadoop 的 YARN 上面

Kubernetes:Spark 接收 Kubernetes 的资源调度 
 

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/85723746