• 个人项目中用到的Flume 各组件,以及Put 事务和Take 事务介绍


    1. taildir source

    1. 断点续传、多目录
    2. 哪个版本产生的?Apache1.7、CDH1.6
    3. 在没有断点续传功能时怎么做的?自定义source
    4. taildir挂了怎么办?不会丢数:断点续传。Taildir Source 维护了一个 json 格式的 position File,其会定期的往 position File
      中更新每个文件读取到的最新的位置,因此能够实现断点续传。;重复数据:可能发生,但概率很小。
    5. 怎么处理重复?生产环境通常不处理,因为出现概率较低,处理会影响效率。处理的话:在taildir source里面自定义事务,影响效率。通过下一级处理(hive dwd、spark streaming等)、去重手段(groupby、 开窗取窗口第一条、redis)
    6. taildir source是否支持递归遍历文件夹读取文件?不支持。但可以通过自定义 遍历文件夹 + 读取文件。

    2. file channel/memory channel/kafka channel

    1. File Channel
      • 数据存储在磁盘,可靠性高,但传输速度低
      • 默认容量100W个event
      • File Channel可以通过配置dataDirs指向多个路径,每个路径对应不同的硬盘,增大Flume吞吐量。
    2. Memory Channel
      • 数据存储于内存中,可靠性差,但传输效率高
      • 默认容量100个event
    3. Kafka Channel
      • 数据存于Kafka,基于磁盘,可靠性高。传输速度快 Kafka Channel 大于 Memory Channel + Kafka Sink 原因 省去了Sink阶段。
    4. Kafka Channel那个版本产生的?
      • Flume1.6版本产生,但是由于有bug没有火,Kafka的topic中每一行的前面都会出现奇怪的字符。Flume1.7解决了这个bug,开始火起来了
    5. 生产环境如何选择?
      • 如果下一级是Kafka,优先选择Kafka Channel
      • 如果是金融等对数据要求准确的公司,选择File Channel
      • 如果就是普通的日志,通常可以选择Memory Channel

    事务

    Source到Channel是Put事务
    Channel到Sink是Take事务
    在这里插入图片描述

  • 相关阅读:
    Python爬虫——BS4解析方式简介
    项目管理软件dhtmlxGantt配置教程(十五):突出展示时间段
    Spring Boot 篇四: Spring Data JPA使用SQL Server
    【软件测试】坚持才有骄傲的资格,8年测试老鸟给我的忠告......
    Leetcode 40. 组合总和 II
    LeetCode 2483. 商店的最少代价【字符串,前后缀分解】1494
    聊聊linux的文件缓存
    STC51单片机29——汇编语言 取表法 流水灯
    [Machine Learning]pytorch手搓一个神经网络模型
    nginx服务器
  • 原文地址:https://blog.csdn.net/Laoddaaa/article/details/126287635