Flume 简介

  • 官网: http://flume.apache.org/

  • Flume 可视为数据的搬运工,一般用来收集日志,将日志数据从A->B

优势

官网对Flume的介绍如下:

Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic application.

直白点呢,可以分为以下几点:

  • 分布式、可依赖、可靠地服务
  • 可以有效地收集、聚合、移动大量的日志数据
  • 基于流数据走向的简单且灵活的架构(Hadoop还有Scala 这些官网都特别喜欢用easy\simple蒙骗我们这些萌新)
  • 可容错的
  • 故障转移和恢复机制
  • 简单的可扩展数据模型,允许在线分析应用程序

对比

除了Flume 之外还有很多其他的日志抽取工具,比如:ELK(ES、Logstash、Kibana)、Beats,DataX(阿里)、Chukwa(2016不更新了)、MySql binlog、OGG、fluentd。

版本

  • 我目前试用的是cdh5.16.2版本

  • 文件后缀有ng,ng: new 版本

    ​ < – > og: 旧版本

源码

  • https://github.com/cloudera/
  • https://github.com/cloudera/flume-ng
  • github.com/apache/flume

可用 mvn clean package -DskipTests 编译

Flume 安装

jdk安装和配置

https://blog.csdn.net/MaggieCN0622/article/details/119992302?spm=1001.2014.3001.5502

下载Flume 安装包

  • apache 版本 http://archive.apache.org/dist/flume/

  • flume-ng-1.6.0-cdh5.16.2.tar 【失效请私信我】

    https://pan.baidu.com/s/1g5WZXPZ2whkkCiXxnerdug jxri

解压

tar -xzvf flume-ng-1.6.0-cdh5.16.2.tar -C ../app

软连接目录

cd ../app
ln -s flume-ng-1.6.0-cdh5.16.2 flume

配置环境变量

cd  ## 回到根目录
###更改.bashrc
vim .bashrc
export FLUME_HOME=/home/hadoop/app/flume
export PATH=$FLUME_HOME/bin:$PATH
esc : wq 保存
#####生效
source .bashrc

配置文件(配置JAVA_HOME)

cd $FLUME_HOME/conf
cp flume-env.sh.template flume-env.sh
vim flume-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_181 ## 跟你的JAVA_HOME 位置一样,如果不知道的,可以which java 看一下

lib

  • Flume使用时就是编写配置文件,工作中要经常二次开发,开发之后打的jar包都是丢在lib目录下的