20分钟 玩转Flume

### Apache Flume

- 概述

  - flume是一款大数据中海量数据采集传输汇总的软件。特别指的是数据流转的过程,或者说是数据搬运的过程。把数据从一个存储介质通过flume传递到另一个存储介质中。

- 核心组件

  - source :用于对接各个不同的数据源
  - sink:用于对接各个不同存储数据的目的地(数据下沉地)
  - channel:用于中间临时存储缓存数据

- flume运行机制

  - flume本身是java程序 在需要采集数据机器上启动 ----->agent进程

  - agent进程里面包含了:source  sink  channel

  - 在flume中,数据被包装成event 真是的数据是放在event body中

    event是flume中最小的数据单元

- 运行架构

  - 简单架构

    只需要部署一个agent进程即可

  - 复杂架构

    多个agent之间的串联  相当于大家手拉手共同完成数据的采集传输工作

    在串联的架构中没有主从之分 大家的地位都是一样的

------

- flume的安装部署

  - 在conf/flume-env.sh  导入java环境变量

    保证flume工作的时候一定可以正确的加载到环境变量

- flume开发步骤

  - 中的就是根据业务需求编写采集方案配置文件

  - 文件名见名知意  通常以souce——sink.conf

  - 具体需要描述清楚sink source channel组件配置信息 结合官网配置

  - 启动命令

    ```
    bin/flume-ng agent --conf conf --conf-file conf/netcat-logger.conf --name a1 -Dflume.root.logger=INFO,console  命令完整版
    
    bin/flume-ng agent -c ./conf -f ./conf/spool-hdfs.conf -n a1 -Dflume.root.logger=INFO,console  命令精简版
    
    --conf指定配置文件的目录
    --conf-file指定采集方案路径
    --name  agent进程名字 要跟采集方案中保持一致
    ```

---

- flume的负载均衡

  - 所谓的负载均衡 用于解决一个进程或者程序处理不了所有请求 多个进程一起处理的场景
  - 同一个请求只能交给一个进行处理 避免数据重复
  - 如何分配请求就涉及到了负载均衡的算法:轮询(round_robin)  随机(random)  权重

- flume串联跨网络传输数据

  - avro sink  

  - avro source

    使用上述两个组件指定绑定的端口ip 就可以满足数据跨网络的传递 通常用于flume串联架构中

- flume串联启动

  通常从远离数据源的那一级开始启动

----

- flume failover
  - 容错又称之为故障转移  容忍错误的发生。
  - 通常用于解决单点故障 给容易出故障的地方设置备份
  - 备份越多 容错能力越强  但是资源的浪费越严重

----

- 静态拦截器

  ```
  如果没有使用静态拦截器
  Event: { headers:{} body:  36 Sun Jun  2 18:26 }
  
  使用静态拦截器之后 自己添加kv标识对
  Event: { headers:{type=access} body:  36 Sun Jun  2 18:26 }
  Event: { headers:{type=nginx} body:  36 Sun Jun  2 18:26 }
  Event: { headers:{type=web} body:  36 Sun Jun  2 18:26 }
  ```

  后续在存放数据的时候可以使用flume的规则语法获取到拦截器添加的kv内容

  ```
  %{type}
  ```

- 模拟数据实时产生

  ```
  while true; do echo "access access....." >> /root/logs/access.log;sleep 0.5;done
  while true; do echo "web web....." >> /root/logs/web.log;sleep 0.5;done
  while true; do echo "nginx nginx....." >> /root/logs/nginx.log;sleep 0.5;done
  ```

----

- 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值