Flume面试问题

一、flume的组成

1.source

		1)taildir source :
		·断点续传,多目录
		·apache flume 1.7  ,CDH1.6
		·自定义source实现断点续传
		·用offset落盘判定传入量,所以不会丢失数据,但会产生重复数据。
		·自身效率低,在企业中不常在source端进行对重复数据的清洗去重。
		·去重在下一级进行处理:redis,flink,group by  , dwd

2.channel

1)file channel:
		磁盘,效率低,可靠性高
2)memory channel
		内存,效率高,可靠性低
3)kafka channel
		存kafka  ->  磁盘,可靠性高,效率高file,低于memory。kafka channel -> memory channel + kafka sink
4)下一级是kafka:kafka channel
5)下一级不是kafka,看求效率还是可靠性
	 传输日志,memory
	 传输业务/金融,file

3.sink
只用HDFS sink:
1)小文件
2)大小 -> 128m
时间 -> 1H
event -> 0个

二、flume的三个器
1.拦截器

	两个地方用到了拦截器:
	1)kafka前的flume:ETL拦截器
		进行ETL清洗,将json不完整的数据干掉
	
	2)kafka后的flume:时间戳拦截器
	hive中的数据存储是按照是时间进行分区的
	零点漂移问题:1月4号中23.59写入的数据在1月5号00:00被接收到,但是数据仍然属于4号,需要将5号中数据转到4号。
	
	3)自定义拦截器步骤
	3-1:自定义类实现interceptor接口
	3-2:重写4个方法
	3-3:初始化
	3-4:关闭
	3-5:单event处理
	3-6:多event处理

2.选择器

	2-1:M:把日志选择性的发送到制定通道
	2-2:RE(默认): 全部往下发送

3.监控器

	·如果发现put 或者take尝试提交的次数 ,远远大于最终提交成功的次数, 说明发生了事务回滚
	·解决方法:增加内存
	·怎么增加:
		1)flume-env.sh -> 默认2000M,提升到4-6G
		2)考虑增加flume台数

三、flume的优化和挂了怎么办

1)file channel 能配置多目录,尽可能配置多块磁盘
2)HDFS Sink
	2-1:小文件
	2-2:大小 ---> 128m
			 时间 ---> 1H
			 envent个数 ---> 0

3)挂了怎么办? 
	重启
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值