您的位置:首页 > 其它

分布式日志收集框架Flume简介及环境安装部署

2018-10-15 21:11 267 查看
版权声明:个人博客网址 https://29dch.github.io/ GitHub网址 https://github.com/29DCH,欢迎大家前来交流探讨和fork! https://blog.csdn.net/CowBoySoBusy/article/details/83063408

最近在做一个基于Spark Streaming的实时流处理项目,之间用到了Flume来收集日志信息,所以在这里总结一下Flume的用法及原理.
Flume是一个分布式、高可靠、高可用、负载均衡的进行大量日志数据采集、聚合和并转移到存储中的框架, 基于流式架构,容错性强,也很灵活简单,主要用于在线实时的引用分析,只能在Unix环境下运行,底层源码由Java实现.
Flume目前常见的应用场景:日志—>Flume—>实时计算(如Kafka+Storm或者Spark Streaming) 、日志—>Flume—>离线计算(如HDFS、HBase)、日志—>Flume—>ElasticSearch。

Flume架构及核心组件:

multi-agent

更多架构图见用户文档
https://flume.apache.org/FlumeUserGuide.html

Flume主要分为三个组件:Source、Channel、Sink
1、Source负责日志流入,比如从文件、网络、Kafka等数据源流入数据,数据流入的方式有两种,轮训拉取和事件驱动;

2、Channel负责数据聚合/暂存,比如暂存到内存、本地文件、数据库、Kafka等,类似于缓冲区,日志数据不会在管道停留很长时间,很快会被Sink消费掉;

3、Sink负责数据转移到存储,比如从Channel拿到日志后直接存储到HDFS、HBase、Kafka、ElasticSearch等,然后再有如Hadoop、Storm、ElasticSearch之类的进行数据分析或查询。

一个Agent会同时存在这三个组件,Source和Sink都是异步执行的,相互之间不会影响。

要想学得好,官网少不了.https://flume.apache.org/

安装部署:
首先Java环境要配好,JDK1.7或者1.8,配好环境变量等等,这个应该都没问题,不多说了
Flume下载:http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.7.1.tar.gz
自己选择相应版本即可
完成后解压缩,ls看到文件如下:

这里只需要注意bin和conf文件夹即可
现在将flume路径配置到环境变量里面
vi /etc/profile

source /etc/profile
然后输入 echo $FLUME_HOME即可看到flume的路径
/home/zq/apache-flume-1.6.0-cdh5.7.0-bin
开始配置:
依次执行以下命令

cd conf
cp flume-env.sh.template flume-env.sh

修改flume-env.sh文件
添加jdk路径
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64

检测是否安装成功:
查看版本信息

表示已经安装成功

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