我正在研究Flume,使用Flume Source TAILDIR 将数据从本地目录附加到HDFS。
我的用例是做Delta Load如果新行出现在本地目录的源文件中,那么它将附加在hdfs中。
这是我的Flume Conf文件:
#configure the agent
agent.sources=r1
agent.channels=k1
agent.sinks=c1
agent.sources.r1.type=TAILDIR
agent.sources.r1.positionFile = /home/flume/Documents/taildir_position.json
agent.sources.r1.filegroups=f1
agent.sources.r1.filegroups.f1=/home/flume/Documents/spooldir/
agent.sources.r1.batchSize = 20
agent.sources.r1.writePosInterval=2000
agent.sources.r1.maxBackoffSleep=5000
agent.sources.r1.fileHeader = true
agent.sources.r1.channels=k1
agent.channels.k1.type=memory
agent.channels.k1.capacity=10000
agent.channels.k1.transactionCapacity=1000
agent.sinks.c1.type=hdfs
agent.sinks.c1.channel=k1
agent.sinks.c1.hdfs.path=hdfs://localhost:8020/flume_sink
agent.sinks.c1.hdfs.batchSize = 1000
agent.sinks.c1.hdfs.rollSize = 268435456
agent.sinks.c1.hdfs.writeFormat=Text
运行flume命令时: flume-ng agent -n agent -c conf -f /home/swechchha/Documents/flumereal.conf
我收到加载JSON文件的错误。
答案 0 :(得分:0)
Here是代码。它在第110行崩溃。请确保 flume 用户可以访问该JSON文件并且文件格式正确。
答案 1 :(得分:0)
问题陈述中提到的Flume.conf存在问题。
TAILDIR SOURCE :观察指定的文件,并在检测到新行添加到每个文件后几乎实时拖尾。如果正在写入新行,则此源将重试读取它们,等待写入完成。
虽然在这种情况下编写文件组属性目录可能包含多个文件,但应该提及目录路径/。 filestype。
Method Not Allowed (POST): /my_shipment/
然后运行flume.conf并检查结果是否正常。