spark基础篇
-
什么是spark?
spark是一个用于大规模数据处理的分析引擎,是基于内存计算的大数据并行计算框架,它有快速、通用、可扩展的特点。
(并发的关键是你有处理多个任务的能力,不一定要同时。
并行的关键是你有同时处理多个任务的能力。 )
-
spark为什么比mapreduce快?
①spark基于内存
②迭代计算
③持久化
-
什么是迭代式计算
迭代计算就是前一次计算的输出作为下一次计算的输入。
-
什么是DAG?有向无循环
-
spark可以代替Hadoop吗?
不可以,spark可以代替mapreduce,但是不可以代替Hadoop
-
spark生态?
- spark core💖计算核心
- spark sql✨使用sql对历史数据做交互式查询(即席查询)
- spark streaming👖近实时(real time)计算
- spark graph📉图计算,事物之间的联系构成一张图
- spark mllib🎃机器学习
-
什么是即席查询?用户根据自己的需求自定义查询
-
spark特点?
①speed:🔪 (速度快)比mapreduce快100倍
②ease of use :💙 (易用)可以用java Scala Python sql 快速编写APP
③通用性:🥂 结合了SQL流式数据和复杂的分析
④应用范围广泛:🛰 可以应用在Hadoop mesos kubernetes standalone cloud,可以访问不同的数据源
-
常用的资源调度?分布式文件系统?
▶️ 常用的资源调度
🔽standalone⚖️standalone模式是spark自身资源的一个模式,类似于yarn。
standalone结构:
Master: 负责集群资源管理
Worker: 负责当前机器的资源管理
CPU&内存https://www.cnblogs.com/juncaoit/p/6373250.html🔽yarn💛yarn是Hadoop的资源调度管理器
yarn结构:
resourceManager 处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
nodemanager 单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令
applicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息🔽mesosⓂ️mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核
主要部件:
(1) Mesos-master:Mesos master,主要负责管理各个framework和slave,并将slave上的资源分配给各个framework(2) Mesos-slave:Mesos slave,负责管理本节点上的各个mesos-task,比如:为各个executor分配资源
(3) Framework:计算框架,如:Hadoop,Spark等,通过MesosSchedulerDiver接入Mesos
(4) Executor:执行器,安装到mesos-slave上,用于启动计算框架中的task。
▶️分布式文件系统:
GFS、HDFS、luster、ceph、gridFS、mogileFS、TFS、fastDF
-
spark sql和hive 的关系?
- spark on hive🖤hive作为数据源,使用spark计算
- hive on spark💔hive底层换成spark计算
-
什么是数据仓库?
数据仓库,英文名称Data Warehouse,简写为DW。数据仓库顾名思义,是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。它为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。
-
什么是ETL?
ETL的英文全称是 Extract-Transform-Load 的缩写,用来描述将数据从来源迁移到目标的几个过程:
1.**Extract,**数据抽取,也就是把数据从数据源读出来。
2.**Transform,**数据转换,把原始数据转换成期望的格式和维度。如果用在数据仓库的场景下,Transform也包含数据清洗,清洗掉噪音数据。
3.Load 数据加载,把处理后的数据加载到目标处,比如数据仓库。
主流的数据仓库:hive,oracle,db2,Teradata
ps:
- Teradata数据仓库配备性能最高、最可靠的大规模并行处理 (MPP) 平台,能够高速处理海量数据,其性能远远高于Hive。
- 它使得企业可以专注于业务,无需花费大量精力管理技术,因而可以更加快速地做出明智的决策,实现 ROI(投资回报率) 最大化。
- Hive是基于Hadoop的数据仓库工具,可以对存储在HDFS上的文件数据集进行查询和分析处理。Hive对外提供了类似于SQL语言的查询语言 HiveQL,在做查询时将HQL语句转换成MapReduce任务,在Hadoop层进行执行。
1.HDFS
- Hadoop的分布式文件系统,在这里作为数据仓库的存储层。图中的Data Node就是HDFS的众多工作节点。
2.MapReduce
- 一种针对海量数据的并行计算模型,可以简单理解为对多个数据分片的数据转换和合并。
机器学习的数学基础: