Hadoop 配置水槽时发生通道锁定错误';使用文件通道创建多个源

Hadoop 配置水槽时发生通道锁定错误';使用文件通道创建多个源,hadoop,flume,flume-ng,Hadoop,Flume,Flume Ng,使用文件通道为代理程序配置多个源引发我锁定错误。下面是我的配置文件 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/lo

使用文件通道为代理程序配置多个源引发我锁定错误。下面是我的配置文件

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]

但当我使用内存通道时。它工作正常。

我的gues是您需要为每个通道指定不同的
dataDirs
属性,因为它们都使用默认值我的gues是您需要为每个通道指定不同的
dataDirs
属性,因为它们都使用

默认情况下,文件通道使用检查点和数据的路径 如上所述,位于用户主页内的目录。作为一个 如果在中有多个文件通道实例处于活动状态,则返回结果 代理,只有一个将能够锁定目录并导致 其他通道初始化失败。因此,有必要 您最好提供指向所有已配置通道的显式路径 在不同的磁盘上

通道的配置应为

#channels
a1.channels.c1.type=file
a1.channels.c1.checkpointDir=/home/cloudera/alpha/001
a1.channels.c1.dataDirs=/mnt/alpha_data/

a1.channels.c3.type=file
a1.channels.c3.checkpointDir=/home/cloudera/beta/001
a1.channels.c3.dataDirs=/mnt/beta_data/
dataDirs
属性默认为
/home/user/.flume/file channel/data
路径

默认情况下,文件通道使用检查点和数据的路径 如上所述,位于用户主页内的目录。作为一个 如果在中有多个文件通道实例处于活动状态,则返回结果 代理,只有一个将能够锁定目录并导致 其他通道初始化失败。因此,有必要 您最好提供指向所有已配置通道的显式路径 在不同的磁盘上

通道的配置应为

#channels
a1.channels.c1.type=file
a1.channels.c1.checkpointDir=/home/cloudera/alpha/001
a1.channels.c1.dataDirs=/mnt/alpha_data/

a1.channels.c3.type=file
a1.channels.c3.checkpointDir=/home/cloudera/beta/001
a1.channels.c3.dataDirs=/mnt/beta_data/
dataDirs
属性默认为
/home/user/.flume/file channel/data
路径