flume的安装与配置

Posted Exclusive_Sea

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flume的安装与配置相关的知识,希望对你有一定的参考价值。

一.安装部署

在安装前先确保Hadoop是启动状态。

1.下载flume安装包

自行去官网下载即可Download — Apache Flume,我下载的是flume1.11.0

2.上传安装包并解压

 上传后解压

tar -zxvf apache-flume-1.11.0-bin.tar.gz -C /opt/server

3.进入flume目录,修改conf下的flume-env.sh,配置JAVA_HOME

cd /opt/server/apache-flume-1.11.0-bin/conf
# 先复制一份flume-env.sh.template文件
cp flume-env.sh.template flume-env.sh
# 修改
vim flume-env.sh
export JAVA_HOME=/opt/server/jdk1.8.0_212

 二.采集nginx日志数据至HDFS

1.安装Nginx

yum install epel-release
yum update
yum -y install nginx

以下是Nginx的一些基本命令:

systemctl start nginx #开启nginx服务
systemctl stop nginx #停止nginx服务
systemctl restart nginx #重启nginx服务

Nginx服务器默认占用80端口,开启Nginx后去浏览器输入虚拟机ip:80查看如果有如下页面说明开启

 网站日志文件位置:

cd /var/log/nginx

 可访问文件位置查看日志:

 2.编写配置文件

将flume下的lib文件夹下的guava-11.0.2.jar删除以兼容Hadoop3.1.3,flume1.11.0

cd /opt/server/apache-flume-1.11.0-bin/lib

然后将Hadoop中的jar包复制到flume文件夹中,这里根据自己的flume位置和Hadoop位置进行修改

