银川网站建设nx110,北京建设网服务大厅,十堰哪家网站制作公司技术好,网址外链平台系列文章目录
线上问诊#xff1a;业务数据采集 文章目录 系列文章目录前言一、环境准备1.Hadoop2.Zookeeper3.Kafka4.Flume5.Mysql6.Maxwell 二、业务数据采集1.数据模拟2.采集通道 总结 前言
暑假躺了两个月#xff0c;也没咋写博客#xff0c;准备在开学前再做个项目找…系列文章目录
线上问诊业务数据采集 文章目录 系列文章目录前言一、环境准备1.Hadoop2.Zookeeper3.Kafka4.Flume5.Mysql6.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.propertiesproducerkafka
kafka.bootstrap.servershadoop102:9092,hadoop103:9092,hadoop104:9092
kafka_topictopic_db# mysql login info
hosthadoop102
usermaxwell
passwordmaxwell
jdbc_optionsuseSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue# 指定数据按照主键分组进入Kafka不同分区避免数据倾斜
producer_partition_byprimary_key4.启停脚本 vim ~/bin/mxw.sh
#!/bin/bashMAXWELL_HOME/opt/module/maxwellstatus_maxwell(){resultps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | wc -lreturn $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 停止Maxwellps -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;;
esac5.添加权限 chmod x ~/bin/mxw.sh
二、业务数据采集
1.数据模拟
上传模拟数据
mkdir /opt/module/mock-medical
cd /opt/module/mock-medical修改配置文件 vim application.yaml 现在我们为其创建数据库。
mysql -uroot -p000000 -edrop 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 ((i0; i $1; i))
doecho 正在执行第 $[ $i 1 ] 次数据模拟ssh hadoop102 cd /opt/module/mock-medical/; java -jar mock-medical-1.1.jar
done2.采集通道 现在我们已经将初始数据输入到Mysql接下来使用Maxwell将数据传输到Kafka。 先启动Zookeeper,Kafka和Maxwell Maxwell会实时监控MYSQL数据然后将其传送到Kafka集群所以我们现打开一个Kafka消费集群。
bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic topic_db现在我们再次生产数据输入到MYSQLMaxwell就会将产生的数据传送到Kafka集群我们实现打开的消费者就会收到数据。 出现数据说明通道没问题。到此数据采集通道完成。 总结
这里抓一次快照后边实时数仓还要基于这里再次开发。