** **
1.Spark是什么?
Spark的特点:Simple(易用性)、Fast(速度快)、Unified(通用性)、Scalable(兼容性)
Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎
2.Spark与Hadoop Spark与MapReduce对比
Spark与Hadoop 优点
(1).减少应用程序上传成本 (2). 增强任务并行度 (3).避免重新计算 (4).减少磁盘I/O
Spark与MapReduce对比
实用性方面:MapReduce不容易编程、不实用,而Spark有良好的API接口,方便对接编程,很实用;
特点方面:MapReduce初始实现分布式计算,而Spark实现分布式内存计算;
迭代运算方面:MapReduce几乎不能实现迭代运算,每次MR都要进行数据的重新读入和加载,而Spark可以将迭代数据集直接加载到内存处理,实现内存环境下的直接迭代运算;
容错性方面:MapReduce由HDFS分布式存储框架实现,而Spark内存数据集直接实现;
执行模型方面:MapReduce只能进行批处理,而Spark批处理、迭代处理、流处理均可;
支持的编程语言类型方面:MapReduce主要是Java,而Spark Java、Scala、Python、R等。
3. 什么是结构化数据? 什么是非结构化数据?
什么是结构化数据?
结构化数据是指按照预定义的模型结构化或以预定义的方式组织的数据。根据谷歌表示,“结构化数据是一种标准化的格式,用于提供关于页面的信息并对页面内容进行分类。”结构化查询语言(SQL)用于管理关系数据库中的结构化数据。这种语言最初被称为SEQUEL,是由IBM的Donald D. Chamberlin和Raymond F. Boyce在20世纪70年代早期开发的。
用户只需对主题有基本的了解,就可以轻松地访问和解释结构化数据。例如,结构化数据的特定架构简化了机器学习(ML)算法的操作和查询。例如,在搜索引擎优化(SEO)中,结构化数据是帮助搜索引擎理解如何解释和显示内容的标记。
结构化数据通常存储在关系数据库管理系统(RDBMS)中。具有结构化数据的关系数据库的常见应用程序包括ATM活动、航空公司预订系统和销售事务。此外,保护结构化数据的方法很容易获得和理解。数据库提供了访问控制工具和技术来提高结构化数据的安全性。
什么是非结构化数据?
非结构化数据指的是既没有按照预定义的数据模型进行结构化,也没有按照预定义的方式组织的数据。这种类型的数据可以是人生成的,也可以是机器生成的,并且具有内部结构。非结构化数据可能包括文档、书籍、元数据、健康记录、图像、音频、视频、文件、电子邮件消息、网页等。
有几种方法可以存放非结构化数据,比如数据湖、NOSQL数据库和数据仓库。
21世纪后期,大数据的出现使得人们对非结构化数据在根本原因分析和预测分析等领域的应用产生了浓厚的兴趣。《计算机世界》(Computerworld) 2011年的一份有先见之明的报告显示,到2021年,组织中90%以上的数据可能是非结构化的。事实上,IDC和希捷预测,到2025年,全球数据空间将增长到175.8 zettabytes,而2015年的增长率约为26%,这些数据中的大部分是非结构化数据。
根据2013年IEEE的一份报告,有几种方法可以存放非结构化数据,比如数据湖、NoSQL数据库(非关系型)和数据仓库。随着这一领域的增长,已经开发了许多工具和平台,特别是用于非结构化数据的使用、管理、存储和保护,例如Amazon DynamoDB、MonkeyLearn和MongoDB Atlas。
4.Spark 架构作业执行原理
了解Spark架构
客户端
用户提交作业的客户端。
Driver
运行Application的main()函数并创建SparkContext。
SparkContext
整个应用的上下文,控制应用的生命周期。
Cluster Manager
资源管理器,即在集群上获取资源的外部服务,目前主要有Standalone(Spark原生的资源管理器)和YARN(Hadoop集群的资源管理器)。
SparkWorker
集群中任何可以运行应用程序的节点,运行一个或多个Executor进程。
Executor
执行器,在Spark Worker上执行任务的组件、用于启动线程池运行任务。每个Application拥有独立的一组Executor。
Task
被发送到某个Executor的具体任务。
Standalone****模式运行流程
yarn-cluster运行流程
5.了解Spark核心数据集****RDD
RDD(Resilient Distributed Datasets弹性分布式数据集),可以简单的把RDD理解成一个提供了许多操作接口的数据集合,和一般数据集不同的是,其实际数据分布存储于一批机器中(内存或磁盘中)。
每个 RDD 都有如下几个成员:
分区的集合;
用来基于分区进行计算的函数(算子);
依赖(与其他 RDD)的集合;
对于键-值型的 RDD 的散列分区器(可选);
对于用来计算出每个分区的地址集合(可选,如 HDFS 上的块存储的地址)
版权归原作者 2401_83189977 所有, 如有侵权,请联系我们删除。