题记部分

(1)Flume使用场景

  线上数据一般主要是落地(存储到磁盘)或者通过socket传输给另一个系统,这种情况下,你很难推动线上应用或服务去修改接口,实现直接向kafka里写数据,这时候你可能就需要flume这样的系统帮你去做传输。

(2)Flume丢包问题

  单机upd的flume source的配置,100+M/s数据量,10w qps flume就开始大量丢包,因此很多公司在搭建系统时,抛弃了flume,自己研发传输系统,但是往往会参考flume的Source-Channel-Sink模式。一些公司在Flume工作过程中,会对业务日志进行监控,例如Flume agent中有多少条日志,Flume到Kafka后有多少条日志,Flume到Kafka后有多少条日志等等,如果数据丢失保持在1%左右是没有问题的,当数据丢失达到5%左右时就必须采取相应措施。

(3)Flume和kafka的选取

  采集层主要可以使用Flume、Kafka两种技术。

  Flume:Flume是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API。

  Kafka:Kafka是一个可持久化的分布式的消息队列。

  Kafka是一个非常通用的系统。你可以有许多生产者和很多消费者共享多个主题Topics,相比之下,Flume是一个专用工具被设计为旨在往HDFS,HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全特性,所以,Cloudera建议如果数据被多个系统消费的话,使用Kafka;如果数据被设计给Hadoop使用,使用Flume。

  正如你们所知,Flume内置很多的Source和Sink组件。然鹅,kafka明显有一个更小的生产消费者生态系统,并且kafka的社区支持不好,希望将来这种情况会得到改善,但是目前:使用Kafka意味着你准备好了编写你自己的生产者和消费者代码。如果已经存在的Flume Sources和Sinks满足你的需求,并且你更喜欢不需要任何开发的系统,请使用Flume。

  Flume可以使用拦截器实时处理数据。这些对数据屏蔽或者过量是很有用的。Kafka需要外部的流处理系统才能做到。

  Kafka和Flume都是可靠的系统,通过适当的配置能保证零数据丢失。然鹅,Flume不支持副本事件。于是,如果Flume代理的一个节点崩溃了,即使使用了可靠的文件管道方式,你也将丢失这些事件直到你恢复这些磁盘。如果你需要一个高可靠性的管道,那么使用Kafka是个更好的选择。

  Flume和Kafka可以很好地结合起来使用。如果你的设计需要从Kafka到Hadoop的流数据,使用Flume代理并配置Kafka的Source读取数据也是可行的:你没有必要实现自己的消费者。你可以直接利用Flume与HDFS及HBase的结合的所有好处,你可以使用Cloudera Manager对消费者的监控,并且你甚至可以添加拦截器进行一些流处理。

(4)数据怎么采集到kafka,实现方式

  使用官方提供的flumeKafka插件,插件的实现方式是自定义了flume的sink,将数据从channel中取出,通过Kafka的producer写入到Kafka中,可以自定义分区等。

(5)flume管道内存,flume宕机了数据丢失怎么解决

  ① Flume的channel分为很多种,可以将数据写入文件。

  ② 防止非首个宕机的方法数可以做集群或者主备。

(6)flume配置方式,flume集群(详细讲解下)

  Flume的配置围绕着Source、Channel、Sink叙述,Flume的集群是做在agent上的,而非机器上。

(7)Flume不采集Nginx日志,通过Logger4j采集日志,优缺点是什么?

优点:

① Nginx的日志格式是固定的,但是缺少了sessionid,通过logger4j采集的日志是带有sessionid的

② session可以通过redis共享,保证了集群日志中的同一session落到不同的tomcat时,sessionid还是一样的,而且logger4j的方式比较稳定,不会宕机。

缺点:

① 不够灵活,logger4j的方式和项目结合过于紧密,而flume的方式比较灵活,插拔式比较好,不会影响项目性能

(8)flume和kafka采集日志区别,采集日志时中间停了,怎么记录之前的日志

Flume采集日志是通过流的方式直接将日志收集到存储层,而Kafka是将缓存在kafka集群,待后期可以采集到存储层。

Flume采集中间停了,可以采用文件的方式记录之前的日志,而kafka是采用offset的方式记录了之前的日志。

(9)flume有哪些组件,flume的source、channel、sink具体是做什么的

  ① Source:用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel,这个有点类似于Java IO部分的Channel。

  ② Channel:用于桥接Sources和Sinks,类似于一个队列。

  ③ Sink:从Channel收集数据,将数据写到目标源(可以是下一个Source,也可以是HDFS或者Hbase)。

— 业精于勤荒于嬉,行成于思毁于随 —

