Flume基础

               Flume

  • Flume是什么

Flume在集群中扮演的角色

Flume、Kafka用来实时进行数据收集,Spark、Storm用来实时处理数据,impala用来实时查询。

 

Flume框架简介

1.1 Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务,Flume只能在Unix环境下运行。

1.2 Flume基于流式架构,容错性强,也很灵活简单,主要用于在线实时分析。

 

Flume的核心部件

Client:Client生产数据,运行在一个独立的线程。

Event: 一个数据单元,消息头和消息体组成。(Events可以是日志记录、 avro 对象等。)
Flow: Event从源点到达目的点的迁移的抽象。
Agent: 一个独立的Flume进程,包含组件Source、 Channel、 Sink。(Agent使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含

      多个sources和sinks。)
Source: 数据收集组件。(source从Client收集数据,传递给Channel)
Channel: 中转Event的一个临时存储,保存由Source组件传递过来的Event。(Channel连接 sources 和 sinks ,这个有点像一个队列。)
Sink: 从Channel中读取并移除Event, 将Event传递到FlowPipeline中的下一个Agent(如果有的话)(Sink从Channel收集数据,运行在一个独立线程。)

 

 

  • Flume的运行原理

Flume 运行的核心是 Agent。Flume以agent为最小的独立运行单位。一个agent就是一个JVM。它是一个完整的数据收集工具,含有三个核心组件,分别是source、 channel、 sink。通过这些组件, Event 可以从一个地方流向另一个地方,如下图所示。

Flume基础_第1张图片

Flume基础_第2张图片

  • 安装和配置Flume
    1. 解压安装包到指定的路径

[hadoop@hadoop1 ~]$ tar -zxvf apache-flume-1.8.0-bin.tar.gz -C apps/

 

 

    1. 修改配置文件

[hadoop@hadoop1 conf]$ cp flume-env.sh.template flume-env.sh

    1. 案例

 案例一:Flume监听端口,输出端口数据。

创建Flume Agent配置文件flume-telnet.conf

# 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

5.1.2、安装telnet工具

$ sudo rpm -ivh telnet-server-0.17-59.el7.x86_64.rpm

$ sudo rpm -ivh telnet-0.17-59.el7.x86_64.rpm

5.1.3、首先判断44444端口是否被占用

$ netstat -an | grep 44444

5.1.4、先开启flume先听端口

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

5.1.5、使用telnet工具向本机的44444端口发送内容。

$ telnet localhost 44444

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Flume基础)