天天看点

Spark学习之概念了解

Spark简介:

Spark是一个快速且通用的集群计算模型:

1、Spark是快速的:

快速是指处理几T到几批数据量的时候,他的处理时间是几秒钟或几分钟,相对于hadoop的几分钟到几小时是非常快速的,

通用是指Spark的应用场景比较多

Spark扩展了MapReduce的计算模型

Spark是基于内存计算的

当我们在处理一个大批量数据的时候,难免呢会产生一些中间的数据结果,怎么处理呢

第一种:放在硬盘中,硬盘会带来额外的写入写出的消耗

第二种:直接存放到内存中,放到内存中肯定比放到硬盘中要快一些。所以Spark的速度是很快的

举例(瑞士军刀,大刀,小刀等等)

Spark特点

2、Spark是通用的:

Spark容纳了其他的分布式系统拥有的功能,批处理(hadoop),迭代式处理(机器学习系统),交互式查询(hive查询)和流处理(storm)

当我们搭建一个Spark集群时,就相当于搭建了这么多的功能

优点:大大的降低了集群的维护成本,因为在生产环境中,集群的维护是相当耗时

Spark是高度开放的 :

提供了python java Scala sql的API,

与其他的大数据工具整合的很好,包括Hadoop,kafka等

Spark组件

spark core:

包括spark基本功能,包括任务调度,内存管理,容错机制

内部定义了RDDs(弹性分布式数据集),

提供多个APIs来创建和操作这些RDDs

应用场景,为其他组件提供底层服务

spark sql:

spark处理结构化数据的库,类似Hive SQL,MySql,

应用场景,主要为企业提供报表统计

spark streaming:

实时数据流处理组件,类似Storm,提供API操作实时流数据,

应用场景,企业中用来从Kafka中接收数据做实时统计

Mlib:

包含通用机器学习功能的包,包括聚类,回归,模型评估和数据导入。同时支持集群平台上的横向扩展

之前做机器学习都是Python比较多一点,Python的最大缺点是在单机上的,处理的数据量是有限的

而Mlib呢,是集群的,他的应用场景就是机器学习

Graphx:

处理图的库(例如社交网络的图),并进行图的并行计算

像spark steaming,spark sql一样,他也继承了RDD API

他提供了各种图的操作,和常用的图的算法,例如PangeRank算法

应用场景:就是图计算

Cluster Manager:

spark自带的集群管理

Spark紧密集成的优点:

spark底层优化,基于spark底层的组件也得到相应的优化,

紧密集成节省了组件的部署,测试时间

向spark增加新的组件时,其他组件,可立刻享用新组件的功能

Hadoop&Spark比较

Hadoop应用场景:

Doug Cutting 的观点:

继续阅读