Zookeeper_Flume_Kafka面试题

本文总结了Zookeeper的选举机制与常用命令,Flume的组成、Channel选择及监控,以及Kafka的架构、压测、数据丢失处理、分区策略等关键面试知识点。针对Flume的File Channel和Memory Channel的特点进行了对比,讨论了防止数据丢失的机制。在Kafka部分,介绍了如何处理小文件问题、分区和副本数设定、数据重复与事务机制。
摘要由CSDN通过智能技术生成

Zookeeper相关总结
1.3.1 选举机制
    半数机制:2n+1;      10台服务器:3台;    20台服务器:5台;    100台服务器:11台
台数并不是越多越好。  太多选举时间过长影响性能。
1.3.2 常用命令
    ls、get、create
1.4 Flume相关总结
1.4.1 Flume组成,Put事务,Take事务
    Taildir Source:断点续传、多目录。Flume1.6以前需要自己自定义Source记录每次读取文件位置,实现断点续传。
    File Channel:数据存储在磁盘,宕机数据可保存。但传输速率慢。适合对数据传输可靠性要求高的场景,如,金融行业。
    Memory Channel:数据存储在内存,宕机数据丢失。传输快。适合对数据传输可靠性要求不高的场景,如,普通日志数据。
    Kafka Channel:减少了Flume的Sink阶段,提高了传输效率。           
    Source到Channel是Put事务
    Channel到Sink是Take事务
1.4.2 Flume拦截器
    (1)拦截器注意事项
        项目中自定义了:ETL拦截器和区分类型拦截器。
采用两个拦截器的优缺点:优点,模块化开发和可移植性;缺点,性能会低一些
    (2)自定义拦截器步骤
a)实现 Interceptor
b)重写四个方法
initialize 初始化
public Event intercept(Event event) 处理单个Event
public List<Event> intercept(List<Event> events) 处理多个Event,在这个方法中调用Event intercept(Event event)
close 方法
c)静态内部类,实现Interceptor.Builder
1.4.3 Flume Channel选择器
 
1.4.4 Flume监控器
Ganglia
1.4.5 Flume采集数据会丢失吗?(防止数据丢失的机制)
不会,Channel存储可以存储在File中,数据传输自身有事务。
1.4.6 Flume内存
开发中在flume-env.sh中设置JVM heap为4G或更高,部署在单独的服务器上(4核8线程16G内存)
-Xmx与-Xms最好设置一致,减少内存抖动带来的性能影响,如果设置不一致容易导致频繁fullgc。
-Xms表示JVM Heap(堆内存)最小尺寸,初始分配;-Xmx 表示JVM Heap(堆内存)最大允许的尺寸,按需分配。如果不设置一致,容易在初始化时,由于内存不够,频繁触发fullgc。
1.4.7 FileChannel优化
通过配置dataDirs指向多个路径,每个路径对应不同的硬盘,增大Flume吞吐量。
官方说明如下:
Comma separated list of directories for storing log files.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值