日志采集框架Flume的安装及使用
1.Flume介绍
1.1.Flume概述
1 | Flume是一个分布式、可靠、和高可用(旧版Flume og才有高可用)的海量日志采集、传输和聚合的系统。 |
1.2.运行机制
1 | 1、Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形成 |

1.3.Flume采集系统结构图
1.3.1.简单结构
1 | 单个agent采集数据 |

1.3.2.复杂结构
1 | 多级agent之间串联 |

2.安装Flume
2.1.解压Flume压缩文件到指定目录
1 | [root@node02 software]# tar -zxvf apache-flume-1.6.0-bin.tar.gz -C /opt/modules/ |
2.2.文件重命名
1 | [root@node02 modules]# mv apache-flume-1.6.0-bin flume-1.6.0 |
2.3.配置Flume环境变量
1 | [root@node02 ~]# ls -a |

1 | export FLUME_HOME=/opt/modules/flume-1.6.0 |

2.4.使配置生效
1 | [root@node02 ~]# source .bash_profile |
2.5.采集文件到HDFS
1 | 采集需求:比如业务系统使用log4j生成的日志,日志内容不断增加, |
2.5.1.配置Flume配置文件
1 | [root@node02 flume-1.6.0]# vi conf/tail-hdfs.conf |

1 | # Name the components on this agent |

2.6.写数据到指定的文件中
1 | [root@node02 flume-1.6.0]# mkdir -p /home/hadoop/log |
1 | while true |

1 | [root@node02 flume-1.6.0]# tail -f /home/hadoop/log/test.log |
2.7.启动Flume日志收集
1 | 注意:检查Hadoop HDFS是否启动,如没有启动,则启动 |


2.8.通过Hadoop Web UI查看Flume在HDFS上创建的目录
1 | [root@node02 hadoop-2.5.1]# ./bin/hdfs dfs -ls -R /flume |

3.Flume多个agent连接

1 | 从tail命令获取数据发送到avro端口(tail->avro) |
3.1.在node03上安装Flume
3.2.配置node02上的Flume
1 | 从tail命令获取数据发送到avro端口 |
1 | # Name the components on this agent |
3.2.1.运行node02上的Flume,发送数据给node03
1 | [root@node02 flume-1.6.0]# ./bin/flume-ng agent -c conf -f conf/tail-avro.conf -n a1 |

3.3.配置node03上的Flume
1 | 配置一个avro源来中继数据,发送外部存储/hdfs(avro->log) |
1 | # Name the components on this agent |
3.3.1.运行node03上的Flume,接收来自node02的数据
1 | [root@node03 flume-1.6.0]# ./bin/flume-ng agent -c conf -f conf/avro-hdfs.conf -n a1 -Dflume.root.logger=INFO,console |

1 | 可以看到4141端口有监听 |


3.3.发送数据
本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2016/02/12/日志采集框架Flume的安装及使用/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
知识 & 情怀 | 二者兼得