测试环境搭建整套大数据系统(七:集群搭建kafka(2.13)+flink(1.13.6)+dinky(0.6)+iceberg)

news2024/11/17 15:34:02

一:搭建kafka。

1. 三台机器执行以下命令。

cd /opt
wget wget https://dlcdn.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar zxvf kafka_2.13-3.6.1.tgz
cd kafka_2.13-3.6.1/config
vim server.properties

修改以下俩内容
1.三台机器分别给予各自的broker_id。
在这里插入图片描述

2. 配置zk。

在这里插入图片描述

3. 启动测试。

3.1 后台启动。
第一步:启动zk。
第二步:执行启动命令

nohup /opt/kafka_2.13-3.6.1/bin/kafka-server-start.sh /opt/kafka_2.13-3.6.1/config/server.properties > /dev/null 2>&1 &

3.2 测试。
在一台机器上执行创建topic命令。

/opt/kafka_2.13-3.6.1/bin/kafka-topics.sh --create --topic my-topic-kraft --bootstrap-server localhost:9092

在另外一台机器上执行查看topic命令。

/opt/kafka_2.13-3.6.1/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

在这里插入图片描述

二:搭建flink。

1. 三台机器下载flink。

cd /opt
https://www.apache.org/dyn/closer.lua/flink/flink-1.13.6/flink-1.13.6-bin-scala_2.12.tgz

2.修改配置参数。

  1. 三台机器都修改 flink-conf.yaml
cd /opt/flink-1.13.6/conf
vim flink-conf.yaml

填写主节点地址
在这里插入图片描述

zk地址修改
在这里插入图片描述

high-availability.storageDir: hdfs://10.15.250.196/flink/ha/
state.checkpoints.dir: hdfs://10.15.250.196/flink-checkpoints
  1. 修改 masters
vim masters

在这里插入图片描述
3. 修改works

vim works

其他俩台机器地址填写到此处。
在这里插入图片描述
4. 添加jar包到lib目录下。

3.启动flink。

cd /opt/flink-1.13.6/bin
./start-cluster.sh

查看页面,ip位主节点,端口8081

在这里插入图片描述

三:dinky

1. mysql初始化。

mysql -uroot -p123456
create database dinky;
grant all privileges on dinky.* to 'dinky'@'%' identified by 'dinky' with grant option;
flush privileges;

2:上传dinky。

上传安装包至目录/opt

tar -zxvf  dlink-release-0.6.6.tar.gz
mv  dlink-release-0.6.6.tar.gz dinky
cd dinky
#首先登录 mysql
mysql  -udinky -pdinky
mysql>use dinky;
mysql>source /opt/dinky/sql/dlink.sql

3. 配置mysql。

cd config/
vim application.yml
spring:
  datasource:
    url: jdbc:mysql://xxxx:3306/dinky?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRet
rieval=true    
	username: dinky
    password: dinky

4. 添加jar包。

mkdir /opt/dlink/plugins

在这里插入图片描述

5. 启动服务。

cd /opt/dinky
sh auto.sh start 1.13
sh auto.sh stop
jps

在这里插入图片描述
地址:http://192.168.50.60:8888/#/datastudio
账号:admin
密码:admin

四:实时计算小案例。

1. flink申请yarn资源。

 /opt/flink-1.13.6/bin/yarn-session.sh -n 4 -tm 1024m -s 2 &

2. kafka生成topic

 /opt/kafka_2.13-3.6.1/bin/kafka-topics.sh --create --topic my-topic-kraft --bootstrap-server localhost:9092

3. dinky编写sql,造数据实时写入kafka

set execution.checkpointing.interval = 30s;
set state.checkpoints.dir=hdfs://192.168.50.60:8020/cluster/flink/checkpointes_;
set state.savepoints.dir=hdfs://192.168.50.60:8020/cluster/flink/savepointkes_;

CREATE TABLE source_table (
                age INT, 
                sex STRING, 
                t_insert_time AS localtimestamp,
                WATERMARK FOR t_insert_time AS t_insert_time 
                ) WITH (
                'connector' = 'datagen', 
                'rows-per-second'='5',
                'fields.age.min'='1',
                'fields.age.max'='1000',
                'fields.sex.length'='10'
                );



