SCAU期末笔记 - 实时计算框架课后习题

这是一个毫无复习章法的笔记,反正还有10天,瞎吉尔看吧,这19页大提纲给我干没脾气了

第1章 大数据技术概述

1.请阐述大数据的基本处理流程。

(课本P2第二段)数据采集、存储和管理、处理与分析。结果呈现等环节

2.请阐述大数据的计算模式及对应代表性产品。

(课本P2表1-2)

大数据计算模式 代表性产品
批处理计算 MapReduce、Spark等
流计算 Flink、Storm、Spark Streaming、S4等
图计算 Pregel、GraphX、Giraph等
查询分析计算 Dremel、Hive、Cassandra等

3.请列举Hadoop生态系统的各个组件及其功能。

(课本P4图1-1)

4.分布式文件系统HDFS的名称节点和数据节点的功能分别是什么?

(课本P4第二段)名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问;数据节点负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除及复制等操作。

5.请阐述MapReduce的基本设计思想。

(课本P5第四段)计算向数据靠拢

6.YARN的主要功能是什么?使用YARN可以带来哪些好处?

(课本P5第五段)YARN是负责集群资源调度管理的框架;可以有效提高集群的利用率,避免数据集跨集群移动,降低企业运维成本。

7.请阐述Hadoop生态系统中HBase与其他部分的关系。

(课本P6图1-5)

8.数据仓库Hive的主要功能是什么?

(课本P5第三段)可对存储在Hadoop文件中的数据集进行数据整理、特殊查询和分析。

9.Hadoop主要有哪些缺陷?相比之下,Spark具有哪些优势?

(课本P6 1.2.2.2)

表达能力有限、磁盘I/O开销大、延迟该;更灵活、迭代运算效率更高、基于DAG的任务调度执行机制

10.如何实现Spark与Hadoop的统一部署?

(课本P9图1-8)

11.相对Spark而言,Flink在实现机制上有什么不同?

Flink全部当成流处理,Spark全部当成批处理

12.Beam的设计目标是什么?具有哪些优点?

(课本P11最后一段)目标是为开发者提供一个易于使用的、强大的数据并行处理模型,能够支持流处理和批处理,并兼容多个运行引擎;开源、统一。

第2章 Flink的设计与运行原理

1.请阐述传统数据处理架构的局限性。

(课本P16第一段)一旦发生问题影响严重,出现异常问题时难以保证系统yuxn

2.请阐述大数据Lambda架构的优点和局限性。

(课本P16第四段)系统构建工作更简单,一定程度上解决了不同计算类型的问题;平台复杂度高、运维成本高。

3.请阐述与传统数据处理架构和大数据Lambda架构相比,流处理架构具有什么优点。

(课本P17第三段)避免了传统数据处理架构中存在的"数据库不堪重负"的问题和大数据Lambda架构中存在的"多个框架难管理"的问题。

4.请举例说明Flink在企业中的应用场景。

  • (课本P19 2.3.1.1)事件驱动型应用如反欺诈、异常检测、给予规则的报警、业务流程监控、Web应用。
  • (课本P20 2.3.2.1)数据分析应用如电信网络质量监控、移动应用中的产品更新及试验评估分析、消费者技术中的实时数据即席分析。
  • (课本P21 2.3.3.1)数据流水线应用如电子商务中的实时查询索引构建和持续ETL。

5.请阐述Flink核心组件栈包含哪些层以及每层具体包含哪些内容。

(课本P23图2-10)

6.请阐述Flink的JobManager和TaskManager具体有哪些功能。

(课本P24第一三段)JobManager负责整个Flink集群任务的调度以及资源的管理;TaskManager相当于整个集群的从节点,负责具体的任务执行和对应任务在每个节点上的资源申请与管理。

7.请阐述Flink编程模型的层次结构。

(课本P25图2-12)

8.请对Spark、Flink和Storm进行对比分析。

对比维度 Storm Flink Spark
核心定位 原生流处理(仅无界流) 原生流处理(批流统一) 原生批处理(微批流)
处理模型 单事件驱动 事件驱动+Pipeline 微批模拟
延迟级别 亚毫秒~毫秒级 毫秒级 秒级(依赖微批)
吞吐量 高(兼顾延迟) 高(批处理优化)
时间语义 仅处理时间(基础版) 处理/事件/摄入时间+Watermark 1.6+支持事件时间(弱)
状态管理 无原生(需第三方) 原生Keyed/Operator State 无原生(依赖缓存/外部)
容错机制 Acker机制 分布式快照(异步增量) Lineage+全量Checkpoint
容错语义 At-Least-Once 原生Exactly-Once 默认At-Least-Once
适用场景 超低延迟实时场景 低延迟+有状态流处理 批处理+近实时流处理

