当前位置: 首页 > 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集群,我们实现打开的消费者就会收到数据。
在这里插入图片描述
出现数据,说明通道没问题。到此数据采集通道完成。


总结

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

http://www.lryc.cn/news/137872.html

相关文章:

  • 2023 CCPC 华为云计算挑战赛 hdu7399 博弈,启动!(图上博弈/枚举+逆向有向图sg函数)
  • Unity之 Vector3 的详细介绍以及方法的介绍
  • Postgresql部署及简单操作
  • rabbitmq集群搭建
  • C++ 二叉搜索树的概念特性
  • 7、Spring_AOP
  • QChart:数据可视化(用图像形式显示数据内容)
  • 【python】Leetcode(primer-set)
  • 【LVS集群】
  • 软考高级系统架构设计师系列之:论文题目类型、论文考试大纲、历年考试论文真题汇总、论文写作原则、论文写作常见问题、论文评分标准
  • 完整的application.xml
  • C语言:运算符优先级
  • Android GreenDao数据库升级(附Demo)
  • 剑指 Offer 32 - III. 从上到下打印二叉树 III
  • 【QT5-自我学习-线程qThread移植与使用-通过代码完成自己需要功能-移植小记3】
  • 后端开发12.商品模块
  • /usr/bin/containerd: Operation not permitted
  • 分析商务报表使用什么工具?
  • nginx文件配置
  • 视频云存储/安防监控EasyCVR视频汇聚平台如何通过角色权限自行分配功能模块?
  • 小程序定位到 胶囊的三个点大概中间
  • Maven详解
  • 音视频 ffplay命令-高级选项
  • [管理与领导-44]:IT基层管理者 - 个人管理 - 从掌握管理知识开始入门:管理的常识和基础
  • c#两个数进行交换
  • JVM——类加载与字节码技术—字节码指令
  • 同步与互斥——相互合作,相互制约
  • 7个改变玩法规则的ChatGPT应用场景
  • 软考高级系统架构设计师系列论文七十九:论软件产品线技术
  • Spring IOC容器:让Java对象的管理和配置更简单