• Flume-习题


     

    1 你是如何实现 Flume 数据传输的监控的

      使用第三方框架 Ganglia 实时监控 Flume。
     
     

    2 Flume 的 Source,Sink,Channel 的作用?你们 Source 是什么类型?

    1、作用
    (1)Source 组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,
    包括 avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、
    legacy
    (2)Channel 组件对采集到的数据进行缓存,可以存放在 Memory 或 File 中。
    (3)Sink 组件是用于把数据发送到目的地的组件,目的地包括 Hdfs、Logger、avro、
    thrift、ipc、file、Hbase、solr、自定义。
    2、我公司采用的 Source 类型为:
    (1)监控后台日志:exec
    (2)监控后台产生日志的端口:netcat
    Exec spooldir
     
     
     

    3 Flume 的 Channel Selectors 

    4 Flume 参数调优

    1. Source
      增加 Source 个(使用 Tair Dir Source 时可增加 FileGroups 个数)可以增大 Source 的读
    取数据的能力。例如:当某一个目录产生的文件过多时需要将这个文件目录拆分成多个文件
    目录,同时配置好多个 Source 以保证 Source 有足够的能力获取到新产生的数据。
      batchSize 参数决定 Source 一次批量运输到 Channel 的 event 条数,适当调大这个参数可
    以提高 Source 搬运 Event 到 Channel 时的性能。
     
    2. Channel
      type 选择 memory 时 Channel 的性能最好,但是如果 Flume 进程意外挂掉可能会丢失数
    据。type 选择 file 时 Channel 的容错性更好,但是性能上会比 memory channel 差。
      使用 file Channel 时 dataDirs 配置多个不同盘下的目录可以提高性能。
      Capacity 参数决定 Channel 可容纳最大的 event 条数。transactionCapacity 参数决定每次
    Source 往 channel 里面写的最大 event 条数和每次 Sink 从 channel 里面读的最大 event 条数。
    transactionCapacity 需要大于 Source 和 Sink 的 batchSize 参数。
     
    3. Sink
      增加 Sink 的个数可以增加 Sink 消费 event 的能力。Sink 也不是越多越好够用就行,过
    多的 Sink 会占用系统资源,造成系统资源不必要的浪费。
      batchSize 参数决定 Sink 一次批量从 Channel 读取的 event 条数,适当调大这个参数可以
    提高 Sink 从 Channel 搬出 event 的性能。
     
     

    5 Flume 的事务机制

      Flume 的事务机制(类似数据库的事务机制):Flume 使用两个独立的事务分别负责从
    Soucrce 到 Channel,以及从 Channel 到 Sink 的事件传递。比如 spooling directory source 为
    文件的每一行创建一个事件,一旦事务中所有的事件全部传递到 Channel 且提交成功,那么
    Soucrce 就将该文件标记为完成。同理,事务以类似的方式处理从 Channel 到 Sink 的传递过
    程,如果因为某种原因使得事件无法记录,那么事务将会回滚。且所有的事件都会保持到
    Channel 中,等待重新传递。
     
     

    6 Flume 采集数据会丢失吗?

    不会,Channel 存储可以存储在 File 中,数据传输自身有事务。
  • 相关阅读:
    久违的问候-----eclipse中搭建maven项目2016年
    jdbc在mysql下一次执行多条sql脚本
    Oracle客户端连接远程Oracle服务中文乱码问题
    Hibernate 3.3.2 文档翻译 Day01
    Linux学习之Exam系统发布
    js封装用户选项传递给Servlet之考试系统二
    MySQL中的全文索引
    60分钟Python快速学习(给发哥一个交代)
    优化MySchool数据库设计之【巅峰对决】
    微冷的雨Java基础学习手记(一)
  • 原文地址:https://www.cnblogs.com/LXL616/p/10971236.html
Copyright © 2020-2023  润新知