9.请阐述数据一致性的3种模式。

(课本P28 2.10.2)最多一次、至少一次、精确一次。

10.请阐述Flink的异步屏障快照机制。

(课本P28第八段)以低成本备份DAG或DCG计算作业的状态,这使得计算作业可以频繁进行快照并且不会对性能产生明显影响。

第3章 大数据实验环境搭建

1.请阐述Linux系统有哪些发行版本。

Debian、Ubuntu等等等等

2.请阐述Hadoop 1.0和Hadoop 2.0的主要区别是什么。

(课本P38第四段)Hadoop 2.0完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统。

3.请阐述为什么要在Linux系统中安装SSH。

(课本P39最后一段)省得输密码比较方便。

4.请阐述Hadoop的安装模式主要包含哪几种。

(课本P41 3.2.3)单机模式、伪分布式模式、分布式模式。

5.请阐述Hadoop伪分布式模式和分布式模式的主要区别是什么。

(课本P41 3.2.3)HDFS的名称节点和数据节点是否位于同一台机器上。

6.请阐述如何解决MySQL中存在的中文乱码问题。

(课本P57 3.3.4)修改配置文件/etc/mysql/mysql.conf.d/mysql.cnf[mysqld]下面添加一行character_set_server=utf8

第4章 Flink环境搭建和使用方法

1.请阐述Flink的4种部署模式。

(课本P63章首语)Local模式、Standalone模式、YARN模式、Kubernetes模式。

2.请阐述Flink和Hadoop的关系。

(课本P63章首语)通常Hadoop中的HDFS和HBase等组件负责数据存储和管理,由Flink负责计算。

3.请阐述使用IDEA对程序进行编译和打包的基本方法。

(课本P69)在项目开发界面的右侧单击Maven按钮,在弹出的界面中双击package。打包成功以后,可以在项目开发界面左侧目录树的target子目录下找到两个jar文件。

4.请阐述如何安装Java环境。

(课本P75 4.5.2)每个节点都按照第三章说的操作安装一遍。

5.请阐述如何设置SSH无密码登录。

(课本P75 4.5.3)同上。

6.请阐述Flink集群环境搭建的基本过程。

(课本P74 4.5)配置集群基础、在集群中安装Java环境、设置SSH无密码登录、安装和配置Flink、启动和关闭Flink集群。

7.请阐述Flink包含哪些运行模式。

(课本P79 4.6)会话模式、单作业模式、应用模式。

第5章 DataStream API

1.请阐述Flink流处理程序的基本运行流程包括哪5个步骤。

(课本P90 5.1)创建执行环境、创建数据源、指定对接收的数据进行转换操作的逻辑、指定数据计算的输出结果方式、程序触发执行。

2.请蚴阐述Flink的窗口是如何划分的。

(课本P126 5.2)基于时间的窗口根据起始时间戳和终止时间戳来决定窗口的大小;基于数量的窗口根据固定的数量来决定窗口的大小。

3.请阐述Flink的3种时间及其具体含义。

(课本P127-128 5.3)事件时间是每个独立事件在设备上产生的时间;接入时间是数据进入Flink系统的时间;处理时间是数据在操作算子计算过程中获取到的所在主机时间。

4.请阐述分组数据流的窗口计算程序结构。

(课本P128 5.4.1)先使用KeyBy()函数把无限数据流拆分成逻辑分组的数据流,然后调用window()函数进行接口计算。

5.请阐述Flink提供了哪些常用的预定义窗口分配器。

(课本P129 5.4.2)滚动窗口、滑动窗口、会话窗口、全局窗口。

6.请阐述Flink提供了哪3种类型的窗口计算函数。

(课本P132 5.4.3)ReduceFunction、AggregateFunction、ProcessWindowFunction。

7.请阐述水位线的基本原理。

(课本P146 5.5.1)水位线是流处理中基于事件时间的逻辑标记,定义数据到达时间边界,平衡无序 / 延迟数据处理的完整性与实时性。

8.请阐述水位线的设置方法。

