Flume的简单介绍即监听端口的使用-01

时间:2024-03-16 15:23:00

1、Flume在集群中扮演的角色
Flume、Kafka用来实时进行数据收集,Spark、Storm用来实时处理数据,impala用来实时查询。
2、Flume框架简介
1.1 Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务,Flume只能在Unix环境下运行。

Flume的简单介绍即监听端口的使用-01

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

角色:
 ** Source
        用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel,这个有点类似于Java IO部分的Channel,它其实就是用来指定数据的来源.比如数据从linux上来的,直接指定linux本地一直读就行了.
** Channel
         用于桥接Sources和Sinks,类似于一个队列。
** Sink
         从Channel收集数据,将数据写到目标源(可以是下一个Source,也可以是HDFS或者HBase)

这三部分组成为Agent
1.4 传输单元
         ** Event
                     Flume数据传输的基本单元,以事件的形式将数据从源头送至目的地
1.5 传输过程
           source监控某个文件,文件产生新的数据,拿到该数据后,将数据封装在一个Event中,并put到channel后commit提交,channel队列先进先出,sink去channel队列中拉取数据,然后写入到hdfs或者HBase中。

工作原理:

它首先会把大量数据流拆分成一个个的Event,每个Event又分为Header和Body,就相当于http的请求头和请求体,source会把拆分好的event一个个的放入channeel中,sink把这些event解码之后存放到最终的目的.

Flume的简单介绍即监听端口的使用-01

hive在操作的时候会在linux本地生成各种操作日志或者各种网站的日志,它会越来越大,导致存不下,需要把它存储到hdfs上,可以自己写个脚本定时上传,也可以使用flume框架来实现.它也可以实现抓包功能,直接把source对接到指定端口上,时间抓取端口传来的信息.

 

https://download.csdn.net/download/kxj19980524/11145564  flume的cdh版本

Flume的简单介绍即监听端口的使用-01

Flume的简单介绍即监听端口的使用-01

Flume的简单介绍即监听端口的使用-01

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

Flume的简单介绍即监听端口的使用-01

Flume的简单介绍即监听端口的使用-01

Flume的简单介绍即监听端口的使用-01

http://flume.apache.org/releases/content/1.5.0/FlumeUserGuide.html

案例1,监听某个端口发送消息

Flume的简单介绍即监听端口的使用-01

 Flume的简单介绍即监听端口的使用-01

# Name the components on this agent
#把agent起个名叫a1,sources叫r1,sinks叫k1,channels叫c1
a1.sources = r1
a1.sinks = k1
a1.channels = c1

#监听数据来源为本地的4444端口
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

#logger是流传输过来解码后的数据
# Describe the sink
a1.sinks.k1.type = logger

#channels阶段以内存的形式保存数据  event数量100
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
 
#把source和sink和channel对接   source可以对接多个channels  sinks只能对接一个channel
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

安装telnet工具   https://download.csdn.net/download/kxj19980524/11145614

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

Flume的简单介绍即监听端口的使用-01

首先判断44444端口是否被占用      $ netstat -an | grep 44444

Flume的简单介绍即监听端口的使用-01

先开启flume先听端口

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

Flume的简单介绍即监听端口的使用-01

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

Flume的简单介绍即监听端口的使用-01

这边就能监听到发送的消息了.

Flume的简单介绍即监听端口的使用-01