cp /opt/hadoop/hadoop/share/hadoop/common/*.jar /opt/server/apache-flume-1.11.0-bin/lib
cp /opt/hadoop/hadoop/share/hadoop/common/lib/*.jar /opt/server/apache-flume-1.11.0-bin/lib
cp /opt/hadoop/hadoop/share/hadoop/hdfs/*.jar /opt/server/apache-flume-1.11.0-bin/lib

有需要覆盖的jar包直接按y覆盖即可

接下来创建配置文件,taildir-hdfs.conf用于监控 /var/log/nginx 目录下的日志文件

先cd /opt/server/apache-flume-1.11.0-bin/conf

然后vim taildir-hdfs.conf粘贴以下内容

a3.sources = r3
a3.sinks = k3
a3.channels = c3
# Describe/configure the source
a3.sources.r3.type = TAILDIR
a3.sources.r3.filegroups = f1
# 此处支持正则
a3.sources.r3.filegroups.f1 = /var/log/nginx/access.log
# 用于记录文件读取的位置信息
a3.sources.r3.positionFile = /opt/server/apache-flume-1.11.0-bin/tail_dir.json
# Describe the sink
a3.sinks.k3.type = hdfs
a3.sinks.k3.hdfs.path = hdfs://server:8020/user/tailDir
a3.sinks.k3.hdfs.fileType = DataStream
# 设置每个文件的滚动大小大概是 128M,默认值:1024,当临时文件达到该大小(单位:bytes)时,滚动
成目标文件。如果设置成0,则表示不根据临时文件大小来滚动文件。
a3.sinks.k3.hdfs.rollSize = 134217700
# 默认值:10,当events数据达到该数量时候,将临时文件滚动成目标文件,如果设置成0,则表示不根据
events数据来滚动文件。
a3.sinks.k3.hdfs.rollCount = 0
# 不随时间滚动,默认为30秒
a3.sinks.k3.hdfs.rollInterval = 10
# flume检测到hdfs在复制块时会自动滚动文件,导致roll参数不生效,要将该参数设置为1;否则HFDS文
件所在块的复制会引起文件滚动
a3.sinks.k3.hdfs.minBlockReplicas = 1
# Use a channel which buffers events in memory
a3.channels.c3.type = memory
a3.channels.c3.capacity = 1000
a3.channels.c3.transactionCapacity = 100
# Bind the source and sink to the channel
a3.sources.r3.channels = c3
a3.sinks.k3.channel = c3

hdfs://server:8020/user/tailDir中的server改为自己的主机名,虚拟机可以改为自己的虚拟机ip地址

三.查看自己的版本并启动flume

1.查看版本

首先

cd /opt/server/apache-flume-1.11.0-bin

然后输入以下命令查看flume版本

bin/flume-ng version

若可以显示如下界面,则说明安装成功

 2.启动flume

同样是在/opt/server/apache-flume-1.11.0-bin下输入

bin/flume-ng agent -c ./conf -f ./conf/taildir-hdfs.conf -n a3-Dflume.root.logger=INFO,console

日志抽取框架 flume 简介与安装配置

  • 一:flume 简介与功能
  • 二:flume 安装与配置与简单测试

一:flume 的简介与功能架构

1.1 flume 的简介:

 1.1.1 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

1.1.2当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。

1.2 flume 的功能:

  1.2.1 flume 是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集,聚集,移动信息的服务。flume 仅支持在linux上面运行.

  1.2.2 flume 是一个基于流式数据,非常简单(就写一个配置文件就可以),灵活的架构,一个健壮的,容错的,简单的扩展数据模型用于在线上实时应用分析, 他的表现为:写一个source,channel,sink 之后一条命令就能够操作成功了。

  1.2.3 flume , kafka 实时进行数据收集,spark , storm 实时去处理,impala 实时去查询。

1.3 flume 结构图 :

技术分享图片

1.4 flume 的结构图解释:

 flume-ng 只有一个角色的节点:agent 的角色,agent 有source,channel, sink 组成。

技术分享图片

 1. Event 是flume数据传输的基本单元
 2. flume 以事件的形式将数据从源头传送到最终的目的
 3. Event 由可选的header 和加载有数据的一个byte array 构成
   3.1 载有的数据对flume 是不透明的
   3.2 header 是容纳凌key-value字符串对的无序集合,key 在集合内饰唯一的。
   3.3 header 可以在上下文路由中使用扩展

1.5 Channel/Event/Sink 图:

技术分享图片

source 监控某个文件,将数据拿到,封装在一个event当中,并put/commit 到chennel 当中,chennel 是一个队列,队列的有点事先进先出,放好后尾部一个个 event 出来,sink 主动去从chennel 当中去拉数据,sink 在把数据写到某个地方,比如hdfs 上去。

二: flume 的安装与配置

2.1 flume 的安装:

下载flume的cdh 版本:flume-ng-1.5.0-cdh5.3.6.tar.gz
安装flume-ng:

tar -zxvf flume-ng-1.5.0-cdh5.3.6.tar.gz 
mv apache-flume-1.5.0-cdh5.3.6-bin yangyang/flume 

2.2 生成配置文件:

cd yangyang/flume/conf
cp -p flume-env.sh.template flume-env.sh
cp -p flume-conf.properties.template flume-conf.properties
更改 flume-env.sh 增加java 的环境
export JAVA_HOME=/home/hadoop/yangyang/jdk

技术分享图片

2.3 安装 telnet 的包:

yum install -y telnet-*
rpm -ivh netcat-1.10-891.2.x86_64.rpm

2.4 创建test-conf.properties 文件处理

cd /home/hadoop/yangyang/flume/
cp -p flume-conf.properties test-conf.properties
echo "" > test-conf.properties 清空文件

vim test-conf.properties

# example.conf: A single-node Flume configuration

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

运行一个agent 处理

cd /home/hadoop/yangyang/flume

bin/flume-ng agent --conf conf --conf-file conf/test-conf.properties --name a1 -Dflume.root.logger=INFO,console

技术分享图片
技术分享图片

telnet 登陆处理:

telnet localhost 44444

技术分享图片
技术分享图片

以上是关于flume的安装与配置的主要内容,如果未能解决你的问题,请参考以下文章

大数据高级开发工程师——数据采集框架Flume

大数据篇:flume+kafka+spark stream+hbase做日志收集

大数据篇:flume+kafka+spark stream+hbase做日志收集

大数据日志采集工具Flume

大数据集群组件之Flume的配置及其使用

视频干货Flume系列|05-Flume配置格式