Flume - [08] 绝密档案Ⅰ的更多相关文章

  1. FW: javascripts 要不要加引号

    Javascript编程风格  http://www.ruanyifeng.com/blog/2012/04/javascript_programming_style.html 作者: 阮一峰 日期: ...

  2. 数学常数e的含义

    转载:   http://www.ruanyifeng.com/blog/2011/07/mathematical_constant_e.html 作者: 阮一峰 日期: 2011年7月 9日 1. ...

  3. Linux学习日记之磁盘与档案系统

    主要定义 磁盘的物理组成磁盘主要由圆形磁盘(多张).机械手臂.磁头等组成.每张磁盘都有不同的磁道,半径相同的磁道组成了磁柱,沿着中心划线可将磁盘分成若干扇区,每个扇区的大小是512Bytes. 磁盘分 ...

  4. Flume NG Getting Started(Flume NG 新手入门指南)

    Flume NG Getting Started(Flume NG 新手入门指南)翻译 新手入门 Flume NG是什么? 有什么改变? 获得Flume NG 从源码构建 配置 flume-ng全局选 ...

  5. 【转】Flume(NG)架构设计要点及配置实践

    Flume(NG)架构设计要点及配置实践   Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中.由原来的Fl ...

  6. 【转】Kafka实战-Flume到Kafka

    Kafka实战-Flume到Kafka Kafka   2015-07-03 08:46:24 发布 您的评价:       0.0   收藏     2收藏 1.概述 前面给大家介绍了整个Kafka ...

  7. flume+kafka+smart数据接入实施手册

    1.  概述 本手册主要介绍了,一个将传统数据接入到Hadoop集群的数据接入方案和实施方法.供数据接入和集群运维人员参考. 1.1.   整体方案 Flume作为日志收集工具,监控一个文件目录或者一 ...

  8. Flume+Kafka+Strom基于伪分布式环境的结合使用

    目录: 一.Flume.Kafka.Storm是什么,如何安装? 二.Flume.Kafka.Storm如何结合使用? 1) 原理是什么? 2) Flume和Kafka的整合  3) Kafka和St ...

  9. shell脚本监控Flume输出到HDFS上文件合法性

    在使用flume中发现由于网络.HDFS等其它原因,使得经过Flume收集到HDFS上得日志有一些异常,表现为: 1.有未关闭的文件:以tmp(默认)结尾的文件.加入存到HDFS上得文件应该是gz压缩 ...

  10. Linux 档案与目录管理

    『 cd /etc 』这个情况,这也就是所谓的『绝对路径』,他是从根目录连续写上来的一个情况,所以不论你在哪一个路径现执行这一个指令,都会将你移动到该路径下.那如果我是使用『 cd etc 』呢?那表 ...

随机推荐

  1. 裸辞一年狂肝了一个AI搜索!我要硬刚Google和Perplexity!

    Hika AI 是一款 AI 加持的「知识搜索工具」,它主要的目的是帮助你在搜索问题时通过Hika的「不同视角的思路」,为你快速延伸问题相关的知识领域,或者深挖问题中某个关键点,获得更加全面的结果. ...

  2. R机器学习:特征工程与特征选择的介绍

    两个月没更新了,没有其它理由,就是懒惰,间接持续性的懒惰,一直持续了2个月,简直懒惰!!!大家的好多的私信也没回就过期回不了了.请大家批评我!!!. 看了很多高深的算法之后,实在是看不太明白,所以今天 ...

  3. bouncycastle(BC) 实现SM2国密加解密、签名、验签

    https://www.cnblogs.com/dashou/p/14656458.html SM2国密加解密一个类就够了 <dependency> <groupId>org. ...

  4. The "https://packagist.phpcomposer.com/packages.json" file could not be down

    composer自身版本太低了,更新下 composer self-update 使用阿里云镜像 composer config -g repo.packagist composer https:// ...

  5. OpenCV4.1.0与CUDAcuda_10.1.105联合进行图像特征点提取和特征匹配时,运行程序时错误提示:无法定位程序输入点?createBFMatchercv@DescriptorMatcher@cuda@cv......于动态链接库......

    问题描述: OpenCV4.1.0与CUDAcuda_10.1.105联合进行图像特征点提取和特征匹配时,运行程序时错误提示:无法定位程序输入点?createBFMatchercv@Descripto ...

  6. java EE进行Web开发时*.jsp页面的<%@显示“The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path”错误,webcontent文件夹总是出现红x或者java源码出现The import javax.servlet cannot be resolved 的解决方法

    我们在用Eclipse进行Java web开发时,可能会出现这样的错误:The superclass javax.servlet.http.HttpServlet was not found on t ...

  7. DVWA靶场Insecure CAPTCHA(不安全验证)漏洞所有级别通关教程及源码审计

    Insecure CAPTCHA(不安全验证) Insecure CAPTCHA(不安全验证)漏洞指的是在实现 CAPTCHA(完全自动化公共图灵测试区分计算机和人类)机制时,未能有效保护用户输入的验 ...

  8. 修改leds-gpio.c 让GPIO LED在kernel启动时就开始闪烁

    内容提要: 客户需要在开机时就闪烁LED,并要求越快越好 diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c index ...

  9. Solution -「NEERC 2016」Delight for a Cat 的一个尝试

    \(\mathscr{Description}\)   Link.   给定 \(n,k,m_s,m_e\) 和两个长为 \(n\) 的序列 \(\{s\},\{e\}\), 选择一个 \(S\sub ...

  10. 第十二章 ArrayList&LinkedList源码解析

    一.对于ArrayList需要掌握的七点内容 ArrayList的创建:即构造器 往ArrayList中添加对象:即add(E)方法 获取ArrayList中的单个对象:即get(int index) ...