什么是spark?
-
什么是spark?
- spark官网:
spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校amplab,2010年开源,2013年6月成为apache孵化项目,2014年2月成为apache*项目。目前,spark生态系统已经发展成为一个包含多个子项目的集合,其中包含sparksql、spark streaming、graphx、mllib等子项目,spark是基于内存计算的大数据并行计算框架。spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将spark部署在大量廉价硬件之上,形成集群。
spark得到了众多大数据公司的支持,这些公司包括hortonworks、ibm、intel、cloudera、mapr、pivotal、百度、阿里、腾讯、京东、携程、优酷土豆。当前百度的spark已应用于凤巢、大搜索、直达号、百度大数据等业务;阿里利用graphx构建了大规模的图计算和图挖掘系统,实现了很多生产系统的推荐算法;腾讯spark集群达到8000台的规模,是当前已知的世界上最大的spark集群。
- 概念:spark是统一的分布式大数据分析引擎
- 关键词:
-
-
-
大数据分析引擎:spark能够分析数据,但是没有存储。一般线上的spark数据来源 (hdfs, hive、kafka、flume、日志文件、关系型数据库、nosql数据库)。spark数据出口(hdfs、hive、kafka、redise、关系型数据库、nosql数据库)
-
分布式:spark一般情况是以集群模式存在。架构 :master/slaver(主从结构)
-
-
-
精准广告推荐系统(spark机器学习,一般在广告或者电商公司应用)
-
金融风险管控系统 (对实时性要求比较,起码毫秒级)
-
精细化运行系统 (cms系统 、bi系统,重点:多维分析)
-
用户画像 (用户数据画像)
-
-
spark的好处
spark是mapreduce的替代方案,而且兼容hdfs、hive,可融入hadoop的生态系统,以弥补mapreduce的不足。
-
spark特点
-
速度快
- 典型数据处理流程:spark在使用过程中,会读取hdfs上数据,并且会将hdfs中数据驻留在内存当中,将数据进行缓存、在后续数据迭代操作过程能够重用内存中的数。在逻辑回归处理(算法)中,spark的速度要比hadoop 理论上快100倍
- 与hadoop的mapreduce相比,spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。spark实现了高效的dag执行引擎,可以通过基于内存来高效处理数据流。
-
spark对程序员非常友好
- spark支持多种语言(java、scala、python、r、sql)
- spark支持java、python和scala的api,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且spark支持交互式的python和scala的shell,可以非常方便地在这些shell中使用spark集群来验证解决问题的方法。
- spark支持多种语言(java、scala、python、r、sql)
-
spark一站式解决方案
-
五大模块
- sparkcore (处理离线数据)
- sparksql (主要用来做多维数据分析、以及交互式查询)
- sparkstreaming (实时数据处理程序)
- spark mllib (机器学习 包含非常多算法,相当于spark提供的一个算法)
- spark graphx (图计算处理模块)
- sparkcore (处理离线数据)
-
五大模块
-
速度快
- 兼容性
- spark能够兼容 (hadoop、hive、hbase、yarn、kafka、flume、redise、关系型数据等)
- spark可以非常方便地与其他的开源产品进行融合。比如,spark可以使用hadoop的yarn和apache mesos作为它的资源管理和调度器,器,并且可以处理所有hadoop支持的数据,包括hdfs、hbase和cassandra等。这对于已经部署hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用spark的强大处理能力。spark也可以不依赖于第三方的资源管理和调度器,它实现了standalone作为其内置的资源管理和调度框架,这样进一步降低了spark的使用门槛,使得所有人都可以非常容易地部署和使用spark。此外,spark还提供了在ec2上部署standalone的spark集群的工具。
上一篇: Spark 单机环境配置
下一篇: 耦合(一)