记录一下flume中因为taildir_position.json因位置不对导致数据无法从kafka被采到hdfs上的问题

embedded/2024/10/19 3:31:25/

【背景说明】

我需要用flumekafka上的数据采集到hdfs上,发现数据怎么到不了hdfs

【问题排查】

       1.kafka上已有相应的数据

        2.我的flume配置文档(没问题),

        3.时间拦截器(没问题),

        4.JSONObject.class(flume/lib中也已经导入),

        5.f3也能正常启动

这是我的flume配置文档:

vim kafka_to_hdfs_db.conf

a1.sources = r1
a1.channels = c1
a1.sinks = k1a1.sources.r1.type = org.apache.flume.source.kafka.KafkaSource
a1.sources.r1.batchSize = 5000
a1.sources.r1.batchDurationMillis = 2000
a1.sources.r1.kafka.bootstrap.servers = hadoop102:9092,hadoop103:9092
a1.sources.r1.kafka.topics = topic_db
a1.sources.r1.kafka.consumer.group.id = flume
a1.sources.r1.setTopicHeader = true
a1.sources.r1.topicHeader = topic
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type = com.atguigu.flume.interceptor.TimestampAndTableNameInterceptor$Buildera1.channels.c1.type = file
a1.channels.c1.checkpointDir = /opt/module/flume/checkpoint/behavior2
a1.channels.c1.dataDirs = /opt/module/flume/data/behavior2/
a1.channels.c1.maxFileSize = 2146435071
a1.channels.c1.capacity = 1000000
a1.channels.c1.keep-alive = 6## sink1
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /origin_data/gmall/db/%{tableName}_inc/%Y-%m-%d
a1.sinks.k1.hdfs.filePrefix = db
a1.sinks.k1.hdfs.round = falsea1.sinks.k1.hdfs.rollInterval = 10
a1.sinks.k1.hdfs.rollSize = 134217728
a1.sinks.k1.hdfs.rollCount = 0a1.sinks.k1.hdfs.fileType = CompressedStream
a1.sinks.k1.hdfs.codeC = gzip## 拼装
a1.sources.r1.channels = c1
a1.sinks.k1.channel= c1

【原因】

最后发现是我的taildir_position.json之前在/opt/module/flume/jobs/collectionProject路径下(不对),导致flume读不到这个文件的位置,所以无法从kafka将数据读到hdfs

【解决】

将这个文件移动到/opt/module/flume的路径下:

[atguigu@hadoop102 collectionProject]$ mv taildir_position.json /opt/module/flume

再次启动flume

[atguigu@hadoop102 flume]$ bin/flume-ng agent -n a1 -c conf/ -f jobs/collectionProject/kafka_to_hdfs_db.conf

MySQL数据库的增量数据已从kafka成功同步到hdfs~


http://www.ppmy.cn/embedded/10030.html

相关文章

C语言程序环境和预处理

系列文章目录 第一章 C语言基础知识 第二章 C语言控制语句 第三章 C语言函数详解 第四章 C语言数组详解 第五章 C语言操作符详解 第六章 C语言指针详解 第七章 C语言结构体详解 第八章 详解数据在内存中的存储 第九章 C语言指针进阶 第十章 C语言字符函数和字符串函数…

计算机网络原原理学习资料分享笔记---第一章/第四节/第五节(为有梦想的自己加油!)

第四节 计算机网络性能 第四节 计算机网络性能 第四节 计算机网络性能 1 、速率: 速率:网络单位时间内传送的数据量,用以描述网络传输数据的快慢。 速率基本单位:bit/s(位每秒) Kbit/s、 Mbit/s、 Gbit/…

IDEA更换新版本启动没反应

目前安装了新的IDEA(压缩包方式),由于老版本的IDEA还在用,所以并没有删除,但是安装完后发现点击idea64.exe后没有反应,于是网上找了好多方法最后解决了 下面是我的解决过程 新版本:IntelliJIdea2024.1 老版本: Intelli…

GPT-SoVITS声音训练报错ZeroDivisionError: division by zero

环境: GPT-SoVITS-0421 问题描述: GPT-SoVITS声音训练报错ZeroDivisionError: division by zero Traceback (most recent call last):File "E:\GPT-SoVITS-0421\GPT-SoVITS-0421\GPT_SoVITS\s2_train.py", line 600, in <module>main()File "E:\GPT…

Python 函数

文章目录 Python 函数函数的简单定义函数传参详解位置参数关键字参数默认参数任意参数 函数注解 Python 函数 函数的简单定义 def fib(n): # write Fibonacci series up to n"""Print a Fibonacci series up to n."""a, b 0, 1while a <…

C++设计模式:中介者模式(十五)

1、定义与动机 定义&#xff1a;用一个中介对象来封装&#xff08;封装变化&#xff09;一系列的对象交互。中介者使各个对象不需要显示的相互引用&#xff08;编译时依赖 -> 运行时依赖&#xff09;&#xff0c;从而使其耦合松散&#xff08;管理变化&#xff09;&#xff…

# 设计模式 #5.6 Memento备忘录,行为型模式

在您提供的备忘录模式的笔记中&#xff0c;已经很好地概述了该模式的主要概念和参与者。为了进一步优化这些笔记&#xff0c;我们可以确保术语的一致性&#xff0c;并清晰地定义每个组件的作用。以下是优化后的笔记内容&#xff1a; 备忘录模式&#xff08;Memento Pattern&am…

JavaScript进阶部分知识总结

作用域 局部作用域 作用域规定了变量能够被访问的范围&#xff0c;离开了这个范围变量就不能被访问作用域分为&#xff1a;局部作用域和全局作用域 局部作用域分为函数作用域和块作用域 1.函数作用域&#xff1a; 在函数内部声明的变量只能在函数内部被访问&#xff0c;外…