Spark入门篇之简介

Spark是Apache基金会的一个顶级项目,也是Apache基金会下目前最活跃的开源项目之一,诞生于加州大学伯克利分校的AMP实验室,是一个开源的基于内存的分布式计算框架。由于Spark是基于内存的计算,相对于MapReduce来说,提高了计算速度,同时Spark也提供了高容错性和可扩展性。
1.## 速度快
基于内存的数据处理使得Spark比Mapreduce快100个数据量级以上,即使基于硬盘的数据处理Spark也要比Mapreduce快10个数量级以上。

2.易用性

Spark支持Java、Scala、Python和R语言,并提供了80+的高级API,这使得Spark使用者能够根据自己所掌握的开发语言快速构建自己的应用。Spark还提供交互式的Scala、Python和R语言的Shell,使得开发和测试更加方便和快捷。

3.通用性

Spark提供了一个强有力的一栈式通用的解决方案(One Stack to rule them all),使用Spark能完成批处理、交互式查询(Spark SQL)、流处理(Spark Streaming),图计算(GraphX)及机器学习(MLlib)。这些组件之间无缝对接、综合使用。
在这里插入图片描述
Spark与其他开源产品的兼容性做的非常出色。Spark可以运行在Hadoop的Yarn、Mesos和云平台。当然Spark也提供了自己的资源调度和管理系统(Standalone)模式。它可以访问HDFS、Cassandra、 HBase和S3上的数据。

1.Spark Core

Spark Core是整个生态系统的核心组件,是一个分布式计算引擎(Lighting-fast cluster computing),不仅实现了Mapreduce的map方法和Reduce方法,还提供了更高层次、更丰富的方法,比如:filter、join、sum等,能够使得我们开发分布式程序的门槛降低。

2.RDD弹性分布式数据集

Spark中的分布式编程模型是RDD(Resilient Distributed Datasets:弹性分布式数据集),换句话说Spark都是将数据包装成RDD来进行操作的,比如Spark可以兼容处理HDFS上的数据文件,那么这个HDFS数据文件就是包装成Spark所认识的RDD来完成数据操作的

3.Spark Sql

Spark SQL是支持在Spark中使用Sql、HiveSql、Scala中的关系型查询表达式。它的核心组件是一个新增的RDD类型SchemaRDD,它把行对象用一个Schema来描述行里面的所有列的数据类型,它就像是关系型数据库里面的一张表。它可以从原有的RDD创建,也可以是Parquet文件,最重要的是它可以支持用HiveQL从hive里面读取数据。

4.Spark Streaming实时流数据处理

Spark Streaming 是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。支持从多种数据源获取数据,包括Kafka、Flume、Twitter、ZeroMQ、Kinesis 以及TCP sockets,从数据源获取数据之后,可以使用诸如map、reduce、join和window等高级函数进行复杂算法的处理。

5.Spark GraphX

Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求。
众所周知,社交网络中人与人之间有很多关系链,例如Twitter、Facebook、微博和微信等,这些都是大数据产生的地方都需要图计算,现在的图处理基本都是分布式的图处理,而并非单机处理。

6.MLlib

MLlib是构建在Spark上的分布式机器学习库,充分利用了Spark的内存计算和适合迭代型计算的优势,将性能大幅度提升。MLlib中提供了一些机器学习类库包括分类、回归、聚类和协同过滤等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值