1. 程式人生 > >flume實戰應用解析

flume實戰應用解析

it

業務背景:

將java項目生成的日誌文件分門別類的輸出給flume


第一步:

將日誌輸出到flume中,在java程序中編寫log4j,並指定輸出到哪個flume服務器中

log4j.rootLogger=INFO,flume
log4j.appender.flume=org.apache.flume.clients.log4jappender.Log4jAppender
log4j.appender.flume.Hostname=192.168.13.132
log4j.appender.flume.Port=41414


第二步:

import java.util.Date;
import org.apache.log4j.Logger;
public class flume {
public static final Logger logger = Logger.getLogger(flume.class);
public static void main(String[] args) throws Exception {
 while(true) {
 logger.info(String.valueOf(new Date().getTime()));
 Thread.sleep(2000);
}
}
}


第三步:

參考

案例15:avro 負載均衡的方式動態獲取文件中內容啟動132和133,也可以指定優先級,參照案例17:avro 負載均衡加優先級配置


比如將三種不同日誌分別生成到不同的服務器上比如 132生成的是access 133生成的是ugcheader 就可以了


log4j.rootLogger=INFO,access ,ugcheader 
log4j.appender.access =org.apache.flume.clients.log4jappender.Log4jAppender
log4j.appender.access .Hostname=192.168.13.132
log4j.appender.access .Port=41414


log4j.rootLogger=INFO,access ,ugcheader 
log4j.appender.ugcheader =org.apache.flume.clients.log4jappender.Log4jAppender
log4j.appender.ugcheader .Hostname=192.168.13.133
log4j.appender.ugcheader .Port=41414



flume實戰應用解析