spark 运维实战 简介

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介:  Spark 大数据计算框架、架构、计算模型和数据管理策略及 Spark 在工业界的应用。围绕 Spark 的 BDAS 项目及其子项目进行了简要介绍。目前,Spark 生态系统已经发展成为一个包含多个子项目的集合,其中包含 SparkSQL、Spark Streaming、GraphX、 MLlib 等子项目,本章只进行简要介绍,后续章节再详细阐述。


 Spark 大数据计算框架、架构、计算模型和数据管理策略及 Spark 在工业界的应用。围绕 Spark  BDAS 项目及其子项目进行了简要介绍。目前,Spark 生态系统已经发展成为一个包含多个子项目的集合,其中包含 SparkSQLSpark StreamingGraphX MLlib 等子项目,本章只进行简要介绍,后续章节再详细阐述。

 

 

1.1 Spark 是什么

 

Spark 是基于内存计算的大数据并行计算框架。Spark 基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将 Spark 部署在大量廉价硬件之上,形成集群。

 

Spark  2009 年诞生于加州大学伯克利分校 AMPLab。目前,已经成为 Apache 软件基金会旗下的顶级开源项目。下面是 Spark 的发展历程。

 

1Spark 的历史与发展

 

2009 年:Spark 诞生于 AMPLab

 

2010 年:开源。

 

2013  6 月:Apache 孵化器项目。

 

2014  2 月:Apache 顶级项目。

     2014  2 月:大数据公司 Cloudera 宣称加大 Spark 框架的投入来取代 MapReduce 

    2014  4 月:大数据公司 MapR 投入 Spark 阵营,Apache Mahout 放弃 MapReduce

将使用 Spark 作为计算引擎。

 

2014  5 月:Pivotal Hadoop 集成 Spark 全栈。

 

2014  5  30 日:Spark 1.0.0 发布。

 

2014  6 月:Spark 2014 峰会在旧金山召开。

 

2014  7 月:Hive on Spark 项目启动。

 

目前 AMPLab  Databricks 负责整个项目的开发维护,很多公司,如 Yahoo!Intel 

 

参与到 Spark 的开发中,同时很多开源爱好者积极参与 Spark 的更新与维护。

 

AMPLab 开发以 Spark 为核心的 BDAS 时提出的目标是:one stack to rule them all,也

 

就是说在一套软件栈内完成各种大数据分析任务。相对于 MapReduce 上的批量计算、迭代型计算以及基于 Hive  SQL 查询,Spark 可以带来上百倍的性能提升。目前 Spark 的生态系统日趋完善,Spark SQL 的发布、Hive on Spark 项目的启动以及大量大数据公司对 Spark 全栈的支持,让 Spark 的数据分析范式更加丰富。


2Spark 之于 Hadoop

 

更准确地说,Spark 是一个计算框架,而 Hadoop 中包含计算框架 MapReduce 和分布式文件系统 HDFSHadoop 更广泛地说还包括在其生态系统上的其他系统,如 Hbase

 

Hive 等。

 

Spark  MapReduce 的替代方案,而且兼容 HDFSHive 等分布式存储层,可融入

 

Hadoop 的生态系统,以弥补缺失 MapReduce 的不足。 Spark 相比 Hadoop MapReduce 的优势 如下。

spacer.gif 

1)中间结果输出基于 MapReduce 的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。出于

  任务管道承接的考虑,当一些查询翻译到 MapReduce 任务时,往往会产生多个 Stage,而这些串联的 Stage 又依赖于底层文件系统(如 HDFS)来存储每一个 Stage 的输出结果。

 

Spark 将执行模型抽象为通用的有向无环图执行计划(DAG),这可以将多 Stage 的任务串联或者并行执行,而无须将 Stage 中间结果输出到 HDFS 中。类似的引擎包括 Dryad

 

Tez

 

2)数据格式和内存布局由于 MapReduce Schema on Read 处理方式会引起较大的处理开销。Spark 抽象出分布式内存存储结构弹性分布式数据集 RDD,进行数据的存储。RDD 能支持粗粒度写操作,但对于读取操作,RDD 可以精确到每条记录,这使得 RDD 可以用来作为分布式索引。

Spark的特性是能够控制数据在不同节点上的分区,用户可以自定义分区策略,如 Hash 分区等。 Shark  Spark SQL  Spark 的基础之上实现了列存储和列存储压缩。

 

3)执行策略 MapReduce 在数据 Shuffle 之前花费了大量的时间来排序,Spark 则可减轻上述问题带

 

来的开销。因为 Spark 任务在 Shuffle 中不是所有情景都需要排序,所以支持基于 Hash 的分布式聚合,调度中采用更为通用的任务执行计划图(DAG),每一轮次的输出结果在内存缓存。

 

4)任务调度的开销传统的 MapReduce 系统,如 Hadoop,是为了运行长达数小时的批量作业而设计的,在

 

某些极端情况下,提交一个任务的延迟非常高。

 

Spark 采用了事件驱动的类库 AKKA 来启动任务,通过线程池复用线程来避免进程或线程启动和切换开销。

3Spark 能带来什么

 

Spark 的一站式解决方案有很多的优势,具体如下。(1)打造全栈多计算范式的高效数据流水线

 

Spark 支持复杂查询。在简单的 map  reduce 操作之外,Spark 还支持 SQL 询、流式计算、机器学习和图算法。同时,用户可以在同一个工作流中无缝搭配这些计算范式。

 

2)轻量级快速处理 Spark 1.0 核心代码只有 4 万行。这是由于 Scala 语言的简洁和丰富的表达力,以及

 

