产品经理学大数据——大数据软件框架:Spark(1)
随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐、用户行为分析等。因此,Hadoop生态系统又发展出以Spark为代表的新计算框架。相比MapReduce,Spark速度快,开发简单,并且能够同时兼顾批处理和实时数据分析。
- Apache Spark来源
Apache Spark是加州大学伯克利分校的AMPLabs开发的开源分布式轻量级通用计算框架,并于2014年2月成为Apache的顶级项目。由于Spark基于内存设计,使得它拥有比Hadoop更高的性能,并且对多语言(Scala,Java、Python)提供支持。
- Apache Spark与MapReduce的区别1——性能
Spark有点类似Hadoop MapReduce框架。Spark拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是,Job中间输出结果可以保存在内存中,从而不再需要读写HDFS(MapReduce的中间结果要放在文件系统上),因此,在性能上,Spark能比MapReduce框架块100倍左右(如图2-5所示),排序100TB的数据只需要20分钟左右。正是因为Spark主要是在内存中执行,所以Spark对内存的要求非常搞,一个节点通常需要配置24GB的内存。在业界,我们有时把MapReduce称为批处理计算框架,把Spark称为实时计算框架、内存计算框架或流式计算框架。
- Apache Spark与MapReduce的区别2——容错性
Hadoop使用数据复制来实现容错性(I/O高),而Spark使用RDD(Resilient Distributed Datasets,弹性分布式数据集)数据存储模型来实现数据的容错性。RDD是只读的、分区记录的集合。如果一个RDD的一个分区丢失,RDD含有如何重建这个分区的相关信息。这就避免了使用数据复制来保证容错性的要求,从而减少了对磁盘的访问。通过RDD,后续步骤如果需要相同数据集时就不必重新计算或从磁盘加载,这个特性使得Spark非常适合流水线式的处理。
- Spark和Hadoop生态的结合
虽然Spark可以独立于Hadoop来运行,但是Spark还是需要一个集群管理器和一个分布式存储系统。对于集群管理,Spark支持Hadoop YARN、Apache Mesos和Spark原生集群。对于分布式存储,Spark可以使用HDFS、Casandra、OpebStack Swift和Amazon S3。Spark支持Java、Python和Scala(Scala是Spark最推荐的编程语言,Spark和Scala能够紧密集成,Scala程序可以在Spark控制台上执行)。应该说,Spark紧密集成Hadoop生态系统中的上述工具。Spark可以与Hadoop上的常用数据格式(如:Avro和Parquet)进行交互,能读写HBase等NoSQL数据库,它的流处理组件Spark Streaming能连续从Flume和Kafka之类的系统上读取数据,它的SQL库Spark SQL能和Hive Metastore交互。
- Spark优点
Spark的内存缓存使它适合于迭代计算。机器学习算法需要多次遍历训练集,可以将训练集缓存在内存里。在对数据集进行探索时,数据科学家可以在运行查询的时候讲数据集放在内存,这样就节省了访问磁盘的开销。
- Spark的不足
虽然Spark目前被广泛认为是下一代Hadoop,但是Spark本身的复杂性也困扰着开发人员。Spark的批处理能力仍然比不过MapReduce,Spark SQL和Hice的SQL能力相比还有一定的差距,Spark的统计功能与R语言还没有可比性。
- 产品经理学大数据——大数据软件框架:Spark(2)之Scala
- 产品经理学大数据——大数据软件框架:Spark(3)之Spark SQL
- 产品经理学大数据——大数据软件框架:Spark(4)之Spark Streaming
- 产品经理学大数据——大数据软件框架:实时流处理框架
- 产品经理学大数据——大数据软件框架:框架的选择
- 优秀的数据产品经理需要掌握哪些技能?
- 基于EasyUI的软件框架打造-数据(JSON)封装
- 大数据分析, 数据挖掘, 机器学习,找到产品改进的爆点。
- 回到三四线城市继续做IT 基础框架+软件产品+培训兼职
- Spark(火花)快速、通用的大数据处理引擎框架
- IFC标准是为了满足建筑行业的信息交互与共享而产生的统一数据标准,是建 筑行业事实上的数据交换与共享标准。本文概要介绍了IFC标准的产生及发展 历程,IFC的整体框架结构,简要说明了IFC标准的实现方法和过程,描述了 当前的应用以及我们应该更加积极地利用IFC标准为建筑软件行业服务。
- 【产品经理&交互常用软件】axure软件详细教程与学习指南
- 2 分钟读懂大数据框架 Hadoop 和 Spark 的异同
- 产品经理做市场调研和数据分析的方法
- 互联网产品经理常用软件及工作平台
- 流式大数据处理的三种框架:Storm,Spark和Samza
- 流式大数据处理的三种框架:Storm,Spark和Samza
- 10年产品经理手把手教你做产品:如何设计一款任务管理软件
- 产品经理怎么样用图表传达数据信息(多图)
- 流式大数据处理的三种框架:Storm,Spark和Samza