⼤数据流处理框架介绍 ⼤数据流处理框架介绍 实时流处理简单概述:实时是说整个流处理相应时间较短,流式计算是说数据是源源不断的,没有尽头的。实时流处理⼀般是将业务系 统产⽣的数据进⾏实时收集,交由流处理框架进⾏数据清洗,统计,⼊库,并可以通过可视化的⽅式对统计结果进⾏实时的展⽰。本⽂涉及 到的框架或技术有 Flume,Logstash,kafka,Storm, SparkStreaming等。 实时流处理的的流程与技术选型 : ⼀、⽇志收集 由于业务系统⼀般是游离与流处理集群如SparkStreaming、Storm之外的,所以我们需要对业务系统的数据进⾏实时收集。这就⽤到了 ⽇志收集框架,⽇志收集框架主要需要解决三个问题:数据从哪⼉来,数据到哪⼉去,实时收集。因为在流处理中为了防⽌突发或激增流量 压垮流处理集群,通常将收集过后的数据输出到kafka分布式消息系统,然后流处理集群去消费kafka中的数据,下⾯介绍两种常⽤的⽇志收 集框架以及他们如何对接kafka. 1).Apache Flume 这是⼀个apache的顶级项⽬,所以域名为flume.apache, 下⾯是官⽹上的原理图,Flume框架把每个收集任务都定义为⼀个Agent(这是 ⼀个JAVA进程),他有三个基本组件Source、Channel、Sink。 source:收集数据,可以对接各种常⽤数据源,如⽂件(exec source),kafka(kafka source),jms(java消息系统)等。 channel:source组件把数据收集来以后,临时存放在channel(管道)中,即channel组件在agent中是专门⽤来存放临时数据的,并起 到数据缓冲的作⽤。常⽤的channel有memory chanel 、jdbc chanel 、file channel 等等。 sink:sink组件是⽤于从channel中取数据并送到⽬的地的组件,⽬的地包括hdfs、logger、avro、thrift、file、hbase等。 其实flume的使⽤就是编写配置⽂件,下⾯是使⽤flume将Nginx的⽇志对接kafka的配置⽂件,我们将该收集任务命名为 exec-memory-kafka,只需如下编写: #配置source、sink、channel exec-memory-kafka.sources=exec-source #指定source (数据从哪⼉来),可以指定多个数据源,⽤逗号分隔。 exec-memory-kafka.sinks=kafka-sink #指定sink(数据到哪⼉去) exec-memory-kafka.channels=memory-channel #指定channel #source详细配置 exec-memory-kafka.sources.exec-source.type=exec 执⾏操作系统命令 exec-memory-kafka.sources.exec-sourcemand=sudo tail -F /var/log/nginx/access.log #监控Nginx⽇志⽂件 exec-memory-kafka.sources.exec-source.shell=/bin/sh -c #shell命令的前缀 #channel 详细配置 exec-memory-kafka.channels.memory-channel.type=memory #内存channel #sink详细配置 exec-memory-kafka.sinks.kafka-sink.type=org.apache.flume.sink.kafka.KafkaSink #类型 为kafka sink exec-memory-kafka.sinks.kafka-sink.brokerList=hadoop000:9092 #kafaka服务的地址,多个⽤逗号分隔 exec-memory-kafka.sinks.kafka-sink.topic=test1 #指定主题 exec-memory-kafka.sinks.kafka-sink.batchSize=5 #指定每多少条收集⼀次,这⾥是每5条发送⼀次。 exec-memory-kafka.sinks.kafka-sink.requiredAcks=1 #使kafka对是否收到数据进⾏确认,确保数据不会丢失 #为sink和source指定channel exec-memory-kafka.sources.exec-source.channels=memory-channel exec
- 粉丝: 167
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助