【Flume教程二】Flume采集到落地高可用HA配置(Flume to Kafka to HDFS)

【Flume教程二】Flume采集到落地高可用HA配置(Flume to Kafka to HDFS)

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方的能力。这里介绍一下《Flume高可用采集日志到kafka集群然后写入到HDFS的解决方案》。转载务必注明:https://cpp.la/472.html

Flume-HA机器环境

为了节省资源,单组Flume agent 和 Flume Collector 放在了同一台机器。

  • Nginx SLB集群一个
  • 后端API服务 && Flume agent 机器
  • Flume Collector && To Kafka 机器
  • Kafka集群一个
  • Flume agent From Kafka 机器
  • Flume Collector && to HDFS机器

详细机器功能划分和机器IP如下

  • API-Service-A:10.10.10.1(后端服务A,从Nginx分发过来的日志)
  • API-Service-B:10.10.10.2(后端服务B,从Nginx分发过来的日志)
  • Flume-Agent-A:10.10.10.1(采集AgentA,采集后端服务A的落地日志)
  • Flume-Agent-B:10.10.10.2(采集AgentB,采集后端服务B的落地日志)
  • Flume-Collector-A:10.10.10.1(Flume Collector Server  and to Kafka A 机)
  • Flume-Collector-B:10.10.10.2(Flume Collector Server and to Kafka B机)
  • Flume-Agent-M:10.10.10.3(Kafka消费者M机)
  • Flume-Agent-N:10.10.10.4(Kafka消费者N机)
  • Flume-Collector-M:10.10.10.3(Flume Collector Server and to HDFS M机)
  • Flume-Collector-N:10.10.10.4(Flume Collector Server and to HDFS N机)

Flume-HA架构图

Flume-HA架构特点

该架构具有高可用,高冗余,高性能,可任意扩展任何节点提高吞吐量的特点:

1、允许API WEB  SEVICE任意一台主机宕机。(10.10.10.1 和 10.10.10.2)
2、允许flume collector A机和B机任意一台主机宕机。
3、kafka cluster 本身为高可用集群,不存在宕机问题。
4、允许flume agent M机和flume agent N机消费者任意一台主机宕机。
5、允许flume collector M机和flume collector N机任意一台主机 宕机。
6、API WEB SERVICE、Flume Collector A_B_HA集群、KAFKA、FLUME Agent M_N_Agent、Flume Collector M_N_HA集群各个节点均支持横向扩展。

Flume-HA详细配置

Flume-Agent-A机器(api A 日志 ,flume采集到flume collector ha A-B)

Flume-Agent-B机器(api B 日志 ,flume采集到flume collector ha A-B)

Flume-Collector-A机器 (Flume Collector HA A ,flume采集到kafka)

Flume-Collector-B机器(Flume Collector HA B ,flume采集到kafka)

Flume-Agent-M机器(Kafka 消费者 M,flume采集到flume collector ha M-N)

Flume-Agent-N机器(Kafka 消费者 N ,flume采集到flume collector ha M-N)

Flume-Collector-M机器(Flume Collector HA M,flume写入到HDFS)

Flume-Collector-N机器(Flume Collector HA N,flume写入到HDFS)

Flume to HDFS NameNode HA 解决方案

直接把core-site.xml和hdfs-site.xml拷贝到flume的conf目录下 然后flume to hdfs配置文件中如下配置就可以了:

a1.sinks.k1.hdfs.path = /flume/api_dd/%Y-%m-%d

Flume自定义JDK路径

一、进入flume/conf文件夹下,cp flume-env.sh.template to flume-env.sh
二、vim flume-env.sh ,尾部追加jdk路径即可 export JAVA_HOME=/opt/jdk1.8

Flume启动命令

Flume-HA总结

Flume Source 和 Sinks 犹如管道,支持并联、串联等各种冗余。利用其特性可以轻松组合出支持高可用,大吞吐量的大数据流。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注