头歌大数据作业八:流计算Flink

课外作业八:流计算Flink

  • 作业详情

内容

一、阿里云-云起实验室-《使用PolarDB-X与Flink搭建实时数据大屏》: 使用PolarDB-X与Flink搭建实时数据大屏 - 云起实验室-在线实验-上云实践-阿里云开发者社区-阿里云官方实验平台-阿里云 ,或者在自己的虚机上安装配置Flink-1.13.6伪分布式。

步骤3. 在PolarDB-X中准备订单表,给订单表orders中插入数据的SQL语句中姓名改为:自己姓名全拼1-3。 步骤4. 运行Flink,最后一步将PolarDB-X的订单表orders的数据同步到Flink的订单表orders中,截图运行结果。 步骤5. 启动压测脚本并实时 获取GMV,最后一步显示Flink的实时计算结果截图。

参考教材12.7.1,测试自带样例词频统计,截图命令及结果。

实验要求:

步骤3. 在PolarDB-X中准备订单表,给订单表orders中插入数据的SQL语句中姓名改为:自己姓名全拼1-3。步骤4. 运行Flink,最后一步将PolarDB-X的订单表orders的数据同步到Flink的订单表orders中,截图运行结果。 步骤5. 启动压测脚本并实时获取GMV,最后一步显示Flink的实时计算结果截图。 参考教材12.7.1,测试自带样例词频统计,截图命令及结果。 简要说明本实验让你体验到了Flink的什么计算功能?

二、包含Flink的实验资源

阿里云实验《基于EMR离线数据分析》基于EMR离线数据分析 - 云起实验室-在线实验-上云实践-阿里云开发者社区-阿里云官方实验平台-阿里云 ,步骤2.登录集群,启动Flink。 华为云实验《MRS基础入门实践》 https://lab.huaweicloud.com/testdetail_1970,创建集群,启动Flink。

三、简要回答“课堂考核”内容

  1. Flink客户端是什么? Flink客户端是一种用于与Flink集群进行通信的工具。它通常是一个命令行工具,可以使用它来提交Flink作业或管理Flink集群。Flink客户端可以在本地机器上运行,也可以在远程机器上运行。
  2. 怎么创建Flink表?实验中怎么导入数据的? 可以通过Flink SQL的CREATE TABLE语句来创建Flink表,例如:
    1. CREATE TABLE myTable(
    2. id VARCHAR,
    3. name VARCHAR,
    4. age INT
    5. ) WITH (
    6. 'connector.type' = 'filesystem',
    7. 'connector.path' = '/path/to/myTable',
    8. 'format.type' = 'csv'
    9. );

上面的语句创建了一个名为“myTable”的表,它有三个列:id、name和age。表的数据来源于指定的文件系统路径“/path/to/myTable”,格式为CSV格式。

在实验中导入数据可以使用类似以下的命令:

  1. flink run -c com.example.MyImporter my-importer.jar --input /path/to/data --output /path/to/myTable

上面的命令运行了一个名为“my-importer”的Java应用程序,该程序可以将指定路径下的数据导入到Flink表中。

  1. Flink表怎么查询数据?怎么实时统计数据? 可以使用Flink SQL的SELECT语句来查询Flink表中的数据,例如:
    1. SELECT COUNT(*) FROM myTable WHERE age > 18;

上面的语句查询了表“myTable”中年龄大于18岁的人数。

要进行实时统计,可以使用Flink流处理的API和算子,在数据流中定义和应用各种转换操作,例如:

  1. DataStream<Tuple2<String, Integer>> wordCounts = textStream
  2.   .flatMap((String sentence, Collector<Tuple2<String, Integer>> out) -> {
  3.     for (String word: sentence.split(" ")) {
  4.       out.collect(new Tuple2<String, Integer>(word, 1));
  5.     }
  6.   })
  7.   .keyBy(0)
  8.   .timeWindow(Time.seconds(5))
  9.   .sum(1);

上述代码将一个输入的数据流转换为一个元组流,其中每个元组表示一个单词和它出现的次数。此后,每个单词都将被分组并按5秒的时间窗口进行聚合。最后,通过sum操作进行聚合计算。

  1. 压测脚本是干什么的? 压测脚本是一种用于模拟大量用户访问和查询的工具。它可以通过发送大量的请求并在短时间内对系统进行压力测试,以测试其性能和可靠性。压测脚本可以使用各种编程语言和框架来编写,例如Python、Java和JMeter等。
  2. Flink 怎么做批处理计算的? Flink支持批处理计算,可以使用DataSet API来进行批处理计算。DataSet API类似于DataStream API,但可以处理有限数据集而不是无限流数据。

