You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by "junjie SHI (JIRA)" <ji...@apache.org> on 2017/06/14 02:39:00 UTC
[jira] [Commented] (FLUME-2960) Support Wildcards in directory name
in TaildirSource
[ https://issues.apache.org/jira/browse/FLUME-2960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16048628#comment-16048628 ]
junjie SHI commented on FLUME-2960:
-----------------------------------
Thanks for [~wenqiao], but I found that the new configuration can not be compatible with the old, I think it is best to be compatible, in my own code I modified the TaildirSource selectByKeys method.
private Table<String, String, String> selectByKeys(Map<String, String> map, String[] keys) {
Table<String, String, String> result = HashBasedTable.create();
for (String key : keys) {
if (map.containsKey(key + FILE_GROUPS_SUFFIX_DIR) && map.containsKey(key + FILE_GROUPS_SUFFIX_FILE)) {
result.put(key, FILE_GROUPS_SUFFIX_DIR.substring(1), map.get(key + FILE_GROUPS_SUFFIX_DIR));
result.put(key, FILE_GROUPS_SUFFIX_FILE.substring(1), map.get(key + FILE_GROUPS_SUFFIX_FILE));
} else if (map.containsKey(key)) {
// translate the old configuration
File fg = new File(map.get(key));
Log.warn("{} is deprecated. Please use the parameter {}",
"filegroups." + key,
new StringBuffer("filegroups.").append(key)
.append(FILE_GROUPS_SUFFIX_DIR)
.append(" and filegroups.")
.append(key)
.append(FILE_GROUPS_SUFFIX_FILE));
result.put(key, FILE_GROUPS_SUFFIX_DIR.substring(1), fg.getParent());
result.put(key, FILE_GROUPS_SUFFIX_FILE.substring(1), fg.getName());
} else {
Preconditions.checkState(map.containsKey(key + FILE_GROUPS_SUFFIX_DIR),
"Mapping for tailing files is empty or invalid: '" + FILE_GROUPS_PREFIX
+ (key + FILE_GROUPS_SUFFIX_DIR) + "'");
Preconditions.checkState(map.containsKey(key + FILE_GROUPS_SUFFIX_FILE),
"Mapping for tailing files is empty or invalid: '" + FILE_GROUPS_PREFIX
+ (key + FILE_GROUPS_SUFFIX_FILE + "'"));
}
}
return result;
}
> Support Wildcards in directory name in TaildirSource
> ----------------------------------------------------
>
> Key: FLUME-2960
> URL: https://issues.apache.org/jira/browse/FLUME-2960
> Project: Flume
> Issue Type: Improvement
> Components: Sinks+Sources
> Affects Versions: 1.7.0
> Reporter: tinawenqiao
> Assignee: tinawenqiao
> Labels: wildcards
> Fix For: 1.8.0
>
> Attachments: FLUME-2960_1.patch, FLUME-2960_2.patch, FLUME-2960_3.patch, FLUME-2960_4.patch, FLUME-2960_5.patch, FLUME-2960_6.patch
>
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> In our log management project, we wan't to track many log files like this:
> /app/dir1/log.*
> /app/dir2/log.*
> ...
> /app/dirn/log.*
> But TaildirSource can't support wildcards in filegroup directory name. The following config is expected:
> a1.sources.r1.filegroups.fg = /app/\*/log.*
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)