当前位置: 移动技术网 > IT编程>数据库>其他数据库 > 什么是spark?

什么是spark?

2020年03月09日  | 移动技术网IT编程  | 我要评论
什么是Spark? Spark官网:http://spark.apache.org Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态 ...

 

  • 什么是spark? 

  • spark官网:

spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校amplab,2010年开源,2013年6月成为apache孵化项目,2014年2月成为apache顶级项目。目前,spark生态系统已经发展成为一个包含多个子项目的集合,其中包含sparksql、spark streaming、graphx、mllib等子项目,spark是基于内存计算的大数据并行计算框架。spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将spark部署在大量廉价硬件之上,形成集群。

spark得到了众多大数据公司的支持,这些公司包括hortonworksibmintelclouderamaprpivotal、百度、阿里、腾讯、京东、携程、优酷土豆。当前百度的spark已应用于凤巢、大搜索、直达号、百度大数据等业务;阿里利用graphx构建了大规模的图计算和图挖掘系统,实现了很多生产系统的推荐算法;腾讯spark集群达到8000台的规模,是当前已知的世界上最大的spark集群。

  • 概念:spark是统一的分布式大数据分析引擎
  • 关键词: 
    • 统一:spark能够适应多种计算场景 (离线计算、实时计算、机器学习、图计算、ai应用)。一般公司在进行技术选型过程,spark首选

    • 大数据分析引擎:spark能够分析数据,但是没有存储。一般线上的spark数据来源 (hdfs, hive、kafka、flume、日志文件、关系型数据库、nosql数据库)。spark数据出口(hdfs、hive、kafka、redise、关系型数据库、nosql数据库)

    • 分布式:spark一般情况是以集群模式存在。架构 :master/slaver(主从结构)

     应用场景

    • 精准广告推荐系统(spark机器学习,一般在广告或者电商公司应用)

    • 金融风险管控系统 (对实时性要求比较,起码毫秒级)

    • 精细化运行系统 (cms系统 、bi系统,重点:多维分析)

    • 用户画像 (用户数据画像)

  • spark的好处

spark是一个开源的类似于hadoop mapreduce的通用的并行计算框架,spark基于map reduce算法实现的分布式计算,拥有hadoop mapreduce所具有的优点;但不同于mapreduce的 是spark中的job中间输出和结果可以保存在内存中,从而不再需要读写hdfs,因此spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。

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一站式解决方案
      • 五大模块
        • sparkcore (处理离线数据)
        • sparksql (主要用来做多维数据分析、以及交互式查询)
        • sparkstreaming (实时数据处理程序)
        • spark mllib (机器学习 包含非常多算法,相当于spark提供的一个算法)
        • spark graphx (图计算处理模块)

        在开发spark应用程序过程中,能够同时使用以上所有模块。以上模块能够无缝兼容

spark提供了统一的解决方案。spark可以用于批处理、交互式查询(spark sql)、实时流处理(spark streaming)、机器学习(spark mllib)和图计算(graphx)。这些不同类 型的处理都可以在同一个应用中无缝使用。spark统一的 解决方案非常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。

  •  兼容性
    • 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集群的工具。

  

 

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网