为代理使用文件通道抛出锁定错误配置多个源。下面是我的配置文件。
a1.sources = r1 r2
a1.sinks = k1 k2
a1.channels = c1 c3
# sources
a1.sources.r1.type=netcat
a1.sources.r1.bind=localhost
a1.sources.r1.port=4444
a1.sources.r2.type=exec
a1.sources.r2.command=tail -f /opt/gen_logs/logs/access.log
# sinks
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path=/flume201
a1.sinks.k1.hdfs.filePrefix=netcat-
a1.sinks.k1.rollInterval=100
a1.sinks.k1.hdfs.fileType=DataStream
a1.sinks.k1.hdfs.callTimeout=100000
a1.sinks.k2.type=hdfs
a1.sinks.k2.hdfs.path=/flume202
a1.sinks.k2.hdfs.filePefix=execCommand-
a1.sinks.k2.rollInterval=100
a1.sinks.k2.hdfs.fileType=DataStream
a1.sinks.k2.hdfs.callTimeOut=100000
# channels
a1.channels.c1.type=file
a1.channels.c1.checkpointDir=/home/cloudera/alpha/001
a1.channels.c3.type=file
a1.channels.c3.checkpointDir=/home/cloudera/beta/001
# bind r1 c1 k1
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
a1.sources.r2.channels=c3
a1.sinks.k2.channel=c3
我在犯错误
Channel closed [channel=c3]. Due to java.io.IOException: Cannot lock /home/cloudera/.flume/file-channel/data. The directory is already locked. [channel=c3]
但是当我使用记忆通道的时候。工作正常。
2条答案
按热度按时间7bsow1i61#
我的问题是你需要指定不同的
dataDirs
属性,因为它们都使用默认值gkl3eglg2#
从文件中
默认情况下,文件通道使用上述用户主页中的检查点和数据目录的路径。因此,如果代理中有多个活动的文件通道示例,则只有一个示例能够锁定目录并导致另一个通道初始化失败。因此,有必要提供指向所有已配置通道的显式路径,最好是在不同的磁盘上。
通道的配置应为,
这个
dataDirs
属性默认为/home/user/.flume/file-channel/data
路径。