kafka适用哪些离线同步场景

一、源端为大量小文件,合并为一个大文件存储到hdfs

      a)为什么要把小文件合并为大文件

大量的小文件同步到hdfs,对namenode的压力非常大,生成环境是不会允许如此使用集群的。

       b)为什么选kafka

producer可以将文件内容转成消息发送到topic,相当于在数据传输过程对小文件进行了合并

       c)consumer将消息直接写到hdfs还是保存在本地,那个方式比较好?

实际上两种方式都可以,直接写到本地,速度最快,但是还需要将本地数据put到hdfs,操作起来简单,但比较繁琐,但相对来说效率最好;直接写到hdfs,由于consumer直接调用hdfs客户端,如果单行写效率很低,如果批量写效率有提升,但相对put命令还是要慢很多,而且复杂度一下就上来了,kafka出现异常、consumer写hdfs失败时该如何处理offset,这个问题很复杂。

 

Kafka同步效率优化:

kafka有consumer group的概念,消费者以组为单位消费topic里的消息,但是一个partition中的消息同时只能被consumer group里的一个consumer处理,最优设置为一个topic有多少个partition,对应的consumer group就配置多少个consumer,如果partition不变,且consumer个数大于等于partition数量的前提下,再增加consumer group的consumer个数,不会增加消费效率。

 

PS:

kafka作为一款消息分发框架,简单点说就是将源端数据按行分装成一个个单独的消息,一个一个的处理,效率肯定是不如输入输出流的,所有kafka适合处理实时、小批量或者小文件的离线场景,不适用于大文件的同步场景。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值