Spark 充分利用和集成 Hadoop 等其他第三方组件,同时着眼于大数据处理,数据处理速度是至关重要的,Spark 通过将中间结果缓存在内存减少磁盘 I/O 来达到性能的提升。

 

3)易于使用,Spark 支持多语言 Spark 支持通过 ScalaJava  Python 编写程序,这允许开发者在自己熟悉的语言环境

 

下进行工作。它自带了 80 多个算子,同时允许在 Shell 中进行交互式计算。用户可以利用 Spark 像书写单机程序一样书写分布式程序,轻松利用 Spark 搭建大数据内存计算平台并充分利用内存计算,实现海量数据的实时处理。

 

4)与 HDFS 等存储层兼容 Spark 可以独立运行,除了可以运行在当下的 YARN 等集群管理系统之外,它还可以读取已有的任何 Hadoop 数据。这是个非常大的优势,它可以运行在任何 Hadoop 数据源上,0 HiveHBaseHDFS 等。这个特性让用户可以轻易迁移已有的持久化层数据。(5)社区活跃度高

Spark 起源于 2009 年,当下已有超过 50 个机构、260 个工程师贡献过代码。开源系统的发展不应只看一时之快,更重要的是支持一个活跃的社区和强大的生态系统。

 

同时我们也应该看到 Spark 并不是完美的,RDD 模型适合的是粗粒度的全局数据并行计算。不适合细粒度的、需要异步更新的计算。对于一些计算需求,如果要针对特定工作负载达到最优性能,还是需要使用一些其他的大数据系统。例如,图计算领域的 GraphLab 在特定计算负载性能上优于 GraphX,流计算中的 Storm 在实时性要求很高的场合要比

 

Spark Streaming 更胜一筹。

 

随着 Spark 发展势头日趋迅猛,它已被广泛应用于 Yahoo!Twitter、阿里巴巴、百度、网易、英特尔等各大公司的生产环境中。







相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible实战应用
【9月更文挑战第33天】本文将带你深入理解Ansible,一个强大的自动化运维工具。我们将从基础概念开始,逐步探索其配置管理、任务调度等功能,并通过实际案例演示其在自动化部署和批量操作中的应用。文章旨在通过浅显易懂的语言和实例,为读者揭开Ansible的神秘面纱,展示其在简化运维工作中的强大能力。
166 64
|
24天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
133 3
|
2月前
|
运维 安全 应用服务中间件
自动化运维的利剑:Ansible实战应用
【9月更文挑战第24天】在现代IT基础设施的快速迭代与扩展中,自动化运维成为提升效率、保障稳定性的关键。本文将深入探讨Ansible这一流行的自动化工具,通过实际案例分析其如何简化日常运维任务,优化工作流程,并提高系统的可靠性和安全性。我们将从Ansible的基础概念入手,逐步深入到高级应用技巧,旨在为读者提供一套完整的Ansible应用解决方案。
|
14天前
|
运维 Ubuntu 应用服务中间件
自动化运维工具Ansible的实战应用
【10月更文挑战第36天】在现代IT基础设施管理中,自动化运维已成为提升效率、减少人为错误的关键手段。本文通过介绍Ansible这一流行的自动化工具,旨在揭示其在简化日常运维任务中的实际应用价值。文章将围绕Ansible的核心概念、安装配置以及具体使用案例展开,帮助读者构建起自动化运维的初步认识,并激发对更深入内容的学习兴趣。
36 4
|
16天前
|
消息中间件 运维 UED
消息队列运维实战:攻克消息丢失、重复与积压难题
消息队列(MQ)作为分布式系统中的核心组件,承担着解耦、异步处理和流量削峰等功能。然而,在实际应用中,消息丢失、重复和积压等问题时有发生,严重影响系统的稳定性和数据的一致性。本文将深入探讨这些问题的成因及其解决方案,帮助您在运维过程中有效应对这些挑战。
23 1
|
1月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
1月前
|
运维 关系型数据库 MySQL
自动化运维工具Ansible的实战应用
【10月更文挑战第9天】在现代IT运维领域,效率和可靠性是衡量一个系统是否健康的重要指标。自动化运维工具Ansible因其简洁、易用的特性,成为了众多企业和开发者的首选。本文将通过实际案例,展示如何利用Ansible进行日常的运维任务,包括配置管理、软件部署以及批量操作等,帮助读者深入理解Ansible的应用场景及其带来的效益。
|
23天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
117 0
|
2月前
|
运维 监控 应用服务中间件
自动化运维的新篇章:Ansible Playbooks入门与实战
【9月更文挑战第1天】在追求效率和稳定性的今天,自动化运维已经成为IT行业的必修课。本文将带你走进自动化工具Ansible的世界,通过实战案例深入理解Ansible Playbooks的编写和应用。文章不仅介绍基础概念,更通过具体代码示例,展示如何利用Ansible简化日常运维任务,提升工作效率。无论你是运维新手还是希望深化自动化技能的资深人士,本指南都将为你开启一段新的学习旅程。
|
3月前
|
运维 Linux Apache
自动化运维工具:Ansible入门与实战
【8月更文挑战第31天】 本文将引导读者理解自动化运维的重要性,并通过介绍Ansible这一强大的自动化工具,展示如何简化和加速IT管理任务。文章不仅讲解了Ansible的基础概念,还通过实例展示了如何配置和使用Ansible进行日常的运维工作,包括部署、配置管理和任务自动化等。无论你是运维新手还是希望提高现有工作流程的效率,这篇文章都会为你提供实用的知识和技能。
下一篇
无影云桌面