kafka 大数据flume_flume +kafka flume读取不到数据 - CSDN
  • 大数据flume的概念原理和flume与kafka的简单对比一、flume的基本概念原理:二、flume与kafka的简单对比: 一、flume的基本概念原理: 1、Apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大...

    大数据flume的概念原理和flume与kafka的简单对比

    一、flume的基本概念原理:

    1、Apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制。flume具有高可用,分布式,配置工具,其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中。

    Flume组成架构:
    在这里插入图片描述
    2、Flume的组成部分:

    ①、Flume事件:
    事件作为Flume内部数据传输的最基本单元。它是由一个转载数据的字节数组(该数据组是从数据源接入点传入,并传输给传输器,也就是HDFS/HBase)和一个可选头部构成。

    ②、Flume Agent:
    Flume内部有一个或者多个Agent,然而对于每一个Agent来说,它就是一共独立的守护进程(JVM),它从客户端哪儿接收收集,或者从其他的 Agent哪儿接收,然后迅速的将获取的数据传给下一个目的节点sink,或者agent.。

    Agent主要由:source,channel,sink三个组件组成。

    Source:
    从数据发生器接收数据,并将接收的数据以Flume的event格式传递给一个或者多个通道channal,Flume提供多种数据接收的方式,比如Avro,Thrift,twitter1%等。

    Channel:
    channal是一种短暂的存储容器,它将从source处接收到的event格式的数据缓存起来,直到它们被sinks消费掉,它在source和sink间起着一共桥梁的作用,channal是一个完整的事务,这一点保证了数据在收发的时候的一致性。并且它可以和任意数量的source和sink链接.。支持的类型有:JDBC channel,File System channel,Memort channel等。

    sink:
    sink将数据存储到集中存储器比如Hbase和HDFS,它从channals消费数据(events)并将其传递给目标地.。目标地可能是另一个sink,也可能HDFS,HBase。

    3、Flume的内部原理:
    在这里插入图片描述

    二、flume与kafka的简单对比:

    1、flume与kafka对比:

    (1)kafka和flume都是日志系统。kafka是分布式消息中间件,自带存储,提供push和pull存取数据功能。flume分为agent(数据采集器),collector(数据简单处理和写入),storage(存储器)三部分,每一部分都是可以定制的。比如agent采用RPC(Thrift-RPC)、text(文件)等,storage指定用hdfs做。

    (2)kafka做日志缓存应该是更为合适的,但是 flume的数据采集部分做的很好,可以定制很多数据源,减少开发量。所以比较流行flume+kafka模式,如果为了利用flume写hdfs的能力,也可以采用kafka+flume的方式。

    温馨提示:该文章为本人自己创作,转载请标明出处。感谢各位!!!谢谢大家!!!
    本人联系方式:
    QQ:961094233
    邮箱:961094233@qq.com

    展开全文
  • 大数据系列之Kafka安装  大数据系列之Flume--几种不同的Sources 大数据系列之Flume+HDFS 关于Flume 的 一些核心概念: 组件名称 功能介绍 Agent代理 使用JVM 运行Flume。每台机器运行一个agent,但是...

    相关文章:

    大数据系列之Kafka安装 

    大数据系列之Flume--几种不同的Sources

    大数据系列之Flume+HDFS

    关于Flume 的 一些核心概念:

    组件名称     功能介绍
    Agent代理 使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。
    Client客户端 生产数据,运行在一个独立的线程。
    Source源 从Client收集数据,传递给Channel。
    Sink接收器 从Channel收集数据,进行相关操作,运行在一个独立线程。
    Channel通道 连接 sources 和 sinks ,这个有点像一个队列。
    Events事件 传输的基本数据负载。

     

     

     

     

     

     

     

     

     

     文章和 大数据系列之Flume+HDFS 非常相似,不同的在于flume安装目录conf下新建了kafka.properties文件,启动时也应当用此配置文件作为参数启动。下面看具体内容:

    1. kafka.properties:

    agent.sources = s1                                                                                                                   
    agent.channels = c1                                                                                                                  
    agent.sinks = k1                                                                                                                     
                                                                                                                                         
    agent.sources.s1.type=exec                                                                                                           
    agent.sources.s1.command=tail -F /tmp/logs/kafka.log                                                                                 
    agent.sources.s1.channels=c1                                                                                                         
    agent.channels.c1.type=memory                                                                                                        
    agent.channels.c1.capacity=10000                                                                                                     
    agent.channels.c1.transactionCapacity=100                                                                                            
                                                                                                                                         
    #设置Kafka接收器                                                                                                                     
    agent.sinks.k1.type= org.apache.flume.sink.kafka.KafkaSink                                                                           
    #设置Kafka的broker地址和端口号                                                                                                       
    agent.sinks.k1.brokerList=master:9092                                                                                                
    #设置Kafka的Topic                                                                                                                    
    agent.sinks.k1.topic=kafkatest                                                                                                       
    #设置序列化方式                                                                                                                      
    agent.sinks.k1.serializer.class=kafka.serializer.StringEncoder                                                                       
                                                                                                                                         
    agent.sinks.k1.channel=c1     
    

      关于配置文件中注意3点:

      a.  agent.sources.s1.command=tail -F /tmp/logs/kafka.log   

      b.  agent.sinks.k1.brokerList=master:9092

      c . agent.sinks.k1.topic=kafkatest 

    2.很明显,由配置文件可以了解到:

      a.我们需要在/tmp/logs下建一个kafka.log的文件,且向文件中输出内容(下面会说到);

      b.flume连接到kafka的地址是 master:9092,注意不要配置出错了;

      c.flume会将采集后的内容输出到Kafka topic 为kafkatest上,所以我们启动zk,kafka后需要打开一个终端消费topic kafkatest的内容。这样就可以看到flume与kafka之间玩起来了~~

     

    3.具体操作:

      a.在/tmp/logs下建立空文件kafka.log。在mfz 用户目录下新建脚本kafkaoutput.sh(一定要给予可执行权限),用来向kafka.log输入内容: kafka_test***

      

    for((i=0;i<=1000;i++));
    do echo "kafka_test-"+$i>>/tmp/logs/kafka.log;
    done
    

      b. 在kafka安装目录下执行如下命令,启动zk,kafka 。(不明白此处可参照 大数据系列之Flume+HDFS)

    bin/zookeeper-server-start.sh -daemon config/zookeeper.properties &
    bin/kafka-server-start.sh -daemon config/server.properties &

        c.新增Topic kafkatest

    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic kafkatest  
    

       d.打开新终端,在kafka安装目录下执行如下命令,生成对topic kafkatest 的消费

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kafkatest --from-beginning --zookeeper master

       e.启动flume

    bin/flume-ng agent --conf-file  conf/kafka.properties -c conf/ --name agent -Dflume.root.logger=DEBUG,console

       d.执行kafkaoutput.sh脚本(注意观察kafka.log内容及消费终端接收到的内容)

      e.查看新终端消费信息

    整体流程如图:

    完~~

    后续将介绍Java代码对于Flume+HDFS ,Flume+Kafka的实现。敬请期待~

     

    展开全文
  • KafkaFlume 很多功能确实是重复的。以下是评估两个系统的一些建议:Kafka 是一个通用型系统。你可以有许多的生产者和消费者分享多个主题。相反地,Flume 被设计成特定用途的工作,特定地向 HDFS 和 HBase 发送...

    Kafka 与 Flume 很多功能确实是重复的。以下是评估两个系统的一些建议:

    • Kafka 是一个通用型系统。你可以有许多的生产者和消费者分享多个主题。相反地,Flume 被设计成特定用途的工作,特定地向 HDFS 和 HBase 发送出去。Flume 为了更好地为 HDFS 服务而做了特定的优化,并且与 Hadoop 的安全体系整合在了一起。基于这样的结论,Hadoop 开发商 Cloudera 推荐如果数据需要被多个应用程序消费的话,推荐使用 Kafka,如果数据只是面向 Hadoop 的,可以使用 Flume。
    • Flume 拥有许多配置的来源 (sources) 和存储池 (sinks)。然后,Kafka 拥有的是非常小的生产者和消费者环境体系,Kafka 社区并不是非常支持这样。如果你的数据来源已经确定,不需要额外的编码,那你可以使用 Flume 提供的 sources 和 sinks,反之,如果你需要准备自己的生产者和消费者,那你需要使用 Kafka。
    • Flume 可以在拦截器里面实时处理数据。这个特性对于过滤数据非常有用。Kafka 需要一个外部系统帮助处理数据。
    • 无论是 Kafka 或是 Flume,两个系统都可以保证不丢失数据。然后,Flume 不会复制事件。相应地,即使我们正在使用一个可以信赖的文件通道,如果 Flume agent 所在的这个节点宕机了,你会失去所有的事件访问能力直到你修复这个受损的节点。使用 Kafka 的管道特性不会有这样的问题。
    • Flume 和 Kafka 可以一起工作的。如果你需要把流式数据从 Kafka 转移到 Hadoop,可以使用 Flume 代理 (agent),将 kafka 当作一个来源 (source),这样可以从 Kafka 读取数据到 Hadoop。你不需要去开发自己的消费者,你可以使用 Flume 与 Hadoop、HBase 相结合的特性,使用 Cloudera Manager 平台监控消费者,并且通过增加过滤器的方式处理数据。
    展开全文
  • 大数据技术--kafkaflume的对比

    千次阅读 2017-01-14 20:46:16
    来源:http://blog.csdn.net/crazyhacking/article/details/45746191

    来源:http://blog.csdn.net/crazyhacking/article/details/45746191

    摘要: (1)kafka和flume都是日志系统。kafka是分布式消息中间件,自带存储,提供push和pull存取数据功能。flume分为agent(数据采集器),collector(数据简单处理和写入),storage(存储器)三部分,每一部分都是可以定制的。比如agent采用RPC(Thrift-RPC)、text(文件)等,storage指定用hdfs做。

               (2)kafka做日志缓存应该是更为合适的,但是 flume的数据采集部分做的很好,可以定制很多数据源,减少开发量。所以比较流行flume+kafka模式,如果为了利用flume写hdfs的能力,也可以采用kafka+flume的方式。


    采集层 主要可以使用Flume, Kafka两种技术。

    FlumeFlume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API.

    KafkaKafka是一个可持久化的分布式的消息队列。

    • Kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题Topics。相比之下,Flume是一个专用工具被设计为旨在往HDFS,HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全特性。所以,Cloudera 建议如果数据被多个系统消费的话,使用kafka;如果数据被设计给Hadoop使用,使用Flume

     

    • 正如你们所知Flume内置很多的sourcesink组件。然而,Kafka明显有一个更小的生产消费者生态系统,并且Kafka的社区支持不好。希望将来这种情况会得到改善,但是目前:使用Kafka意味着你准备好了编写你自己的生产者和消费者代码。如果已经存在的Flume SourcesSinks满足你的需求,并且你更喜欢不需要任何开发的系统,请使用Flume

     

    • Flume可以使用拦截器实时处理数据。这些对数据屏蔽或者过量是很有用的。Kafka需要外部的流处理系统才能做到。

     

    • KafkaFlume都是可靠的系统,通过适当的配置能保证零数据丢失。然而,Flume不支持副本事件。于是,如果Flume代理的一个节点奔溃了,即使使用了可靠的文件管道方式,你也将丢失这些事件直到你恢复这些磁盘。如果你需要一个高可靠行的管道,那么使用Kafka是个更好的选择。

     

    • FlumeKafka可以很好地结合起来使用。如果你的设计需要从KafkaHadoop的流数据,使用Flume代理并配置KafkaSource读取数据也是可行的:你没有必要实现自己的消费者。你可以直接利用FlumeHDFSHBase的结合的所有好处。你可以使用Cloudera Manager对消费者的监控,并且你甚至可以添加拦截器进行一些流处理。

    FlumeKafka可以结合起来使用。通常会使用Flume + Kafka的方式。其实如果为了利用Flume已有的写HDFS功能,也可以使用Kafka + Flume的方式。



    展开全文
  • 本篇文章将在Apache Flume介绍和使用案例三这篇文章的基础上将logger sink修改为kafka sink(即整合flumekafka完成实时数据的采集) 大体流程如图所示: 将配置文件:avro-memory-logger.conf avro-memory-logger....
  • Kafka集成Flume实现实时数据的处理 环境准备: Kafka:2.2.0 Flume:1.9.0 netcat demo架构: netcat:flume source memory:flume channel KafkaSink:flume sink、kafka producer kafka-console-consumer:kafka ...
  • 大数据———Flume使用

    千次阅读 2020-04-17 17:42:15
    1.什么是Flume FLUME 是HADOOP生态圈中的一个组件。主要应用于实时数据的流处理,比如一旦有某事件触发(如本地交易引起的数据改动)可以将实时的日志数据发向HADOOP文件系统HDFS中 FLUME 可以将数量庞大的数据从...
  • kafka对接flume完成测试

    2020-07-13 14:00:15
    精选30+云产品,助力企业轻松上云!>>> 1.启动...
  • 大数据系列之Flume(1.6)+kafka 整合

    千次阅读 2018-06-30 18:33:13
    大数据系列之Flume+kafka 整合 https://www.cnblogs.com/cnmenglang/p/6550427.html相关文章:大数据系列之Kafka安装 大数据系列之Flume--几种不同的Sources大数据系列之Flume+HDFS关于Flume 的 一些核心概念:组件...
  • Kafka整合Flume

    2019-09-10 09:41:19
    大数据进行流式数据处理的时候Flume采集数据,Kafka消费数据,Spark Streaming处理数据是一种非常常见的架构,这里记录一下Kafka整合Flume的不过,以备后用 这里默认已经安装好了KafkaFlume,不再介绍,大家...
  • 在IDEA的resource文件夹下面新建log4j.properties定义日志格式,其中flume和log4j的整合配置可以查看Log4j Appender #设置日志格式 log4j.rootCategory=ERROR,console,flume log4j.appender.console=org.apache....
  • flume实时采集全量或者增量文件或者文件夹数据到kafka 这里安装的Flume单节点,Kafka单节点,目标是通过Flume去读取文件中的历史数据导入到kafka中,还有就是将实时更新的数据传输到kafka中。 一、Flume安装 Flume的...
  • 大数据环境搭建1、Virtual Box 4.1 2、CentOS 6.5 3、JDK 1.7 4、SecureCRT(自己下载) 5、WinSCP(自己下载) 6、Hadoop 2.4.1 7、Hive 0.13 8、ZooKeeper 3.4.5 9、kafka_2.9.2-0.8.1 10、Spark 1.3.0 ...
  • 大数据Spark“蘑菇云”行动第53课: Spark大型项目广告点击项目技术骨架实现之Spark+Kafka+Flume实战
  • 大数据目前的处理方法有两种:一种是离线处理,一种是实时处理。如何构建我们自己的实时数据处理系统我们选用flume+kafka+flink+es来作为我们实时数据处理工具。因此我们的架构是: flume集群 kafka集群 flink...
  • Kafka整合flume错误

    2019-03-06 18:21:49
    Kafkaflume整合错误:java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
  • 离线分析,需要将数据从kafka中存到hdfs中,这里使用flume,将数据从kafka中导入到hdfs中。flume的启动配置文件(kafkaToHdfs.conf):# ------------------- 定义数据流---------------------...
  • 大数据环境安装和配置(Hadoop2.7.7,Hive2.3.4,Zookeeper3.4.10,Kafka2.1.0,Flume1.8.0,Hbase2.1.1,Spark2.4.0等) 系统说明 搭建步骤详述 一、节点基础配置 二、Hadoop安装和配置 三、Hive安装...
  • 大数据实时流式数据处理是大数据应用中最为常见的场景,与我们的生活也息息相关,以手机流量实时统计来说,它总是能够实时的统计出用户的使用的流量,在第一时间通知用户流量的使用情况,并且最为人性化的为用户提供...
  • 第53课:蘑菇云Spark大数据项目之Zookeeper+Kafka+Flume实战讲解
1 2 3 4 5 ... 20
收藏数 10,354
精华内容 4,141
关键字:

kafka 大数据flume