Flink理论介绍
Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。
Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。
Flink整个系统包含三个部分:
Client
Flink Client主要给用户提供向Flink系统提交用户任务(流式作业)的能力。
TaskManager
Flink系统的业务执行节点,执行具体的用户任务。TaskManager可以有多个,各个TaskManager都平等。
JobManager
Flink系统的管理节点,管理所有的TaskManager,并决策用户任务在哪些TaskManager执行。JobManager在HA模式下可以有多个,但只有一个主JobManager。
Flink使用
Pro-Job模式
sql-client.sh embedded
set execution.target = yarn-per-job;
set execution.result-mode=tableau;
yarn-session 模式
yarn-session.sh -t ssl/ -nm “flink-hudi” -d 或者
yarn-session.sh -nm “flink-hudi” -d
sql-client.sh embedded
set high-availability.cluster-id=application_1703741461558_0011;
set execution.result-mode=tableau;
CREATE TABLE hudi_test(
uuid VARCHAR(20),
name VARCHAR(10),
age INT,
ts INT,p VARCHAR(20)
) PARTITIONED BY (p) WITH (
‘connector’ = ‘hudi’,
‘path’ = ‘obs://dayu-ei-clg/Bigdata/hudi’,
‘table.type’ = ‘MERGE_ON_READ’,
‘checkpoint.interval’ = ‘10000’,
‘checkpoint.mode’ = ‘exactly-once’,
‘checkpoint.timeout’ = ‘60000’
);
insert into hudi_test values(‘1000’,’zhangsan’,20,30,’2023-12-28’);
insert into hudi_test partition(p=”20221020”) values(‘1000’,’zhangsan’,20,30);
insert into hudi_read_spark_mor values(‘1000’,’zhangsan’,20,30,’2023-12-28’);
CREATE TABLE hudi_test(
uuid VARCHAR(20),
name VARCHAR(10),
age INT,
ts INT,p VARCHAR(20)
) WITH (
‘connector’ = ‘hudi’,
‘path’ = ‘obs://dayu-ei-clg/Bigdata/hudi100’,
‘table.type’ = ‘MERGE_ON_READ’
);
insert into hudi_test values(‘1000’,’zhangsan’,20,30,’2023-12-28’);
CREATE TABLE hudi_test(
uuid VARCHAR(20),
name VARCHAR(10),
age INT,
ts INT,p VARCHAR(20)
) PARTITIONED BY (p) WITH (
‘connector’ = ‘hudi’,
‘path’ = ‘obs://dayu-ei-clg/Bigdata/hudix’,
‘table.type’ = ‘MERGE_ON_READ’
);
insert into hudi_test partition(p=’2023-12-28’) values(‘1000’,’zhangsan’,30,60);