美文网首页
Spark简介

Spark简介

作者: 诺之林 | 来源:发表于2021-04-17 14:21 被阅读0次

    目录

    发展

    MapReduce

    • MapReduce = Map + Reduce

    • 2004年Google发表了《MapReduce: Simplified Data Processing on Large Clusters》

    • 该论文论述了: MapReduce的编程模型 以及 如何在大量廉价机器上稳定地实现超大规模的并行数据处理

    Hadoop

    • 2004年Doug Cutting和Mike Cafarella在为他们的搜索引擎爬虫Nutch实现分布式架构的时候看到了Google的GFS&MapReduce论文

    • 之后的几个月里按照论文实现出一个简易版的HDFS和MapReduce 这也就是Hadoop的最早起源

    • 后来他们加入了Yahoo 并在Yahoo真正完善、推广和落地Hadoop大数据

    Spark

    • 2009年诞生于加州大学伯克利分校AMP(Algorithms、Machines, and People)实验室

    • Spark最初的设计目标是使数据分析更快: 不仅运行速度快 也要能快速、容易地编写程序

    • 后来Spark核心开发团队还成了商业公司Databricks

    MapReduce Spark
    编程模型 Map和Reduce 不局限于Map和Reduce
    还提供多种数据集操作类型
    运算效率 每次迭代都要向磁盘写入、读取中间数据
    I/O开销大效率低
    中间结果直接存放到内存
    更高的迭代运算效率
    调度机制 N/A 基于DAG的任务调度执行机制更优
    Logistic regression in Hadoop and Spark

    特性

    高性能

    系统瓶颈从网络和磁盘I/O 转移到CPU利用率 => Spark2.x的Tungsten项目

    • Memory Management and Binary Processing: 绕过JVM的GC 类似C语言直接申请和管理内存 / 减少Java对象使用 例如使用BytesToBytesMap替代HashMap

    • Cache-aware Computation: 提高缓存命中 提高迭代运算效率 例如数据挖掘、机器学习

    • Code generation: 优化Spark SQL代码生成 提升CPU利用率

    通用性

    过去 Spark
    批处理 MapReduce
    Apache Hive / Apache Pig
    Spark Core
    Spark SQL
    流处理 Apache Storm Spark Streaming
    机器学习 Apache Mahout Spark MLlib
    图计算 Apache Hama Spark GraphX

    多语言

    编程语言 类型 开发效率 执行效率 交互编程
    Scala 编译型 支持(原生)
    Java 编译型 不支持
    Python 解释型 支持(PySpark)
    SQL 解释型 支持(原生)

    参考

    相关文章

      网友评论

          本文标题:Spark简介

          本文链接:https://www.haomeiwen.com/subject/zxkcfltx.html