附6、Storm面试题目答疑 ---有用

问题: 1,kafka+storm如何保证消息完整处理。 一条消息产生----Kafka--KafkaSpout-Storm--->Redis 问题1:kafka数据生产消费如何保证消息的完整处理 Producer-batch(缓存机制queue)--重试机制---->ack(-1,1,0)---Broker(partition leader/slave)------>KafkaConsumer(内存中,new offset)---->zk( old offset) Producer发送时缓存数据,需要阈值设定(数量阈值,时间阈值),当数据太多并来不及发送时,会产生老数据是否保留的问题,如何配置文件中配置的是删除掉,数据就丢失了。 KafkaConsumer 消费数据时,由于offset是周期性更新,导致zk上的offset值必然小于Kafkaconsumer内存中的值,当KafkaConsumer挂掉后重启,必然会导致数据重复消费。 如何解决重复消费:1,技术方法(不可取),2,业务方法(标识数据:找到消息中的唯一标识 <messageTag,isProcess>)

问题2:Storm中如何保证消息的完整处理 ack - fail 自己定义 缓存Map<msgid,messageObj> Spout---->nextTuple----Tuple---Bolt(ack(tuple)) Bolt1-----Tuple1-1 Bolt1-----Tuple1-2 Bolt1-----Tuple1-3 Bolt1-----Tuple1-4 Bolt2(ack(Tuple1-1)) Bolt2(ack(Tuple1-2)) Bolt2(ack(Tuple1-3)) Bolt2(ack(Tuple1-4)) 如果成功(spout.ack(msg)) map.remove(msgid) 如果失败(spout.fail(msg)) messageObj = map.get(msgid) collector.emit(messageObj,msgid)

问题3:如何保证一条消息路过各个组件时保证全局的完整处理 保存每个环节的数据不丢失,自然就全局不丢失。 问题4:在storm环节中自定义的map如何存储,在KafkaConsumer如何处理重复消费的问题? 1,保存在当前Jvm中,既然出异常导致消息不能完全处理,存放在jvm中的标识数据,缓存Map必然会丢失 2,保存在外部的存储中,redis。 标识数据<Set> 缓存Map<Map> 问题:请问存储redis时,由于网络原因或其他异常导致数据不能成功存储 怎么办? 重试机制,保存3次,打印log日志,redis存储失败。

2,数据量大如何保证到Kakfa中,storm如何消费,解决延迟。 问题1:请问Kafka如何处理海量数据 -----整体数据:100G 数据从何而来:producer 集群----DefaultPartition ------保存数据平均分配 数据保存在哪里: broker 集群 topic ---partition 10 -------------->每个分片保存10G 数据保存如何快:pageCache 600M/S的磁盘写入速度 sendfile技术

问题2: 请问Storm如何处理海量数据,尽可能快 数据输入: KafkaSpout(consumerGroup,10) 读取外部数据源 数据计算: 数据计算是根据对数据处理的业务复杂度来的,越复杂并发度越大。 如果bolt的并发读要设置成1万个,才能提高处理速度,很显然是不行的。需要将bolt中的代码逻辑分解出来,形成多个bolt组合。 bolt1--->bolt2--->bolt3...... 3,Flume监控文件,异常之后重新启动,如何避免重复读取。 异常的范围是 flumeNg的异常 log文件,读取文件,保存记录的行号 问题1:如何保存行号 command.type = exec shell<tail -F xxx.log> 自定义shell脚本,保存消费的行号到工作目录的某个文件里。 当下次启动时从行号记录文件中拿取上次读到多少行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值