大数据中的Spark指的是什么?

大数据中的Spark指的是什么?,第1张

Spark是一种通用的大数据计算框架,和传统的大数据技术MapReduce有本质区别。前者是基于内存并行计算的框架,而mapreduce侧重磁租猛隐盘计算。Spark是加州知巧大学伯克利分校AMP实验室开发的通用内存并行计算框架,用于构建大型的、低延迟的数据分析应用程序。

Spark同样支持离线计算和实时计算两种模式。Spark离线计算速度要比Mapreduce快10-100倍。而实时计算方面,则依赖于弊厅SparkStreaming的批处理能力,吞吐量大。不过相比Storm,SparkStreaming并不能做到真正的实时。

Spark使用强大的函数式语言Scala开发,方便简单。同时,它还提供了对Python、Java和R语言的支持。

作为大数据计算框架MapReduce的继任者,Spark具备以下优势特性。

1,高效性

不同于MapReduce将中间计算结果放入磁盘中,Spark采用内存存储中间计算结果,减少了迭代运算的磁盘IO,并通过并行计算DAG图的优化,减少了不同任务之间的依赖,降低了延迟等待时间。内存计算下,Spark 比 MapReduce 快100倍。

2,易用性

不同于MapReduce仅支持Map和Reduce两种编程算子,Spark提供了超过80种不同的Transformation和Action算子,如map,reduce,filter,groupByKey,sortByKey,foreach等,并且采用函数式编程风格,实现相同的功能需要的代码量极大缩小。

3,通用性

Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。

4,兼容性

Spark能够跟很多开源工程兼容使用。如Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且Spark可以读取多种数据源,如HDFS、HBase、MySQL等。

1、Spark 是基于内存的分布式计算框架,因为无需利用 HDFS 作为中间结果保存的介质,性能杠杠的。Spark 是由 Scala 实现的,所以最好学习一下 Scala(当然用 Python 和 Java 也是可以的)。(http://wdxtub.com/2016/04/11/spark-guide/)

为啥要用 Spark?

快!基于内存

易用!Scala, Java, Python 都支持,还有交互式的 Python 和 Scala 的 shell,可以快速进行原型开发

通用!批处理、交互查询、流处理、机器学习、图计算,样样精通

兼容!可以使用各种现有的技术或皮作为底层,也可以自己独立运行

Spark 生态系统有哪些组件?

Spark SQL: 类似 Hive,支持在不同 RDD 上进行类似 SQL 的 *** 作

Spark Streaming: 对于流数据进行处理

MLlib: 机器学习库

GraphX: 图并行框架

RDD 是什么?

在 Spark 框架中,最重要的是一类新的数据抽象,叫做 Resilient Distributed Dataset - RDD。RDD 是分布式存储在集群中的内存对象,按照值的范围或者哈希结果进行划分毕激。与此同时 RDD 会记录关于数据进行的各种 *** 作(每次 *** 作都会生成新的 RDD),这样即使节点挂掉,也能够根据之前的 *** 作日志重新得到损失的 RDD

RDD 支持2种 *** 作:

转换(transformation):从现有的数据集创建一个新的数据集

动作手团袜(actions):在数据集上运行计算后,返回一个值给驱动程序

2、实战java开发spark程序

https://my.oschina.net/csmw00/blog/672869

3、spark集群环境搭建

http://nekomiao.me/2016/12/05/spark-install-distributed/

 本文前提是已经正确安装好scala,sbt以及spark了 简述将程序挂载到集群上运行的步骤:

1、宴困构建sbt标准的项目工程结构:SBT项目工程结构图其中:~/build.sbt文件用来配置项目的基本信息(项目名、组织名、项目版本、使用的scala版本或者再次配置些项目所需的依赖包);project/build.properties文件配置你要使用什么版本的sbt对项目 *** 作;project/plugins.sbt文件是给项目添加所需的插件;project/Build.scala文件是对项目进行些复杂的高级配置;详细的sbt安装配置实用参见博文:

2、到相应目录下编写程序,spark程序必须要创建一个SparkContext实例。SparkContext("master", "projectName", "SPARK_HOME", "yourProject.jar path")

3、sbt compile命令编译程序无错后,sbt package命令将程序打包。默认打包的晌搭念jar文件存放路径为:项目根目录/target/scala-xx.xx.xx/your-project-name_xx.xx.xx-xx.jar

4、将打包好的jar问价添加到SPAK_CLASSPATH中(在linux中根据作用范围的不同有多种更改环境变量的方枝郑式,这里只说我的配置方式:spark根目录下的conf/spark-env.sh文件添加SPARK_CLASSPATH:xxxxxxxx)

5、配置好环境变量后就可以在spark的根目录下使用./run脚本运行你的程序了例如:./run spark.examples.SparkPi spark://masterIP:port注意,如果程序涉及IO *** 作起默认路径为SPARK_HOME;至于如何修改这个路径,有待研究

转载,仅供参考。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8263522.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存