当前位置: 首页 > news >正文

线上问诊:业务数据采集

系列文章目录

线上问诊:业务数据采集


文章目录

  • 系列文章目录
  • 前言
  • 一、环境准备
    • 1.Hadoop
    • 2.Zookeeper
    • 3.Kafka
    • 4.Flume
    • 5.Mysql
    • 6.Maxwell
  • 二、业务数据采集
    • 1.数据模拟
    • 2.采集通道
  • 总结


前言

暑假躺了两个月,也没咋写博客,准备在开学前再做个项目找找感觉,由于之前做过广告数仓的案例,这次的博客会相对简略一些,数仓包括离线和实时两个部分,离线用来加深记忆,实时用来学习新技术。


一、环境准备

由于很多内容之前博客都完成过。这里就不过多赘述了。

1.Hadoop

Hadoop学习专栏前四章内容为Hadoop集群安装。

2.Zookeeper

Zookeeper安装

3.Kafka

Kafka安装

4.Flume

Flume安装
安装好之后为了后边实验方便,修改两个参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Flume安装后需要分发到所有节点

xsync /opt/module/flume/

5.Mysql

广告数仓:采集通道创建

6.Maxwell

这里我们选用1.29.2版本,因为在1.30.0开始,放弃了对java8的支持。
在这里插入图片描述
1.上传并解压
在这里插入图片描述
在这里插入图片描述
2.创建Maxwell所需数据库和用户

CREATE DATABASE maxwell;
CREATE USER 'maxwell'@'%' IDENTIFIED BY 'maxwell';
GRANT ALL ON maxwell.* TO 'maxwell'@'%';
GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';

3.修改配置文件

cp config.properties.example config.properties
vim config.properties

在这里插入图片描述

producer=kafka
kafka.bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092
kafka_topic=topic_db# mysql login info
host=hadoop102
user=maxwell
password=maxwell
jdbc_options=useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true# 指定数据按照主键分组进入Kafka不同分区,避免数据倾斜
producer_partition_by=primary_key

4.启停脚本
vim ~/bin/mxw.sh

#!/bin/bashMAXWELL_HOME=/opt/module/maxwellstatus_maxwell(){result=`ps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | wc -l`return $result
}start_maxwell(){status_maxwellif [[ $? -lt 1 ]]; thenecho "启动Maxwell"$MAXWELL_HOME/bin/maxwell --config $MAXWELL_HOME/config.properties --daemonelseecho "Maxwell正在运行"fi
}stop_maxwell(){status_maxwellif [[ $? -gt 0 ]]; thenecho "停止Maxwell"ps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | awk '{print $2}' | xargs kill -9elseecho "Maxwell未在运行"fi
}case $1 instart )start_maxwell;;stop )stop_maxwell;;restart )stop_maxwellstart_maxwell;;
esac

5.添加权限
chmod +x ~/bin/mxw.sh

二、业务数据采集

1.数据模拟

上传模拟数据

mkdir /opt/module/mock-medical
cd /opt/module/mock-medical

在这里插入图片描述
修改配置文件
vim application.yaml
在这里插入图片描述
现在我们为其创建数据库。

mysql -uroot -p000000 -e"drop database if exists medical;create database medical charset utf8mb4 collate utf8mb4_general_ci;"

在这里插入图片描述
执行jar包
java -jar mock-medical-1.1.jar
在这里插入图片描述
在数据库检查是否获取到数据。
在这里插入图片描述
封装成脚本
vim ~/bin/medical_mock.sh

#!/bin/bashfor ((i=0; i < $1; i++))
doecho "正在执行第 $[ $i + 1 ] 次数据模拟"ssh hadoop102 "cd /opt/module/mock-medical/; java -jar mock-medical-1.1.jar"
done

2.采集通道

在这里插入图片描述
现在我们已经将初始数据输入到Mysql,接下来使用Maxwell将数据传输到Kafka。
先启动Zookeeper,Kafka和Maxwell
在这里插入图片描述
Maxwell会实时监控MYSQL数据,然后将其传送到Kafka集群,所以我们现打开一个Kafka消费集群。

bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic topic_db

在这里插入图片描述
现在我们再次生产数据输入到MYSQL,Maxwell就会将产生的数据传送到Kafka集群,我们实现打开的消费者就会收到数据。
在这里插入图片描述
出现数据,说明通道没问题。到此数据采集通道完成。


总结

这里抓一次快照,后边实时数仓还要基于这里再次开发。

相关文章:

线上问诊:业务数据采集

系列文章目录 线上问诊&#xff1a;业务数据采集 文章目录 系列文章目录前言一、环境准备1.Hadoop2.Zookeeper3.Kafka4.Flume5.Mysql6.Maxwell 二、业务数据采集1.数据模拟2.采集通道 总结 前言 暑假躺了两个月&#xff0c;也没咋写博客&#xff0c;准备在开学前再做个项目找…...

2023 CCPC 华为云计算挑战赛 hdu7399 博弈,启动!(图上博弈/枚举+逆向有向图sg函数)

题目 给定t(t<200)组样例&#xff0c; 每次给定一个n(n<300)个左边的点m(m<300)个右边的点的二分图&#xff0c;图无重边 所有边总量不超过5e5 初始时棋子可以被放置在任意一个点上&#xff0c; 若被放置在左边&#xff0c;则Alice先走&#xff1b;被放置在右边&a…...

Unity之 Vector3 的详细介绍以及方法的介绍

文章目录 总的介绍小试牛刀相关的描述的参数看个小例子 总的介绍 当涉及到Unity中的Vector3类时&#xff0c;以下是一些常用的方法和操作&#xff1a; magnitude 方法&#xff1a;返回向量的长度。 float length vector.magnitude;sqrMagnitude 方法&#xff1a;返回向量的平…...

Postgresql部署及简单操作

目录 1、介绍 2、什么是PostgreSQL 3、PostgreSQL 的特点 4、数据库定为 5、环境准备 6、编译安装 6.1 安装依赖包 6.2 下载安装包 6.3 创建用户 6.4 创建 postgresql数据目录并授权 6.5 上传压缩包并解压 6.6 编译postgresql源码 6.7 配置环境变量 6.8 初始化数…...

rabbitmq集群搭建

升级步骤 1.升级包上传 1.1上传erlang、rabbitmq安装包 创建对应升级目录 将安装包otp_src_22.1.7.tar.gz上传到新创建的目录下 将安装包rabbitmq-server-generic-unix-3.8.9.tar.xz上传到新创建的目录下 1.2 执行解压命令tar -zxvf otp_src_22.1.7.tar.gz xz -d rabbitmq-s…...

C++ 二叉搜索树的概念特性

1. 二叉搜索树 1.1 二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树 &#xff0c;或者是具有以下性质的二叉树 : 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上所有节点的值都大…...

7、Spring_AOP

一、Spring AOP 简介 1.概述 对于spring来说&#xff0c;有三大组件&#xff0c;IOC&#xff0c;ID&#xff0c;AOP aop概述&#xff1a;AOP(Aspect Oriented Programming)面向切面编程。 作用&#xff1a;不改变原有代码设计的基础上实现功能增强 例子 传统打印日志 使用…...

QChart:数据可视化(用图像形式显示数据内容)

1、数据可视化的图形有&#xff1a;柱状/线状/条形/面积/饼/点图、仪表盘、走势图&#xff0c;弦图、金字塔、预测曲线图、关系图、数学公式图、行政地图、GIS地图等。 2、在QT Creator的主页面&#xff0c;点击 欢迎》示例》右侧输入框 输入Chart&#xff0c;即可查看到QChar…...

【python】Leetcode(primer-set)

文章目录 78. 子集&#xff08;集合的所有子集&#xff09;90. 子集 II&#xff08;集合的所有子集&#xff09; 更多 leetcode 题解可参考&#xff1a;【Programming】 78. 子集&#xff08;集合的所有子集&#xff09; 给定一组不含重复元素的整数数组 nums&#xff0c;返回…...

【LVS集群】