CREATE TABLE KafkaTable (
  `age` int,
  `sex` STRING,
  t_insert_time TIMESTAMP
) WITH (
  'connector' = 'kafka',
  'topic' = 'my-topic-kraft',
  'properties.bootstrap.servers' = '192.168.50.60:9092',
  --'properties.group.id' = 'testGroup',
  'scan.startup.mode' = 'earliest-offset',
  'format' = 'json'
);
insert into KafkaTable
select age,sex,t_insert_time from source_table;

4. 抽取kafka中数据,进行累加计算,插入到mysql

set execution.checkpointing.interval = 30s;
SET execution.type = streaming;
set state.checkpoints.dir=hdfs://192.168.50.60:8020/cluster/flink/checkpointes_;
set state.savepoints.dir=hdfs://192.168.50.60:8020/cluster/flink/savepointkes_;



CREATE TABLE MyUserTable (
  window_end_time TIMESTAMP,
  create_time TIMESTAMP,
  window_proctime_time TIMESTAMP,
  age int,
  count_sum bigint,
  PRIMARY KEY (age) NOT ENFORCED
  ) WITH (
  'connector' = 'jdbc',
  'url' = 'jdbc:mysql://192.168.50.60:3306/test',
  'table-name' = 'test_kafka',
  'username' = 'root',
  'password' = '123456',
  'sink.buffer-flush.max-rows' = '1'
  );

-- select * from MyUserTable;
CREATE TABLE KafkaTable (
  `age` int,
  `sex` STRING,
  t_insert_time TIMESTAMP,
  `ts1` as CAST(t_insert_time AS TIMESTAMP_LTZ(3)),
  WATERMARK FOR ts1 AS ts1 - INTERVAL '5' SECOND   -- 在t_s上定义5 秒延迟的 watermark
) WITH (
  'connector' = 'kafka',
  'topic' = 'my-topic-kraft',
  'properties.bootstrap.servers' = '192.168.50.60:9092',
  --'properties.group.id' = 'testGroup',
  'scan.startup.mode' = 'earliest-offset',
  'format' = 'json'
);


--insert into MyUserTable
select
    window_end as window_end_time,
    window_start as create_time,
    PROCTIME() as window_proctime_time,
    age,
    count(*) as count_sum
FROM TABLE(CUMULATE(
    TABLE KafkaTable
       , DESCRIPTOR(ts1)
       , INTERVAL '5' MINUTES
       , INTERVAL '1' DAY))
group by
    window_end,
    window_start,
    age
;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

奇点云:SAFe框架下,我们对平台软件工程生产线做了4项改造

导读: 客户规模扩大,如何保证大数据软件产品和服务质量始终如一?几乎所有成长中的软件厂商,尤其是需要通过私有化部署交付的厂商,都会面临这个问题。正如《人月神话》中多次表明的,单纯地增加人手、扩大团队…

npm使用国内淘宝镜像的方法整理

命令配置安装: 淘宝镜像: npm config set registry https://registry.npm.taobao.org/ 官方镜像: npm config set registry https://registry.npmjs.org 通过cnpm安装: npm install -g cnpm --registryhttps://registry.npm.…

Java-常用集合

Jva常用集合 一、Java 集合框架体系二、Collection接口和方法1. List接口List 接口主要实现类:ArrayListList 的实现类之二:LinkedListList 的实现类之三:Vector 2. Set接口Set 主要实现类:HashSetSet 实现类之二:Link…

SpringBoot 手写 Starter

spring-boot-starter 模块 1.介绍 SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配…

WordPress分类目录ID怎么看?如何查找WordPress标签ID?

在WordPress网站中,我们需要判断某篇文章是否属于某个分类目录,或者是否拥有某个标签,那么就需要用到分类目录ID和标签ID,那么WordPress分类目录ID怎么看?如何查找WordPress标签ID?下面boke112百科就跟大家…

MySQL 自增列解析(Auto_increment)

MySQL数据库为列提供了一种自增属性,当列被定义为自增时。Insert语句对该列即使不提供值,MySQL也会自动为该列生成递增的唯一标识,因此这个特性广泛用于主键的自动生成。 一、自增列的用法 自增列具有自动生成序列值,整型&#…

Linux系统编程入门(下)

