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】。

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

  • 相关阅读:
    SAS学习笔记27 卡方检验
    SAS学习笔记26 方差分析
    SAS学习笔记25 t检验(单个样本t检验、配对样本t检验、两个独立样本t检验及方差不齐时的t'检验)
    SAS学习笔记23 线性回归、多元回归
    HTML canvas画布
    HTML 新全局特性
    MYSQL数据库学习(五)如何自定义函数
    什么是单机结构?什么是集群?什么是分布式?
    MYSQL数据库学习(四)如何备份还原数据库
    MYSQL数据库学习(三)关于DML操作
  • 原文地址:https://www.cnblogs.com/arli/p/6230310.html
Copyright © 2011-2022 走看看