zoukankan      html  css  js  c++  java
  • 实时事件统计项目:优化flume:用file channel代替mem channel

    背景:利用kafka+flume+morphline+solr做实时统计

    solr从12月23号开始一直没有数据。查看日志发现,因为有一个同事加了一条格式错误的埋点数据,导致大量error。

    据推断,是因为使用mem channel占满,消息来不及处理,导致新来的数据都丢失了。

    image

    修改flume使用file channel:

    kafka2solr.sources = source_from_kafka
    kafka2solr.channels = file_channel
    kafka2solr.sinks = solrSink
    
    # For each one of the sources, the type is defined  
    kafka2solr.sources.source_from_kafka.type = org.apache.flume.source.kafka.KafkaSource
    kafka2solr.sources.source_from_kafka.channels = file_channel
    kafka2solr.sources.source_from_kafka.batchSize = 100
    kafka2solr.sources.source_from_kafka.useFlumeEventFormat=false
    kafka2solr.sources.source_from_kafka.kafka.bootstrap.servers= kafkanode0:9092,kafkanode1:9092,kafkanode2:9092
    kafka2solr.sources.source_from_kafka.kafka.topics = eventCount
    kafka2solr.sources.source_from_kafka.kafka.consumer.group.id = flume_solr_caller
    kafka2solr.sources.source_from_kafka.kafka.consumer.auto.offset.reset=latest
    
    # file channel  
    kafka2solr.channels.file_channel.type = file
    kafka2solr.channels.file_channel.checkpointDir = /var/log/flume-ng/checkpoint
    kafka2solr.channels.file_channel.dataDirs = /var/log/flume-ng/data
    
    
    kafka2solr.sinks.solrSink.type = org.apache.flume.sink.solr.morphline.MorphlineSolrSink
    kafka2solr.sinks.solrSink.channel = file_channel
    #kafka2solr.sinks.solrSink.batchSize = 1000
    #kafka2solr.sinks.solrSink.batchDurationMillis = 1000
    kafka2solr.sinks.solrSink.morphlineFile = morphlines.conf
    kafka2solr.sinks.solrSink.morphlineId=morphline1
    kafka2solr.sinks.solrSink.isIgnoringRecoverableExceptions=true

    使得数据持久化到磁盘不会丢失。

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
    如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
    如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【Arli】。

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    python -基础-强大的列表推导式
    python-基础-字符串拼接
    tkinter学习-- 控件一、Label、Button
    python -re模块
    Apache POI XWPF 爬坑指南之二特定位置插入表格、段落、图片
    mybatis报错:Invalid bound statement (not found):
    bootstrap中input输入框后面添加图标
    bootstrap悬浮显示内容
    layui中使用laydate
    与SQL相关解释表关联(left join ... on ... and ...)
  • 原文地址:https://www.cnblogs.com/arli/p/6230310.html
Copyright © 2011-2022 走看看