Spark的概念和特征

1.spark的概念

Apache Spark™ is a fast and general engine for large-scale data processing.

Apache Spark 是处理大规模数据的快速的、通用的引擎。

3.spark的四大特征

(1)Speed(速度)

  Run programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk.

Apache Spark has an advanced DAG execution engine that supports acyclic data flow and in-memory computing.

  

 

hadoopMapreduce相比,spark基于内存的运算比Mapreduce要快100倍,spark基于磁盘的运算比Mapreduce要快10倍。(实际应用中并没有那么的夸张)

Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流。

 

为什么spark的运行速度会比Mapreduce快??==========

 

Mapreducemap  ->磁盘 ->  shuffle  ->  reduce  ->  磁盘  

上面过程中两次将文件落地到磁盘上面,然后再加载都内存,这样耗费时间;

spark的函数在运行的时候,绝大多数的函数都是在内存中迭代的,只有少数的函数在运行的时候需要将文件落地到磁盘上面,这样就加快了计算的速度。

 

总结:Spark是对MapReduce的过程做了优化,

           Spark是对MapReduce的架构做了优化

 

(2)Ease of Use(易用)

Write applications quickly in Java, Scala, Python, R.

Spark offers over 80 high-level operators that make it easy to build parallel apps. And you can use it interactively from the Scala, Python and R shells.

Spark支持JavaPythonScalaAPI,还支持超过80种高级算法,使得用户可以很容易的构建并行应用程序,用户可以交互式的使用ScalaPythonRshell操作。

语言的选择:

Java

好处:我们做一个大数据的大型项目

            Hbase  Kafka  Flume  hadoop -> MySQL  SSH 这些都是用Java开发的,因为Java有很成熟的产品和方案存在,所以也会有项目经理。去选Java开发Spark程序。

坏处:代码写出来不好看,运行效率没scala好。

             但是好在出来了jdk8  里面有lamda表达式,也支持函数式编程。让代码好看了一点。

Scala:

好处:spark 就是用scala开发,运行效率好。而且是函数式编程。代码很优雅Spark中超过80个算子(map  reduce)操作Spark开发起来,会更灵活,而且更简单

Ptyhon去做开发:这也是没问题的

注:一个项目里面可以即用ScalaJava的,因为他们可以无缝的对接,但是维护成本比较高

(3)Generality(通用性)


Combine SQL, streaming, and complex analytics.Spark powers a stack of libraries including SQL and DataFramesMLlib for machine learning, GraphX, and Spark Streaming. You can combine these libraries seamlessly in the same application.

Spark提供了统一的解决方案,Spark可以用于批处理、交互式查询(通过spark SQL)、实时流处理(通过Spark Streaming)、机器学习(通过MLlib)和图计算(GraphX),这些不同类型的处理可以在一个应用中无缝使用,而且spark的性能极好。


第一代大数据平台

Hadoop上面的分布式的计算系统是MapReduce,但是MapReduce的计算程序要求太高。进而开发出来了基于HadoopHivePig,这两个分布式的数据仓库都是将sql语句转化成MapReduce程序提交到Yarn上面运行,计算的数据来源于HDFS

MapReduce也支持深度学习和机器学习,将Mahout的程序转换成MapReduce程序,提交到Yarn上面进行运行。

对数据实时的交互式查询需要在Hadoop的集群上面安装一个Hbase

对数据进行实时的计算分析,在Hadoop的集群上面安装一个storm的集群。

第二代大数据平台

SparkCore是类似Mapreduce的一个计算系统

SparkSQL是类似于HivePig

SparkStreaming类似于Storm

SparkStreamingSparkSQL可以进行无缝的转换

Spark也支持深度学习和机器学习,还支持图计算(数据结构里面的图结构)

 

(4)Runs Everywhere(可融合性)

Spark runs on Hadoop, Mesos, standalone, or in the cloud. It can access diverse data sources including HDFS, Cassandra, HBase, and S3.

You can run Spark using its standalone cluster mode, on EC2, on Hadoop YARN, or on Apache Mesos. Access data in HDFSCassandraHBase,HiveTachyon, and any Hadoop data source.

Spark的资源管理和调度方面:

standalone模式下面,spark自己管理和调度自己的资源,此时会开启masterworker,由master来管理和调度资源。

hadoop yarn的模式下,spark的资源管理和调度器是yarn,由resourcemanager来管理和调度资源。

apache mesos的模式下,spark的资源管理和调度器是mesosMesos:是一个类似于yarn的资源管理器。

 

Spark可访问的数据:

HDFS,CassandraHbaseHiveTachyon和各种hadoop和访问到的数据资源,比如kafkaflume等。

 

 

总结:

在我们国内经常让Spark是运行在yarn上面,原因我们之前的大数据平台就是用hadoop构建的。国外喜欢把Spark运行在MesosSpark一出来的时候,就是运行在Mesos

注:mesosspark是一个团队写的,最早spark是在masos上面运行的。为了推广所有兼容了其他的资源管理器

Spark自己管理资源,standalone Spark自己管理资源。

Master Worker

Spark –》Mesos (同一个团队写的)

Spark –》 Stanalone的模式


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值