(课本P149 5.5.2)构建一个DataStream后,可以使用assignTimestampsAndWatermarks()方法来分配时间戳和水位线,调用该方法时,需要传入一个WatermarkStrategy对象,语法如下:

java 复制代码
dataStream.assignTimestampsAndWatermarks(WatermarkStategy<T>)

9.请阐述键控状态包括哪几种状态。

(课本P174 5.8.3)括值状态、列表状态、映射状态、归约状态、聚合状态。

10.请阐述处理函数的功能和作用。

(课本P183-184 5.9.1)ProcessFunction可以被认为是一种提供了对KeyedState和定时器访问的FlatMapFunction。每当输入流接收到一个事件时,就会调用此函数来处理。

第6章 Table API&SQL

1.请阐述基于TableAPI和SQL的数据处理应用程序主要包括哪几个步骤。

步骤 说明
1 初始化TableEnvironment,配置运行环境
2 注册数据源,接入待处理的数据
3 编写TableAPI/SQL语句实现数据处理逻辑
4 执行查询,生成处理后的结果表
5 将结果表写入目标存储(如数据库、文件)

2.请阐述在批处理和流处理两种情形下TableEnvironment的创建方法。

批处理基于BatchExecutionEnvironment创建,或通过TableEnvironment.create(BatchTableEnvironmentSettings)构建;流处理基于StreamExecutionEnvironment创建,或通过TableEnvironment.create(StreamTableEnvironmentSettings)构建

3.请阐述在Flink中注册表有哪几种方式。

一是通过connect() API连接数据源,配置格式和模式后注册表;二是调用createTemporaryTable()创建临时表;三是执行CREATE TABLE格式的DDL语句直接注册;四是关联Hive等外部Catalog注册Catalog表。

4.请阐述Calcite执行SQL查询的主要步骤有哪些。

1.解析SQL生成抽象语法树;2.语义验证确保语法和逻辑合法;3.优化(逻辑+物理)生成最优执行计划;4.执行优化后的计划;5.返回查询结果。

5.TableAPI中的事件时间也是从输入事件中提取而来的,请阐述定义事件时间的方法有哪几种。

一是定义 Schema 时为字段指定 rowtime 属性,搭配水印策略;二是创建表的 DDL 中用 WATERMARK FOR 子句,从数据源字段提取事件时间并定义水印。

6.请阐述Table API有哪些不同类型的操作。

基础查询类(选择、过滤、投影等);聚合类(分组聚合、窗口聚合);连接类(内/外连接、等值连接等);集合类(并、交、差集);窗口类(时间/计数窗口);转换类(列重命名、类型转换)。

7.请阐述SQL有哪些不同类型的操作。

查询类(SELECT,含聚合、连接、窗口函数等);定义类(CREATE/ALTER/DROP,管理表/视图等);操作类(INSERT/UPDATE/DELETE,增删改数据);控制类(COMMIT/ROLLBACK,管控事务)。

8.根据处理的数据类型以及计算方式的不同,请阐述自定义函数分为哪几种类型。

(课本P253 6.6)标量函数、表值函数、聚合函数、表聚合函数。

相关推荐
瑶光守护者5 小时前
【学习笔记】5G RedCap:智能回落5G NR驻留的接入策略
笔记·学习·5g
你想知道什么?5 小时前
Python基础篇(上) 学习笔记
笔记·python·学习
xian_wwq6 小时前
【学习笔记】可信数据空间的工程实现
笔记·学习
浩瀚地学6 小时前
【Arcpy】入门学习笔记(五)-矢量数据
经验分享·笔记·python·arcgis·arcpy
Li.CQ6 小时前
SQL学习笔记
笔记·sql·学习
云霄星乖乖的果冻7 小时前
01引言——李沐《动手学深度学习》个人笔记
人工智能·笔记·深度学习
AI视觉网奇7 小时前
移动端数字人 Ultralight-Digital-Human 算法笔记
笔记·计算机视觉
雍凉明月夜7 小时前
c++ 精学笔记记录Ⅱ
开发语言·c++·笔记·vscode
路弥行至7 小时前
FreeRTOS任务管理详解中: FreeRTOS任务创建与删除实战教程(动态方法)
c语言·开发语言·笔记·stm32·操作系统·freertos·入门教程
北岛寒沫8 小时前
北京大学国家发展研究院 经济学辅修 经济学原理课程笔记(第四课 税收和补贴)
笔记