目录
一、大数据背景知识
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分层
星型和雪花型数仓DW
ODS常见工具
- Canal: 从MySQL的binlog中抽取数据
- Flume:从Nginx等软件日志中抽取数据
- Kafka:从消息队列中抽取数据
二、Flink关键知识
flink dataflow
- 获取执行环境
- 读取数据源(Source)
- 定义基于数据的装换(transformations)
- 写入目标(Sink)
- 触发执行(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
虚拟机配置
- 创建一台虚拟机
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集群。
- 使用配置:完全复制,克隆新的主机
- 修改/etc/hostname中的默认主机名,避免重复
- 修改第三步中的静态IP
- 配置域名
- 下载flink安装包并解压缩