目录 一、集群概述 1.负载均衡技术类型 2.负载均衡实现方式 二、LVS结构 1.三层结构 2.架构对象 三、LVS工作模式 四、LVS负载均衡算法 1.静态负载均衡 2.动态负载均衡 五、ipvsadm命令详解 1. -A 2. -D 3. -L 4. -a 5. -d 6. -l 7. -t 8. -s 9. -r 10. -…...

软考高级系统架构设计师系列之:论文题目类型、论文考试大纲、历年考试论文真题汇总、论文写作原则、论文写作常见问题、论文评分标准

软考高级系统架构设计师系列之:论文题目类型、论文考试大纲、历年考试论文真题汇总、论文写作原则、论文写作常见问题、论文评分标准 一、论文写作概述二、论文题目类型三、论文考试大纲1.系统建模2.软件架构设计3.系统设计4.分布式系统设计5.系统的可靠性分析与设计6.系统的安…...

完整的application.xml

<!-- 资源文件配置 --><beans profile"dev"><bean class"com.ningpai.util.CustomPropertyPlaceholderConfigurer"><property name"locations"><list><value>classpath:/com/ningpai/web/config/dev/jdbc.p…...

C语言:运算符优先级

一、优先级&#xff08;常使用的运算符&#xff09; 见表格 二、注意 总体原则&#xff1a;算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符 同一级别下的运算符的运算次序由表达式的结合方向决定 运算符注释级别( )圆括号1[ ]数组下标1后置后置2后置--后置--2前置…...

Android GreenDao数据库升级(附Demo)

前言 大家好久不见&#xff0c;一转眼马上八月份下旬了&#xff0c;最近由于工作比较忙&#xff0c;没时间给大家更新博文。百忙之中抽出时间&#xff0c;给大家来更新一篇关于GreenDao3数据库的升级。 关于GreenDao的详细介绍以及一些逻辑性的增、删、改、查等&#xff0c;可以…...

剑指 Offer 32 - III. 从上到下打印二叉树 III

目录 使用函数实现 使用双端队列实现 请实现一个函数按照之字形顺序打印二叉树&#xff0c;即第一行按照从左到右的顺序打印&#xff0c;第二层按照从右到左的顺序打印&#xff0c;第三行再按照从左到右的顺序打印&#xff0c;其他行以此类推。 例如: 给定二叉树: [3,9,20,nu…...

【QT5-自我学习-线程qThread移植与使用-通过代码完成自己需要功能-移植小记3】

【QT5-自我学习-线程qThread移植与使用-通过代码完成自己需要功能-移植小记3】 1、前言2、实验环境3、自我总结&#xff08;1&#xff09;文件的编写&#xff08;2&#xff09;信号与槽的新理解&#xff08;3&#xff09;线程数据的传递 4、移植步骤第一步&#xff1a;添加新文…...

后端开发12.商品模块

概述 简介 商品模块这个设计的非常复杂 效果图 数据库...

/usr/bin/containerd: Operation not permitted

问题 今天在重启docker程序的时候一直启动不起来&#xff0c;通过systemctl status docker和jourctl -xu docker也没有发现什么有用的报错信息&#xff0c;无奈只好查看/var/log/message&#xff0c;发现以下错误提示&#xff1a; Started containerd container runtime Start…...

分析商务报表使用什么工具?

传统的BI分析商务报表存在的问题 随着数字化转型的深入推进&#xff0c;企业面临着海量数据的挑战和机遇。数据是企业的重要资产&#xff0c;能够帮助企业洞察市场动态、优化业务流程、提升客户满意度、创造竞争优势。然而&#xff0c;传统的BI&#xff08;商业智能&#xff0…...

nginx文件配置

在部署前后端分离项目时&#xff0c;当前端和后端不在一个服务器上时&#xff0c;需要在前端服务器上下载nginx并配置 #hkdp-front-test 前端服务器 xxx.xxx.x.69 前端项目端口号9528&#xff0c;监听文件夹 /home/apps/vue/hkdp-manager 配置如下 server{ …...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...