官方文档

一、大数据背景知识

ETL和ELT

从ETL升级到ELT

OLAP和OLTP

1、OLTP(On-Line Transaction Processing ):

操作型处理,叫联机事务处理(OLTP),也可以称面向交易的处理系统。它是针对具体业务在数据库联机的日常操作,通过对少数记录进行查询、修改。
OLTP系统注重的是数据安全、完整、响应效率。通常指的就是RDBMS关系型数据库


2、OLAP(On-Line Analytical Processing):

分析型处理,叫联机分析处理OLAP,一般针对某些主题的历史数据进行分析,支持管理决策。
主要指的是数据仓库、数据集市(小型数据仓库):Apache Hive、Apache Impala

传统数仓DW分层

作者:Peter

星型和雪花型数仓DW

数仓逻辑模型

ODS常见工具

  • Canal: 从MySQL的binlog中抽取数据
  • Flume:从Nginx等软件日志中抽取数据
  • Kafka:从消息队列中抽取数据

二、Flink关键知识

flink dataflow

  1. 获取执行环境
  2. 读取数据源(Source)
  3. 定义基于数据的装换(transformations)
  4. 写入目标(Sink)
  5. 触发执行(execute)

DataStream

Java DataStream API 的所有核心类都可以在 org.apache.flink.streaming.api 中找到。

Source

addSource

SourceFunction接口

DataStreamSource

SingleOutputStreamOperator

AbstractRichFunction

ParallelSourceFunction接口

  • 从文件读 env.readxx
  • 从集合类读 env.fromxxx
  • 从元素读 env.fromElements
  • 从socket读 env.socketxxx

读Kafka

kafka连接器:flink-connector-kafka_xxxx

env.addSource(new FlinkKafkaConsumer<xxxx>("xx_steam",xxSchema,properties)

自定义Source

实现 SourceFunction 接口

Flink POJO要求

  • 类是公有的
  • 有一个无参构造函数
  • 所有属性都是public且非final
  • 所有属性类型都实现了序列化

并行度

ParallelSourceFunction

xx.setParallelism(2)

TypeInformation

包含各种xxTypeInfo,例如:BasicTypeInfo、NumericTypeInfo

基本数组类型PrimitiveArrayTypeInfo

对象数组类型ObjectArrayTypeInfo

元组类型TupleTypeInfo

POJO类型PojoTypeInfo

Type Hints

泛型类型擦除后,帮助指明返回类型,例如:

xxx.return(Types.TUPLE(Types.STRING, Types.LONG));
xxx.return(new TypeHint<Tuple2<Integer, SomeType>>(){})

第40节课,todo

三、Flink部署

VirtualBox虚拟化软件

Oracle的virtualbox是一款开源的虚拟机软件,支持win10而且完全免费。我们需要用它安装3个无界面的ubuntu18.04用来搭建flink

Ubuntu18.04虚拟机安装

从网易镜像源找到下面的iso镜像并下载:

ubuntu-18.04.6-live-server-amd64.iso               16-Sep-2021 04:42    969M

虚拟机配置

  1. 创建一台虚拟机

2. 配置第二张网卡(内网网卡,网段定义为192.168.2.1)

3. 配置内网静态ip: 进入目录/etc/netplan,修改默认的配置文件

# 应用配置
sudo netplan apply
# 查看ip
ip addr
# 查看路由
route -n
# 查看网络通不通
ping www.baidu.com

注: 一定要配置routes,因为双网卡需要显式指定路由,否则连接外网的时候,不知道走哪张网卡。

4. 更新ubuntu操作系统

# 进入apt目录
cd /etc/apt
# 修改sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# 更新
sudo apt update
# 升级软件
sudo apt upgrade

5. 安装OPEN_JDK11

sudo apt install openjdk-11-jdk

6. 保存成模板不要动它,复制它来创建Flink集群。

  1. 使用配置:完全复制,克隆新的主机
  2. 修改/etc/hostname中的默认主机名,避免重复
  3. 修改第三步中的静态IP
  • 配置域名
  • 下载flink安装包并解压缩
分类: 未分类