跳至主要內容
头歌spark实训

Spark环境搭建和使用

词频统计

任务描述

读取文件 /data/bigfiles/example.txt 中的内容,完成 WordCount 词频统计,其中单词之间的间隔符为:一个空格符。最终输出结果按大小写字母升序排列,使用 \t 作为字段输出间隔符,如下所示:

A    10
B    3
a    5
b    10
c    1
d    9

代码补充完成后,打开右侧命令行窗口,使用 maven 打包项目,并使用 spark-submit 进行手动提交,将打包提交运行的结果保存到 /root/result.txt 文件中。


fatSheep大约 5 分钟BigDataSpark复盘
HDFS 原理与应用

Hadoop基本介绍

  • Hadoop技术体系
    • 存储层:HDFS
    • 调度层:YARN
    • 计算框架:MapReduce。值得注意的是另外一个同属于Apache基金会的开源计算框架Apache Spark,当前业界的使用已经远超于MapReduce,尽管它不属于Hadoop项目,但是和Hadoop也有紧密关系。
  • 文件系统
    • 单机文件系统:常见的如Windows NTFS,Linux的Ext4,虽然不同的操作系统和实现,但是本质都是一样的,解决相同的问题。
    • 分布式文件系统
      • 分布式文件系统是单机文件的延伸,概念术语是相通的,比如目录、文件、目录树等。
      • 本质上扩展、延伸了单机文件系统,提供了大容量、高可靠、低成本等功能特性;实现上一般也更为复杂。
  • 分布式存储系统,了解分布式存储系统的分类,理解不同存储系统的使用场景。直观的区别是用户使用方式,本质是针对不同的使用场景提供高效合理的系统。
    • 对象存储:例如AWS的S3,阿里云的OSS,开源的Minio。
    • 块存储:例如AWS的EBS,开源社区也有Ceph等。
    • 文件系统:HDFS、GlusterFS、CubeFS等
    • 数据库:KV数据库比如Cassandra,关系型数据库如TiDB、OceanBase等
  • HDFS功能特性:需要注意HDFS尽管是一个文件系统,但是它没有完整实现POSIX文件系统规范。

fatSheep大约 3 分钟BigData字节青训营
Presto架构原理与优化介绍

概述

OLAP

OLAP (OnLine Analytical Processing) 对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。是许多商务智能(BI)应用程序背后的技术。现如今OLAP已经发展为基于数据库通过SQL对外提供分析能力

常见的OLAP引擎

  • 预计算引擎:Kylin,Druid
  • 批式处理引擎:Hie,Spark
  • 流式处理引擎:Flink
  • 交互式处理引擎:Presto,Clickhouse,Doris

fatSheep大约 4 分钟BigData字节青训营查询引擎Presto
大数据Shuffle原理与实践

Shuffle概述

MapReduce概述

  • 阶段:Map、Shuffle、Reduce

Map阶段

单机上,针对一小块数据的计算过程

Shuffle阶段

在map阶段的基础上,进行数据移动,为后续的reduce阶段做准备。


fatSheep大约 3 分钟BigData字节青训营
Spark原理与实践

Spark介绍

大数据处理技术栈

开源大数据处理引擎

Spark 生态&特点

  • 统一引擎,支持多种分布式场景
  • 多语言支持
  • 可读写丰富数据源
  • 丰富灵活的APIV算子
  • 支持K8S/YARN/Mesos资源调度

fatSheep大约 1 分钟BigData字节青训营Spark计算框架
流式计算中的window机制

概述

流式计算 vs 批式计算

数据价值:实时性越高,数据价值越高

特性 批式计算 流式计算
数据存储 HDFS、Hive Kafka、Pulsar
数据时效性 天级别 分钟级别
准确性 精准 精准和时效性之间取舍
经典计算引擎 Hive、Spark、Flink Flink
计算模型 Exactly-Once At Least Once/Exactly Once
资源模型 定时调度 长期持有
主要场景 离线天级别数据报表 实时数仓、实时营销、实时风控

fatSheep大约 13 分钟BigData字节青训营
Exactly Once 语义在 Flink 中的实现

数据流和动态表

传统SQL和流处理

特征 SQL 流处理
处理数据的有界性 处理的表是有界的 流是一个无限元祖序列
处理数据的完整性 执行查询可以访问完整的数据 执行查询无法访问所有的数据
执行时间 批处理查询产生固定大小结果后终止 查询不断更新结果,永不终止

fatSheep大约 4 分钟BigDataFlink字节青训营
Flink

Flink简介

基本概念

Apache Flink是一个开源的流处理框架,应用于分布式、高性能、高可用的数据流应用程序。可以处理有限数据流和无限数据,即能够处理有边界和无边界的数据流。无边界的数据流就是真正意义上的流数据,所以Flink是支持流计算的。有边界的数据流就是批数据,所以也支持批处理的。不过Flink在流处理上的应用比在批处理上的应用更加广泛,统一批处理和流处理也是Flink目标之一。Flink可以部署在各种集群环境,可以对各种大小规模的数据进行快速计算。


fatSheep大约 10 分钟BigDataJava计算框架Flink字节青训营
SQL Optimizer 解析

大数据体系

SQL查询优化器重要性

SQL重要性

  • 有 MySQL、Oracle 之类使用 SQL 作为交互语言的数据库
  • 有 JDBC、ODBC 之类和各种数据库交互的标准接口
  • 有大量数据科学家和数据分析师等不太会编程语言但又要使用数据的人
  • 多个大数据计算引擎都支持 SQL 作为更高抽象层次的计算入口
    • MapReduce -> Hive SQL
    • Spark -> Spark SQL
    • [[Flink]] -> Flink SQL

fatSheep大约 10 分钟BigDataSQLOptimizer字节青训营