Flume面试题

sqoop和flume区别

Flume和Sqoop是Hadoop数据集成和收集系统,两者的定位不一样。Flume有集群的概念,是一种分布式,可靠且可用的服务,主要用于高效地收集,汇总和移动大量日志数据。而我们的Sqoop是一种用于在Apache Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据的工具(没有集群的概念)。Sqoop有助于在hadoop和其他数据库之间移动数据,并且可以并行传输数据以提高性能。两者可以做同样的工作,但是各自擅长的领域不同,因此应用场景也不同。

flume模型

source channel sink
source:采集数据
channel:memory channel(速度快)/file channel(不丢数据)/kafka channel(省去sink阶段)
sink:输出到下游,sink是完全事务性的。在flume进行sink的时候,每个sink用Channel 启动一个事务。批量事件一旦成功写入到下游,Sink 就利用 Channel 提交事务。事务提交之后,该 Channel 从自己的内部缓冲区删除事件。如果写入失败,将缓冲区takeList中的数据归还给Channel。

flume数据流基本单元

event

flume监控

使用第三方框架Ganglia

flume和kafka区别
1.侧重点方面:
(1)flume追求的是数据和数据源、数据流向的多样性,适合多个生产者的场景;flume有自己内置的多种source和sink组件,通过配置文件的修改可以实现
(2kafka追求的是高吞吐,高负载,同一topic下可以有多个partition,由于是pull模式拉取数据,因此适合多个消费者的场景
2.安全性方面:
(1)flume适合数据安全性要求不高的操作,因为数据没有备份、没有副本
(2)kafka适合数据安全性要求较高的操作,kafka支持replication(多副本)。
3.flume更适合与Hadoop生态圈对接的操作,比如hdfs,hbase等
4.flume和kafka也可以结合使用,充分发挥两者优势:
线上数据 --> flume --> kafka --> 计算 --> HDFS

flume 调优


source :
1 ,增加 source 个数,可以增大 source 读取能力。
2 ,具体做法 : 如果一个目录下生成的文件过多,可以将它拆分成多个目录。每个目录都配置一个 source 。
3 ,增大 batchSize : 可以增大一次性批处理的 event 条数,适当调大这个参数,可以调高 source 搬运数据到 channel 的性能。
channel :
1 ,memory :性能好,但是,如果发生意外,可能丢失数据。
2 ,使用 file channel 时,dataDirs 配置多个不同盘下的目录可以提高性能。
3 ,transactionCapacity 需要大于 source 和 sink 的 batchSize 参数
sink :
增加 sink 个数可以增加消费 event 能力
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值