《Spark与Hadoop大数据分析》——2.2 Apache Spark概述
Hadoop和MR已有10年历史,已经被证明是高性能处理海量数据的最佳解决方案。然而,MR在迭代计算中性能不足,在这种情况下,多个MR作业之间的输出必须被写入 HDFS。在单个MR作业中,它的性能不足则是因为MR框架存在的一些缺点所致。
让我们来看看计算趋势的发展历史,以便了解计算的格局在过去20年中的变化。
这个趋势是当网络成本更低时(1990年代)对URI索引(Reference),当存储成本更低时(2000 年代)进行复制(Replicate),以及当内存成本更低时(2010 年代)进行再计算(Recompute),如图2-5 所示:
让我们来了解一下,为什么基于内存的计算很重要,以及它如何能产生显著的性能优势。
图2-6显示了从各种介质到CPU的数据传输速率。磁盘到CPU的传输速率为100 MB/s,SSD到CPU为600 MB/s,通过网络到CPU为1 MB到1 GB/s。然而,RAM到CPU的传输速度惊人地快,达到了10 GB/s。所以,理想的思路是把所有或部分数据缓存到内存里,以便实现更高的性能:
2.2.1 Spark 的发展历史Spark 始于 2009 年,起初是作为加州大学伯克利分校 RAD 实验室的一个研究项目,该实验室就是 AMPLab 的前身。该实验室的研究人员以前一直在使用 Hadoop MapReduce,并观察到 MR 对于迭代和交互式计算工作是低效率的。因此,从一开始,Spark 被设计为快速进行交互式查询和迭代的算法,采用了支持内存存储和高效故障恢复等一些思路。
在2011年,AMPLab开始在Spark上开发更高级的组件,如Shark和Spark Streaming。这些组件有时被称为Berkeley数据分析框架(Berkeley Data Analytics Stack,BDAS)。
Spark于2010年3月首次开源,并于2013年6月被转移到Apache软件基金会。
到2014年2月,它成为了Apache软件基金会的一个顶级项目。Spark已经成为大数据领域最大的开源社区之一。现在,有超过50个组织里的超过250位贡献者正在为Spark开发做出贡献。它的用户群增长迅猛,包括了从小型公司到财富500强公司。图2-7显示了 Apache Spark的发展历史:
2.2.2 Apache Spark 是什么让我们来了解一下Apache Spark 是什么,以及是什么使之成为大数据分析的利器:
Hadoop 提供了用于存储的 HDFS 和用于计算的 MR。但是,Spark 不提供任何特定的存储介质。Spark 主要是一个计算引擎,但你可以把数据存储在内存里或 Tachyon 上进行处理。
Spark 具有从存储在 HDFS 或 Hadoop API 支持的其他存储系统(包括你的本地文件系统、Amazon S3、Cassandra、Hive、HBase、Elasticsearch 等)中的任何文件创建分布式数据集的能力。
重要的是要注意 Spark 不是 Hadoop,也不需要 Hadoop 来运行它。它只是为那些实现了 Hadoop API 的存储系统提供支持而已。Spark 支持文本文件、序列文件、Avro、Parquet 和其他任何 Hadoop 输入格式。
2.2.4 MapReduce 的问题在性能和把业务问题转换为 MR 问题方面,MR 开发人员都面临着一些挑战。让我们来了解这些与 MR 相关的问题。以及如何在 Apache Spark 中解决这些问题:
MR速度缓慢是因为 MR 作业中的每个作业都把数据存储在磁盘上。对同一数据集的多个查询会分别读取数据,产生大量的磁盘读写,如图2-8 所示:
Spark 将 MR 的概念提升到更高水平,将中间数据存储在内存中,并根据需要多次重复使用。这样就在内存速度下提供了高性能,如图2-8 所示。
总而言之,MR 和 Spark 之间的区别如下:
2.2.5 Spark 的架构Spark 的架构组件有 Spark Core、Spark SQL、Dataset和DataFrame、Spark Streaming、Structured Streaming、MLlib、GraphX 以及 SparkR,如图2-9所示:
下面是 Spark 组件与 Hadoop Ecosystem 组件的比较:
为了从更高的层次理解 Spark 框架,让我们来看看 Spark 的这些核心组件以及它们的集成:
Spark 生态系统是一个统一的技术架构,它为你提供了在一个程序中结合 SQL、流和机器学习的强大功能。这种统一性的优点如下:
这种统一性的一个示例如图2-10 所示:
Hadoop和Spark的异同 Hadoop实质上是解决大数据大到无法在一台计算机上进行存储、无法在要求的时间内进行处理的问题,是一个分布式数据基础设施。 HDFS,它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,通过将块保存到多个副本上,提供高可靠的文件存储。 MapReduce,通过简单的Mapper和Reducer的抽象提供一个编程模型,可以在一个由几十台上百台的机器上并发地分布式处理大量数据集,而把并发、分布式和故障恢复等细节隐藏。
HADOOP MapReduce 处理 Spark 抽取的 Hive 数据【解决方案一】 今天咱先说问题,经过几天测试题的练习,我们有从某题库中找到了新题型,并且成功把我们干趴下,昨天今天就干了一件事,站起来。 java mapeduce 清洗 hive 中的数据 ,清晰之后将driver代码 进行截图提交。
Storm与Spark、Hadoop三种框架对比 Storm与Spark、Hadoop这三种框架,各有各的优点,每个框架都有自己的最佳应用场景。所以,在不同的应用场景下,应该选择不同的框架。
大数据Spark企业级实战与Hadoop实战&PDF和PPT 今天给大家分享的是《大数据Spark企业级实战》与《Hadoop实战》《大数据处理系统·Hadoop源代码情景分析》《50个大厂大数据算法教程》等销量排行前10名的大数据技术书籍(文末领取PDF版)。这些书籍具有以下几个优点:易读、实践性强,对解决工作中遇到的业务问题具有一定启发性。
相关文章
- Impala Apache Hadoop 安装方法
- Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava
- org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hive/warehouse/page_view. Name node is in safe mode
- 更快,可扩展性更强的 Apache Cassandra 4.0 正式发布
- [CDH] Cloudera's Distribution including Apache Hadoop
- Apache Eagle:eBay开源分布式实时Hadoop数据安全引擎
- apache工作模式总结及网站访问缓慢处理记录
- No enum constant org.apache.ibatis.type.JdbcType.Integer
- Apache Shiro 使用手册(一)Shiro架构介绍
- 积极开源!阿里巴巴向Apache捐赠消息中间件RocketMQ
- ubuntu下 apache phpmyadmin 的安装和使用
- linux使用apache发布静态html网页
- Hadoop 分析Apache日志记录 URLlog日志分析
- 恭喜!Apache Hudi社区新晋多位Committer
- Apache Hudi和Presto的前世今生
- 生态 | Apache Hudi集成Alluxio实践
- hive报错 FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
- 今日指数项目之Apache Avro介绍【五】
- Apache处理请求步骤及过程