Flume知识点讲解

 Flume知识点讲解主要从以下几个问题及解答展开

 1、Flume概述

 Flume是Cloudera提供的一个高可用的、分布式的海量日志采集、聚合和传输的系统,后被捐献给开源软件基金会组织Apache,现已发展成为其顶级项目。其分为两个版本:初始发行版Flume-OG和重构版本Flume-NG。这里介绍一下两者的区别:

1)OG版本中有Master的概念、依赖于Zookeeper,而NG版本中摒弃了Master的概念、 取消了对Zookeeper达到依赖

2)OG和NG版本中Agent功能不一样,组成结构也不一样,OG版本中的Agent用于采集数据,并将数据传输给collector,而NG版本中去掉了collector

3)NG是插件化的,一部分面对用户,工具或系统·开发人员

4)NG使用Thrift、Avro Flume sources可以从Flume0.9.4发送events到Flume1.x

 2、什么是Agent,组件有哪些
 上面提到过Agent,由于Flume-NG相比OG来说更加强大,而我本身接触的也是NG版的,所以这里主要介绍NG版本的Agent。Agent是Flume运行的核心。它是以个完整的数据收集工具,含有三个核心组件:source、channel、sink。有了Agent及它所包含的这三大组件,事务(Event,Flume数据传输的基本单位,具有原子性)可以从一个地方流向另一个地方 。
 3、支持的拓扑结构有哪些,该怎么实现负载均衡
 Flume的拓扑结构如图

 注意:Agent也可以多级相连,比如前两个Agent将数据传输到同一个Agent

实现负载均衡:每台服务器可以运行一个Agent,但是一个Agent里面可以有多个Source和Sink。当Source组里的event流经Channel组,然后进入Sink组,在Sink组内部通过负载均衡算法组中的Sink,接下来就可以选择不同机器上的Agent实现负载均衡。如下图:


 4、该怎么选择source、channel、sink

 Source、Channel和Sink之间耦合度低,可以相互之间灵活组合使用。在我之前的项目使用了三个Flume,其中第一、二用来采集日志并将数据传输给第三个Flume,第三个Flume的作用就是用来合并日志。这就是Flume中Source、Channel和Sink的灵活使用和选择。

 5、怎么设计拓扑结构以达到高可用
 6、如何自己开发拦截器来实现我们特殊的要求,比如区分日志、均匀的写kafka分区
 7、写kafka是同步写还是异步写
 8、Flume配置文件

 Flume配置文件,参考官网

 

# example.conf: A single-node Flume configuration

# 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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
├─第一阶段 │      源码+ppt.rar │      高并发编程第一阶段01讲、课程大纲及主要内容介绍.wmv │      高并发编程第一阶段02讲、简单介绍什么是线程.wmv │      高并发编程第一阶段03讲、创建并启动线程.mp4 │      高并发编程第一阶段04讲、线程生命周期以及start方法源码剖析.mp4 │      高并发编程第一阶段05讲、采用多线程方式模拟银行排队叫号.mp4 │      高并发编程第一阶段06讲、用Runnable接口将线程的逻辑执行单元从控制中抽取出来.mp4 │      高并发编程第一阶段07讲、策略模式在Thread和Runnable中的应用分析.mp4 │      高并发编程第一阶段08讲、构造Thread对象你也许不知道的几件事.mp4 │      高并发编程第一阶段09讲、多线程与JVM内存结构的关系,虚拟机栈实验.mp4 │      高并发编程第一阶段10讲、Thread构造函数StackSize详细讲解.mp4 │      高并发编程第一阶段11讲、Thread构造函数StackSize详细讲解-续.mp4 │      高并发编程第一阶段12讲、Daemon线程的创建以及使用场景分析.mp4 │      高并发编程第一阶段13讲、线程ID,优先级讲解.mp4 │      高并发编程第一阶段14讲、Thread的join方法详细介绍,结合一个典型案例.mp4 │      高并发编程第一阶段15讲、Thread中断Interrupt方法详细讲解.mp4 │      高并发编程第一阶段16讲、采用优雅的方式结束线程生命周期.mp4 │      高并发编程第一阶段17讲、Thread API综合实战,编写ThreadService实现暴力结束线程的综合实战.mp4 │      高并发编程第一阶段18讲、数据同步的引入与Synchronized的简单介绍.mp4 │      高并发编程第一阶段19讲、结合jconsole,jstack以及汇编指令认识synchronized关键字.mp4 │      高并发编程第一阶段20讲、同步代码块以及同步方法之间的区别和关系.mp4 │      高并发编程第一阶段21讲、通过实验分析This锁的存在.mp4 │      高并发编程第一阶段22讲、通过实验分析Class锁的存在.mp4 │      高并发编程第一阶段23讲、多线程死锁分析,案例介绍.mp4 │      高并发编程第一阶段24讲、线程间通信快速入门,使用wait和notify进行线程间的数据通信.mp4 │      高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │      高并发编程第一阶段26讲、多线程下的生产者消费者模型,以及详细介绍notifyAll方法.mp4 │      高并发编程第一阶段27讲、wait和sleep的本质区别是什么,深入分析(面试常见问题).mp4 │      高并发编程第一阶段28讲、线程生产者消费者的综合实战结合Java8语法.mp4 │      高并发编程第一阶段29讲、如何实现一个自己的显式锁Lock精讲上.mp4 │      高并发编程第一阶段30讲、如何实现一个自己的显式锁Lock精讲下(让锁具备超时功能).mp4 │      高并发编程第一阶段31讲、如何给你的应用程序注入钩子程序,Linux下演示.mp4 │      高并发编程第一阶段32讲、如何捕获线程运行期间的异常.mp4 │      高并发编程第一阶段33讲、ThreadGroup API介绍之一.mp4 │      高并发编程第一阶段34讲、ThreadGroup API介绍之二.mp4 │      高并发编程第一阶段35讲、线程池原理与自定义线程池.mp4 │      高并发编程第一阶段36讲、自定义个简单的线程池并且测试.mp4 │      高并发编程第一阶段37讲、给线程池增加拒绝策略以及停止方法.mp4 │      高并发编程第一阶段38讲、给线程池增加自动扩充线程数量,以及闲时自动回收的功能.mp4 │      高并发编程第一阶段39讲、课程结束,内容回顾,下季内容预告.mp4 │ ├─第二阶段 │       Java并发编程.png │       ppt+源码.rar │       高并发编程第二阶段01讲、课程大纲及主要内容介绍.wmv │       高并发编程第二阶段02讲、介绍四种Singleton方式的优缺点在多线程情况下.wmv │       高并发编程第二阶段03讲、介绍三种高效优雅的Singleto

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值