Linux系统编程 第一章 Linux系统编程入门(下)1.6 GDB 调试1.7 标准C库IO函数和Linux系统IO函数对比 第一章 Linux系统编程入门(上) 第一章 Linux系统编程入门(下) 1.6 GDB 调试 (1&#xff0…

AOP(黑马学习笔记)

AOP基础 学习完spring的事务管理之后,接下来我们进入到AOP的学习。 AOP也是spring框架的第二大核心,我们先来学习AOP的基础。 在AOP基础这个阶段,我们首先介绍一下什么是AOP,再通过一个快速入门程序,让大家快速体验A…

JVM性能优化

运行时优化 方法内联 方法内联,是指 JVM在运行时将调用次数达到一定阈值的方法调用替换为方法体本身 ,从而消除调用成本,并为接下来进一步的代码性能优化提供基础,是JVM的一个重要优化手段之一。 注: C的inline属于编…

构建一个基于Node.js的文件存储服务

随着现代web应用程序变得越来越复杂和功能强大,文件存储服务成为了许多应用的重要组成部分。在本篇博客中,我们将探讨如何构建一个基于Node.js的文件存储服务,让您可以轻松地上传、下载和管理文件。我们将利用Node.js的强大功能和模块来构建这…

【Javascript编程实操01】判断最大数、奇偶数、是否成年

目录 前言 1、求两个数的最大数 代码: 实现效果: 2、判断一个整数是偶数还是奇数 代码: 实现效果: 3、判断一个人的年龄是否满18岁 代码: 实现效果: 总结 前言 从今天开始正式进入了Web前端第二…

信安数学(验证定理6.3.2~6.3.3)

定理6.3.2 如果n是对于基b的强伪素数,则n是对于基b得到欧拉伪素数 nint(input("给定一奇合数n:")) bint(input("给定一个整数b:")) def solution(a,b):#若b>a,则交换两个数的值if(b>a):taabbtr b #初…

字符函数与字符串函数(上)

个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客 目录 strlen的使用与模拟实现 函数原型: strlen的使用 strlen的模拟使用 strcpy的使用与模拟实现 函数原型: strcpy的使…

【冲击蓝桥篇】动态规划(上):真题实战+思路解析

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《数据结构与算法:初学者入门指南》📘&am…

普中51单片机学习(EEPROM)

EEPROM IIC串行总线的组成及工作原理 I2C总线的数据传送 数据位的有效性规定 I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许…

【Java 基础】Java 数组、方法极致精讲

《Java 零基础入门到精通》专栏持续更新中。通过本专栏你将学习到 Java 从入门到进阶再到实战的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 订阅专栏后添加我微信或者进交流群,进群可找我领取 前端/Java/大数据/Python/低…

从0到1使用C++实现一个模拟器-1-【实现最简CPU】

文章目录 uint64_tstdstd::arrayCPU和CU类构造函数size_tstatic_caststd::ifstreamriscv64-unknown-elf-objcopy -O binary add-addi add-addi.binriscv64-unknown-elf-gcc -Wl,-Ttext0x0 -nostdlib -o add-addi add-addi.s-wlstd::hex std::setw() std::setfill()各自的用法he…

upload-Labs靶场“1-5”关通关教程

君衍. 一、环境搭建二、第一关 前端JS检测后缀1、源码分析2、禁用浏览器JS上传3、burp抓包修改 三、第二关 MIME头验证1、源码分析2、burp抓包绕过 四、第三关 PHP3绕过1、源码分析2、PHP3绕过 五、第四关 .htaccess重写绕过1、源码分析2、.htaccess复写 六、第五关 黑名单大小…

Qt槽函数不响应的原因总结

Qt专栏:http://t.csdnimg.cn/LE2Lx 目录 1.问题 2.原因 2.1.没有继承QObject,声明Q_OBJECT宏 2.2.信号槽参数不匹配 2.3.信号函数未声明为 signals 2.4.访问权限 2.5.注意connect的位置,信号在创建信号槽连接前使用,则无法…

C#使用iText7将多个PDF文档合并为单个文档

使用HtmlAgilityPack抓取并分析网页内容,然后再调用PuppeteerSharp将网页生成PDF文件,最终的成果如下图所示,得到将近120个pdf文档。能看,但是不方便,需要逐个打开文档才能看到所需的内容,最好能将这些文档…