Flume学习笔记

从阅读官网上的用户指南来学习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.

从官方的描述,我们得知Flume是一个用于高效收集、聚合和移动大量日志数据的分布式、可靠的、可用的服务。它有一个简单而灵活的基于数据流的结构。它具有可调的可靠性机制和许多故障转移和恢复机制,具有强大的容错能力。它用一个简单的可扩展数据模型,能够在线分析应用程序。

 

一、安装flume

1)从官网上得知,安装flume需要JDK

2)从http://archive.cloudera.com/cdh5/cdh/5/下载flume-ng-1.6.0-cdh5.7.0.tar.gz
 

wget http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.7.0.tar.gz 下载安装包
tar -zxvf flume-ng-1.6.0-cdh5.7.0.tar.gz -C /home/app 解压flume安装包,用-C指定安装位置

3)为方便使用,我们将flume配置到环境变量

vi ~/.bash_profile
添加如下内容
export FLUME_HOME=/home/app/apache-flume-1.6.0-cdh5.7.0-bin
export PATH=$FLUME_HOME/bin:$PATH

二、Flume配置文件修改,$FLUME_HOME/conf目录下的flume-env.sh

cp flume-env.sh.templata flume-env.sh  #复制一份模板

vi flume-env.sh 

将下图内容改为java环境变量的地址

三、使用Flume从指定网络端口采集数据输出到控制台

阅读官网可知使用flume启动一个agent,需要用到一个指定包含source、channel、sink的配置文件,使用flume的关键就是写配置文件

A)配置Soucre   B)配置Channel   C)配置Sink    D)关联以上三个组件

1)flume官方案例


在conf目录下新建example.conf内容从官网copy如下

# example.conf: A single-node Flume configuration

# Name the components on this agent 第一步先给agent的组件起名字
#sources、sinks、channels说明一个agent可以有多个source、sink、channel
a1.sources = r1  #a1是agent的名字   r1是sources的名字
a1.sinks = k1    #k1是sinks的名字
a1.channels = c1  #c1是channels的名字

# Describe/configure the source   配置agent名称为r1的source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444      #监听44444端口

# Describe the sink  配置agent名称为k1的sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory  配置agent名称为c1的channel
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     #把source r1的channel指定为c1
a1.sinks.k1.channel = c1        #把sink   k1的channel指定为c1 

配置文件编辑好之后从官网copy启动命令

flume-ng agent \
--conf $FLUME_HOME/conf \
--conf-file $FLUME_HOME/conf/example.conf \
--name a1 \
-Dflume.root.logger=INFO,console


flume-ng agent \
--conf $FLUME_HOME/conf \   fluem配置文件路径
--conf-file $FLUME_HOME/confexample.conf \ 启动agent需要的配置文件
--name a1 \    agent名字
- Dflume.root.logger=INFO,console   输出内容到控制台

flume启动之后可以用命令telnet 配置文件中的端口来测试

telnet localhost 44444       PS:CTRL+]键,这时会强制退到telnet命令界面下,再用quit可退出telnet

随便输入一些数据回车,会看到启动的flume agent将接受到的内容输出到控制台

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值