spark 运维实战 简介

简介:  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的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
5月前
|
人工智能 运维 监控
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
165 0
|
7月前
|
人工智能 运维 安全
基于合合信息开源智能终端工具—Chaterm的实战指南【当运维遇上AI,一场效率革命正在发生】
在云计算和多平台运维日益复杂的今天,传统命令行工具正面临前所未有的挑战。工程师不仅要记忆成百上千条操作命令,还需在不同平台之间切换终端、脚本、权限和语法,操作效率与安全性常常难以兼顾。尤其在多云环境、远程办公、跨部门协作频繁的背景下,这些“低效、碎片化、易出错”的传统运维方式,已经严重阻碍了 IT 团队的创新能力和响应速度。 而就在这时,一款由合合信息推出的新型智能终端工具——Chaterm,正在悄然颠覆这一现状。它不仅是一款跨平台终端工具,更是业内率先引入 AI Agent 能力 的“会思考”的云资源管理助手。
|
6月前
|
缓存 运维 安全
7天精通电商API:从接入到运维的完整实战手册
本文全面解析电商API接口技术,从基础概念到高阶应用,涵盖商品、订单、支付与营销等核心模块,并深入探讨性能优化、安全防护与智能化发展方向,助你掌握驱动数字商业的核心技术。
|
3月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
9月前
|
消息中间件 存储 NoSQL
RocketMQ实战—6.生产优化及运维方案
本文围绕RocketMQ集群的使用与优化,详细探讨了六个关键问题。首先,介绍了如何通过ACL配置实现RocketMQ集群的权限控制,防止不同团队间误用Topic。其次,讲解了消息轨迹功能的开启与追踪流程,帮助定位和排查问题。接着,分析了百万消息积压的处理方法,包括直接丢弃、扩容消费者或通过新Topic间接扩容等策略。此外,提出了针对RocketMQ集群崩溃的金融级高可用方案,确保消息不丢失。同时,讨论了为RocketMQ增加限流功能的重要性及实现方式,以提升系统稳定性。最后,分享了从Kafka迁移到RocketMQ的双写双读方案,确保数据一致性与平稳过渡。
|
10月前
|
运维 安全 网络安全
【运维实战分享】轻松搞定 SSL 证书管理,告别证书繁琐操作
Spug证书平台的最大亮点之一就是其极为简化的证书申请流程,无论是新手还是经验丰富的运维专家,都可以在几分钟内轻松完成证书的申请,通过微信扫码直接登录申请,无需复杂注册,整个过程既方便又快捷。
245 17
|
10月前
|
Prometheus 运维 监控
运维实战来了!如何构建适用于YashanDB的Prometheus Exporter
今天分享的是构建YashanDB Exporter的核心设计理念和关键方法,希望也能为你的运维实战加分!
|
运维 监控 应用服务中间件
自动化运维的利器:Ansible实战应用
【10月更文挑战第41天】在现代IT运维领域,自动化已成为提高效率、减少错误的关键。Ansible作为一种简单而强大的自动化工具,正被越来越多的企业采纳。本文将通过实际案例,展示如何使用Ansible简化日常运维任务,包括配置管理和批量部署等,旨在为读者提供一种清晰、易懂的自动化解决方案。
224 1

热门文章

最新文章