我们有来自hdfs中所有服务器的日志文件,其目录格式为yyyy-month/yyyy-month-day/yyyy-month-day-hr-minute-second,通过apache flume传输到hdfs。
示例:partition\u month\u utc=2013-12/partition\u day\u utc=2013-12-01/partition\u minute\u bucket=2013-12-01-00-00/cdc-hpcblx002-03\u logmon\u 1.1385880809507.txt
文件日志格式:
DATE TIME HOSTNAME TRANSACTION_ID**T-START**
EVENT 1
EVENT 2
EVENT 3
…….
EVENT N
DATE TIME HOSTNAME TRANSACTION_ID**T-END**name=value&name2=value2
我要做的是在所有hdfs文件中按事务id执行搜索,并从事务开始(t-start)到事务结束(t-end)提取内容。因此,我的方法是在所有日志文件上创建索引。此索引将具有密钥作为事务id,用于开始事务的文件名和文件块偏移量,以及使用map/reduce程序结束事务的块偏移量。此外,访问速度也必须很快。我对hadoop和索引还比较陌生,所以我的问题是:
1) 有没有更好的替代设计?2) 有没有任何开放源码提供了这个调整?3) 另外,存储索引文件的最佳方法是什么?
任何帮助都将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!