Flume简述and快速入门(精创)

第一章:flume概述

1.1flume定义

  • flume是Cloudera提供的一个高可用,高可靠,分布式的海量日志采集,聚合和传输的系统。
  • flume基于流式框架,灵活简单。
    总体描述

1.2flume基础架构

  • 官网:flume官网
    flume基础架构
  • 数量级 N (Source) -> 1(Channel) -> N (Slink);一个channel可以对应多个Slink,一个Slink只能有一个Channel。

1.2.1 Agent (通常简写a)

  • Agent是一个jvm进程,它以事件的形式将数据从源头送至目的地。
  • Agent主要有三个部分组成:Source,Channel,Slink。

1.2.2 Source (通常简写r)

  • Source是负责接受数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的数据,包括:avro、thrift、exec、jms、spooling directory、netcat、sequence、generator、syslog、http、legacy。

1.2.3 Sink(通常简写k)

  • Sink 不断轮询Channel中的事件且批次地移除他们,并将这些事件批量的写入到储存或索引系统,或者被发送到另一个Flume Agent。
  • Sink组件目的地包括hdfsloggeravor、thrift、ipc、fileHBase、solr 自定义

1.2.4 Channel(通常简写c)

  • Channel是位于Source和Slink之间的缓冲区。因此,channel允许Source和Slink运行在不同的速率上。Channel是线程安全的,可以同时处理几个Source的写入操作和几个Sink的读取操作。
  • Flume自带的Channel:Memory Channel和file Channel 以及kafka Channel。
  • Memory Channel:是内存中的队列。Memory Channel在不需要关注数据丢失的情景下适用。如果关心数据丢失,那么Memory Channel就不应该适用,因为程序死亡、机器宕机或者重启都会导致数据丢失。
  • File Channel:将所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。

1.2.5 Event(常识)

  • 传输单元,flume数据传输的基本单元,以Event的形式将数据从源头送至目的地。Event由Header和Body两部分组成,Header用来存放该Event的一些属性,为k-v结构,Body用来存放该条数据,形式为字节数据。
    Event

第二章 flume安装配置简单运用

2.1Flume安装部署(仅需配置 jdk 即可)

2.1.1安装地址

1.Flume官网地址
   Flume官网   http://flume.apache.org/
2.Flume文档地址
   Flume文档  http://flume.apache.org/documentation.html
3.Flume下载地址(建议保存此代理)
  下载Flume  http://archive.apache.org/dist/flume/

2.1.2安装部署

1.将apache-flume-1.7.0-bin.tar.gz 上传到 linux 的 /opt/SoftWare下
    cd /opt/SoftWare/
    rz
2.解压
    tar -zxvf apache-flume-1.7.0-bin.tar.gz
3.修改名字
    mv apache-flume-1.7.0-bin flume
4.将 conf 下的 flume-env.sh.template 文件修改为 flume-env.sh 并添加jdk信息
     mv flume-env.sh.template flume-env.sh
     vi flume-env.sh
     添加你的jdk export JAVA_HOME=/opt/SoftWare/jdk1.8.0.201

2.2Flume入门案例(参考官网)

2.2.1 监控端口数据官方案例

1.需求
     使用 Flume 监听一个端口,收集该端口数据,并打印到控制台。

2.需求分析
     此过程中source是端口,控制台是Slink
监控端口数据到控制台
3.实现

  • 安装 netcat工具
    yum -y install nc
  • 判断44444端口是否被占用
    netstat -tunlp | grep 44444
  • 创建一个agent,并配置该文件,配置内容参考官网案例
    添加内容如下:
    #Name the components on this agent
    a1.sources = r1
    a1.sinks = k1
    a1.channels = c1
    # Describe/configure the source 配置来源类型ip端口
    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

4.开启Flume进行端口监听

  • 官方版(新学者)
    bin/flume-ng agent --conf conf/ --name a1 --conf-file flume-netcat-logger.conf -Dflume.root.logger=INFO,console
  • 简写版
    bin/flume-ng agent -c conf/ -n a1 -f flume-netcat-logger.conf -Dflume.root.logger=INFO,console
  • 解读上面参数
    - -conf 或 - c:表示配置文件储存在的目录 一般是安装路径下的conf文件
    - -name 或 - name:表示给agent起的名字是a1 在上个配置文件中同一个agent的名字
    - - conf - file 或 - f:本次启动读取的配置文件的路径
    - Dflume.root.logger=INFO,console:- D表示flume运行时动态修改flume.root.logger参数属性值,并将控制台日志打印级别设置为INFO级别。

5.使用netcat向本机44444端口发送数据

  • 它会自动换行,输入内容即可
    nc localhost 44444

6.flume监听端口数据即可

谢谢大家阅读,由于小编能力有限,编写有异议请联系我邮箱:1984418344.@qq.com,或者直接评论加私信,反正我也不看。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值