zoukankan      html  css  js  c++  java
  • [Spark笔记]Apache Spark — Overview

    Spark简介

    Apache Spark是一个开源的分布式通用计算框架,具有(大部分)内存数据处理引擎,可以对大量的数据静态或者动态地进行ETL,分析,机器学习和图形处理,并为各种编程语言提供丰富简洁的高级APIs: Scala, Python, Java, R 以及SQL。

    你可以将Spark看做一个分布式的数据处理引擎,用于批量和流式模式,包括SQL查询,图形处理和机器学习。

    和Hadoop基于磁盘的两阶段MapReduce计算引擎相比,Spark的多阶段内存计算引擎运行在内存中运行大部分计算,因此在大多数情况下能为某些应用程序提供更好的性能,例如迭代算法和交互式数据挖掘。

    Spark也经常被称作集群计算引擎,或者简单地称作执行引擎。
    Spark可用于执行复杂的多阶段应用程序,如机器学习算法和交互式即席查询。Spark为内存集群计算提供了一个高效的数据抽象,称作弹性分布式数据集(Resilient Distributed Dataset, RDD)

    Spark主要用Scala编写,但它为开发者提供其他语言的API,如Java, Python和R。

    如果你需要在低延迟的条件下处理大量的数据(传统的MR程序无法满足),那么Spark是一个可行的选择。

    • 从任何数据源访问任何数据类型
    • 巨大的存储和数据处理需求

    Spark可以以本地集群的形式,在本机或者云端运行。它运行在Hadoop YARN, Apache Mesos, 独立部署模式或者云端部署(Amazon EC2或IBM Bluemix)之上。

    在高层次上,Spark应用程序利用输入数据来创建RDDs, 将它们通过延迟转换函数(lazy transformations)转换为其他形式,最后执行操作(Actions)来收集或者存储数据,不难吧?

    程序员使用指定语言的API以及转换和操作在RDD上工作,数据工程师使用更高级别的数据抽象如DataFrame,Pipelines APIs或者外部工具(连接到Spark)来工作,最后由管理员调节集群参数以部署Spark应用程序。

    Spark的目标以更快的计算速度,更易于使用,更好的扩展性以及交互式分析等,成为一个通用的计算平台,让各种专门的应用程序框架运行在其之上。

    为什么用Spark

    • 易于上手
    • 可用于多种类型的工作
    • 利用最好的分布式批量数据处理(Hadoop)
    • RDD - 分布式并行Scala数据集合
    • 丰富的标准库
    • 统一的开发和部署环境
    • 交互式探索/探索性分析(Spark-Shell)
      • 又称为即席查询(Ad-hoc queris)
    • 数据集成工具,支持丰富的数据源
    • 底层优化
      • Spark’s lazy evaluation gives plenty of opportunities to include low-level optimizations (so users have to know less to do more)
    • 适用于低延迟交互式工作(low latency)
    • ETL实现更简单
    • 统一简洁的高层次API
    • 近乎零磁盘使用以获得更好的性能
    • 容错
  • 相关阅读:
    POJ2960 S-Nim
    HDU1850 Being a Good Boy in Spring Festival
    描述性统计-1
    基础-1
    .Net程序调试
    家装设计
    ACDSee技巧
    Timeline Maker 用法小结
    Windows 7 操作系统核心文件
    艺术字的操作
  • 原文地址:https://www.cnblogs.com/lestatzhang/p/10611337.html
Copyright © 2011-2022 走看看