离线数仓项目中104上的flume同步增量表inc到hdfs上面时出错,db文件夹里面出现_inc‘毒瘤’文件的解决办法

在构建离线数仓过程中遇到一个特定问题,即在同步用户日志和业务数据全量表到HDFS时一切正常,但在处理增量表时,文件不断生成_INC异常。该问题可能源于104节点上的Flume服务,特别是FLUME配置文件中可能存在的jar包不兼容。博主推测_flume的lib目录下某个jar包引起此问题,并提出将使用Maxwell生成数据到Kafka,然后通过104上的Flume从Kafka收集数据到HDFS。同时,Flume配置文件截图已附上,其中包含F3拦截器的jar包。解决方案仍在调查中,初步计划检查并替换可能冲突的jar包。

做离线数仓时,用户日志和业务数据全量表同步正常,但是在同步增量表文件到hdfs文件时出现异常,一直出现_inc异常文件,且104上面的flume服务不关时会不停产生数据而导致_inc文件夹里面出现大量不合规范文件。
这个问题主要是104上面的flume问题,我采用的是maxwell产生数据到kafka,再由104上面的flume从kafka中采集数据到hdfs上面。(我的104的flume上面h还配有拦截器)出现_inc可能是flume中的lib文件夹的jar包不兼容错误,先发个文章占坑,后续我会再想想是哪个jar包不兼容。大家可以先参靠我的资源里面的离线数仓文件jar包。其中包括f3拦截器jar包。
之前遇到时简单做的笔记描述
我的flume文件

在这里插入图片描述
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/6e5ba6701d724e259c5ef2ae8b22ea82.png#pic_center)
要实现Flume将Linux文件夹中的JSON文件上传到HDFS上而不改变文件格式,你需要配置Flume的Agent来监控源目录,并将数据流式传输到HDFS sink。以下是一个简单的配置示例: 首先,确保你的系统中已经安装了Flume和Hadoop,并且HDFS处于运行状态。 然后,创建一个Flume配置文件`flume-conf.properties`,配置内容大致如下: ``` # 定义agent的名字 agent1.name = Agent1 agent1.sources = Source1 agent1.sinks = Sink1 agent1.channels = Channel1 # 配置source:监控本地文件系统中的文件夹 agent1.sources.Source1.type = exec agent1.sources.Source1.command = tail -F /path/to/json/directory/*.json agent1.sources.Source1.channels = Channel1 # 配置sink:将数据写入HDFS agent1.sinks.Sink1.type = hdfs agent1.sinks.Sink1.hdfs.path = hdfs://namenode/path/to/hdfs/directory agent1.sinks.Sink1.hdfs.fileType = DataStream agent1.sinks.Sink1.hdfs.writeFormat = Text # 配置channel:用于source和sink之间的通信 agent1.channels.Channel1.type = memory agent1.channels.Channel1.capacity = 1000 agent1.channels.Channel1.transactionCapacity = 100 # 将source和sink与channel连接起来 agent1.sources.Source1.channels = Channel1 agent1.sinks.Sink1.channel = Channel1 ``` 在这个配置中,我们定义了一个名为`Agent1`的agent,它包含一个名为`Source1`的source,一个名为`Sink1`的sink和一个名为`Channel1`的channel。Source监控指定的文件夹,并将新创建的`.json`文件传输到channel。Sink则从channel读取数据,并将其以文本格式写入到指定的HDFS路径。 将上面的配置保存为`flume-conf.properties`文件,并确保修改`/path/to/json/directory`和`hdfs://namenode/path/to/hdfs/directory`为实际的源文件夹路径和HDFS目标路径。之后,启动Flume agent: ```shell flume-ng agent --conf /path/to/flume/conf --conf-file /path/to/flume-conf.properties --name Agent1 -Dflume.root.logger=INFO,console ``` 确保替换`/path/to/flume/conf`和`/path/to/flume-conf.properties`为你的实际Flume配置目录和配置文件路径。 请注意,上述配置是一个基本示例,实际情况可能需要根据你的具体需求和环境进行调整。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值