![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数仓架构搭建
文章平均质量分 82
施小赞
人生苦短,我爱Java
展开
-
12、DolphinScheduler
打开要设置分组的 Worker 节点上的 worker.properties 配置文件,修改 worker.groups 参 数,worker.groups 参数的值为该 Worker 节点对应的分组名称,默认为 default,如果该 worker。此处可配置 Worker 运行环境(任务运行时所需的环境变量),默认的运行环境由 Worker节点中,dolphinscheduler 安装目录下的 conf/env/dolphinscheduler_env.sh 决定。原创 2024-01-06 14:02:43 · 1494 阅读 · 0 评论 -
10、采集通道启动、停止脚本
启停脚本:f1.sh ) ---> 投递kafka topic:topic_log --->[hadoop104] Flume(消费kafka日志 kafka_to_hdfs_log.conf;启停脚本:mxw.sh) --->投递kafka topic:topic_db ---> [hadoop104] Flume(消费kafka日志 kafka_to_hdfs_db.conf;启停脚本:f3.sh ) ps:增量表首日全量同步 mysql_to_kafka_inc_init.sh。原创 2023-07-05 14:27:04 · 300 阅读 · 0 评论 -
9.2、增量表数据同步
此处为了模拟真实环境,对Maxwell源码进行了改动,增加了一个参数mock_date,该参数的作用就是指定Maxwell输出JSON字符串的ts时间戳的日期,接下来进行测试。通常情况下,增量表需要在首日进行一次全量同步,后续每日再进行增量同步,首日全量同步可以使用Maxwell的bootstrap功能,方便起见,下面编写一个增量表首日全量同步脚本。需要注意的是, HDFSSink需要将不同mysql业务表的数据写到不同的路径,并且路径中应当包含一层日期,用于区分每天的数据。原创 2023-07-05 13:58:42 · 562 阅读 · 0 评论 -
9.1、全量表数据同步
由于DataX同步任务要求目标路径提前存在,故需手动创建路径,当前activity_info表的目标路径应为/origin_data/gmall/db/activity_info_full/2020-06-14。注:由于目标路径包含一层日期,用于对不同天的数据加以区分,故path参数并未写死,需在提交任务时通过参数动态传入,参数名称为targetdir。4)执行gen_import_config.sh脚本,生成配置文件。1)在~/bin目录创建mysql_to_hdfs_full.sh。原创 2023-07-05 13:49:13 · 358 阅读 · 0 评论 -
9、DataX安装部署
通常情况下,离线数据同步任务需要每日定时重复执行,故HDFS上的目标路径通常会包含一层日期,以对每日同步的数据加以区分,也就是说每日同步数据的目标路径不是固定不变的,因此DataX配置文件中HDFS Writer的path参数的值应该是动态的。为实现这一效果,就需要使用DataX传参的功能。DataX的使用十分简单,用户只需根据自己同步数据的数据源和目的地选择相应的Reader和Writer,并将Reader和Writer的信息配置在一个json文件中,然后执行如下命令提交数据同步任务即可。原创 2023-07-05 13:40:32 · 2867 阅读 · 0 评论 -
8、离线数仓同步数据
元数据层面:每个小文件都有一份元数据,其中包括文件路径,文件名,所有者,所属组,权限,创建时间等,这些信息都保存在Namenode内存中。并且对每天产生的用户行为日志进行区分,将不同天的数据发往HDFS不同天的路径。用户行为数据由Flume从Kafka直接同步到HDFS,由于离线数仓采用Hive的分区表按天统计,所以目标路径要包含一层日期。官方默认的这三个参数配置写入HDFS后会产生小文件,hdfs.rollInterval、hdfs.rollSize、hdfs.rollCount。原创 2023-07-05 11:45:02 · 139 阅读 · 0 评论 -
7、Maxwell安装部署
但有时只有增量数据是不够的,我们可能需要使用到MySQL数据库中从历史至今的一个完整的数据集。1)第一条type为bootstrap-start和最后一条type为bootstrap-complete的数据,是bootstrap开始和结束的标志,不包含数据,中间的type为bootstrap-insert的数据才包含数据。Maxwell需要在MySQL中存储其运行过程中的所需的一些数据,包括binlog同步的断点位置(Maxwell支持断点续传)等等,故需要在MySQL为Maxwell创建数据库及用户。原创 2023-07-05 11:28:52 · 1029 阅读 · 0 评论 -
6、Flume安装部署
按照规划,需要采集的用户行为日志文件分布在hadoop102,hadoop103两台日志服务器,故需要在hadoop102,hadoop103两台节点配置日志采集Flume。(1)将apache-flume-1.9.0-bin.tar.gz上传到linux的/opt/software目录下。修改/opt/module/flume/conf/flume-env.sh文件,配置如下参数(虚拟机环境暂不配置)(2)解压apache-flume-1.9.0-bin.tar.gz到/opt/module/目录下。原创 2023-07-05 11:10:03 · 724 阅读 · 0 评论 -
5、Kafka安装部署
因为Zookeeper集群当中记录着Kafka集群相关信息,Zookeeper集群一旦先停止,Kafka集群就没有办法再获取停止进程的信息,只能手动杀死Kafka进程了。5)分别在hadoop103和hadoop104上修改配置文件/opt/module/kafka/config/server.properties中的broker.id=1、broker.id=2。(1)在/etc/profile.d/my_env.sh文件中增加kafka环境变量配置。(2)把主题中所有的数据都读取出来(包括历史数据)。原创 2023-07-05 11:00:35 · 217 阅读 · 0 评论 -
4、Zookeeper分布式安装部署
集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。(1)重命名/opt/module/zookeeper/conf这个目录下的zoo_sample.cfg为zoo.cfg。(2)在/opt/module/zookeeper/zkData目录下创建一个myid的文件。(1)在/opt/module/zookeeper/这个目录下创建zkData。原创 2023-07-04 18:06:18 · 1003 阅读 · 0 评论 -
3、Hive安装部署
新版本的Hive启动的时候,默认申请的JVM堆内存大小为256M,JVM堆内存申请的太小,导致后期开启本地模式,执行复杂的SQL时经常会报错:java.lang.OutOfMemoryError: Java heap space,因此最好提前调整一下HADOOP_HEAPSIZE这个参数。(1)修改$HIVE_HOME/conf下的hive-env.sh.template为hive-env.sh。2)解压apache-hive-3.1.2-bin.tar.gz到/opt/module/目录下面。原创 2023-07-04 18:00:30 · 321 阅读 · 0 评论 -
1、hadoop集群搭建
这两种shell的主要区别在于,它们启动时会加载不同的配置文件,login shell启动时会加载/etc/profile,~/.bash_profile,~/.bashrc。面临问题:数据统计主要用HiveSQL,没有数据倾斜,小文件已经做了合并处理,开启的JVM重用,而且IO没有阻塞,内存用了不到50%。Linux的环境变量可在多个文件中配置,如/etc/profile,/etc/profile.d/*.sh,~/.bashrc,~/.bash_profile等,下面说明上述几个文件之间的关系和区别。原创 2023-07-04 14:39:03 · 574 阅读 · 0 评论 -
0、技术选型
以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,戴尔品牌单台报价4W出头。(一般大厂使用,技术实力雄厚,有专业的运维人员) (建议使用)(2)每条日志1K左右,每天1亿条:100000000 / 1024 / 1024 = 约100G。(2)CDH:国内使用最多的版本,但CM不开源,今年开始收费,一个节点1万美金/年。(1)每天日活跃用户100万,每人一天平均100条:100万*100条=1亿条。(3)HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少。原创 2023-07-04 14:28:31 · 175 阅读 · 0 评论