四、12.9 习题

  1. 传统的数据处理架构主要存在以下局限性:
  • 数据处理能力有限。传统的数据处理架构由于硬件资源和算法模型的局限,无法承受海量数据的处理需求。
  • 数据处理效率低下。传统的数据处理架构由于需要对静态数据进行批量处理,无法进行实时处理,处理效率较低。
  • 数据处理复杂度高。传统的数据处理架构由于需要对不同类型和格式的数据进行处理和转换,编写和维护处理流程较为复杂。
  1. 大数据Lambda架构的优点:
  • 可以同时满足批处理和流处理需求,实现数据的实时和离线处理。
  • 拥有处理数据跨度长、处理方式多样、处理能力强的特点,适用于各种数据处理场景。
  • 可以通过多个处理层级,实现数据的高效处理和存储,提高数据的处理效率和质量。

局限性:

  • 搭建和维护成本较高,需要同时考虑处理层级的架构和技术选型。
  • 在一些场景下,可能存在延迟问题,需要根据实际需求进行优化。
  1. 流处理架构的优点:
  • 可以实现数据实时处理,实时获取数据处理结果。
  • 处理效率高,能够承受海量数据的处理需求。
  • 处理复杂度低,通过简单的处理流程即可实现数据的实时处理和分析。
  1. Flink在企业中的应用场景:
  • 实时风险管理和欺诈检测。
  • 实时监控和报警系统。
  • 实时日志分析和处理。
  • 实时广告投放和分析。
  • 实时推荐和个性化服务。
  1. Flink核心组件栈包含以下层次:
  • 基础组件层:包括数据源、数据接收器、数据转换器等组件。
  • 运行时环境层:包括执行引擎、资源管理器、容错机制等组件。
  • 用户API层:包括DataStream API、Table API和SQL API等组件。
  1. JobManager负责整个任务的协调和控制,包括任务调度、状态管理等;TaskManager负责任务的具体执行,包括数据的读取、计算和输出等。
  2. Flink编程模式的层次结构包括以下三个层次:
  • 面向流的数据处理:通过基本的数据转换操作对数据流进行分析和处理。
  • 有状态的流处理:通过对不同时间点的数据进行状态管理,实现更复杂的数据处理操作。
  • 事件驱动型应用:通过对流数据处理结果进行事件驱动,实现更高级的应用场景。
  1. Spark、Flink和Storm都是流行的分布式流处理系统,但它们有不同的实现方式和特点。

Spark: Spark最初是为批处理开发的,但现在已经支持流处理,可以在内存中处理大型数据集和流数据,它支持的编程语言包括Java、Python和Scala等。Spark使用DAG(有向无环图)来处理数据流,其强大的数据缓存和内存处理功能使其在处理大数据时非常高效。Spark还集成了机器学习、图形处理和SQL处理等各种功能,使其成为一个非常全面的解决方案。

Flink: Flink是一种基于内存的流处理框架,被认为是Storm的替代方案,它支持批处理和流处理,具有比Storm更好的容错性和更好的性能,支持Java和Scala编程语言。Flink使用了基于事件时间的处理方式,并且支持窗口操作和状态管理功能。Flink是一个非常灵活的系统,可以在不同的场景下进行高度定制。

Storm: Storm是一种分布式流处理系统,被广泛应用于实时数据流处理。与Spark和Flink不同,Storm没有内存缓存功能,它需要通过缓存数据来处理实时数据流,因此在处理大型数据时可能会受到限制。Storm支持Java、Scala和Clojure编程语言,具有良好的性能和可靠性,并且可以提供低延迟和高吞吐量的处理。

综上所述,Spark适合处理大规模数据集和流数据,可以提供全面的功能,Flink是一个灵活的框架,可以在不同场景下进行高度定制,Storm则适合于实时数据流处理。选择适合自己需求的处理框架非常重要,因为不同的框架适用于不同的场景和数据处理方式。

猜你喜欢

转载自blog.csdn.net/qq_50530107/article/details/131261119