ps如何做切片网站按钮,wordpress安装模板文件,首钢建设一公司网站,连云港网站推广优化一、Flume的概念
1、flume 作为 cloudera 开发的实时日志收集系统
2、flume一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方#xff0c;用于收集数据;同时#xff0c;Flume提供对数据进行简单处理#xff0c;并写到各种…一、Flume的概念
1、flume 作为 cloudera 开发的实时日志收集系统
2、flume一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方用于收集数据;同时Flume提供对数据进行简单处理并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力 。
3、flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位它携带日志数据(字节数组形式)并且携带有头信息这些Event由Agent外部的Source生成当Source捕获事件后会进行特定的格式化然后Source会把事件推入(单个或多个)Channel中。你可以把Channel看作是一个缓冲区它将保存事件直到Sink持久化该事件到日志或把事件推向另一个Source。
二、Flume 客户端
Client生产数据运行在一个独立的线程如web服务器应用系统
三、Flume Event
一个数据单元消息头和消息体组成。Events可以是日志记录、 avro 对象等。
四、Flume Flow
Event从源点到达目的点的迁移的抽象
五、Flume Agent
一个独立的Flume进程包含组件Source、 Channel、 Sink。Agent使用JVM 运行Flume。每台机器运行一个agent但是可以在一个agent中包含多个sources和sinks。
六、Flume Source插件
1、数据收集组件。source从Client收集数据传递给Channel 2、source的exec配置
agent1.sources.exec-source1.channels ch1
agent1.sources.exec-source1.type exec
agent1.sources.exec-source1.commandtail -F /usr/local/hadoop/logs/hadoop-root-namenode-node10.log
3、source的spool配置
agent1.sources.spooldir-source1.channels ch1 ch2
agent1.sources.spooldir-source1.type spooldir
agent1.sources.spooldir-source1.spoolDir/usr/local/flume/tmpData
agent1.sources.spooldir-source1.basenameHeader true
4、source的avro配置
agent1.sources.avro-source1.channels ch1
agent1.sources.avro-source1.type avro
agent1.sources.avro-source1.bind 0.0.0.0
agent1.sources.avro-source1.port 41414
七、Flume channel插件
1、中转Event的一个临时存储保存由Source组件传递过来的Event。Channel连接 sources 和 sinks 这个有点像一个队列。 八、Flume 的sink插件
1、从Channel中读取并移除Event 将Event持久化到外部存储或传递到FlowPipeline中的下一个Agent如果有的话Sink从Channel收集数据运行在一个独立线程。 2、sink到log的配置
agent1.sinks.log-sink1.channel ch1
agent1.sinks.log-sink1.type logger
3、sink到kafka的配置
#设置Kafka接收器
agent1.sinks.k2.type org.apache.flume.sink.kafka.KafkaSink
#设置Kafka的broker地址和端口号
agent1.sinks.k2.brokerListnode10:9092,node11:9092,node12:9092
agent1.sinks.k2.metadata.broker.listnode10:9092,node11:9092,node12:9092
agent1.sinks.k2.producer.typesync
#设置Kafka的Topic
agent1.sinks.k2.kafka.topicTestTopic2
#设置序列化方式
agent1.sinks.k2.serializer.classkafka.serializer.StringEncoder
agent1.sinks.k2.channelch1
4、sink的avro配置
agent1.sinks.avro-sink1.channel ch1
agent1.sinks.avro-sink1.type avro
agent1.sinks.avro-sink1.hostnamenode10
agent1.sinks.avro-sink1.port41414
九、Flume拦截器
1、需要对数据进行过滤时需要谁有Flume拦截器
2、拦截器的位置在Source和Channel之间当我们为Source指定拦截器后我们在拦截器中会得到event根据需求我们可以对event进行保留还是抛弃抛弃的数据不会进入Channel中 3、Flume数据流 十、一个source对应多个channel和多个sink的配置
channel的配置
agent1.channels.ch1.type memory
agent1.channels.ch2.type memory
source的配置
agent1.sources.spooldir-source1.channels ch1 ch2
agent1.sources.spooldir-source1.type spooldir
agent1.sources.spooldir-source1.spoolDir/usr/local/flume/tmpData
agent1.sources.spooldir-source1.basenameHeader true
sink的配置
# 激活各个组件同类型的组件以空格分开
agent1.channels ch1 ch2
agent1.sources spooldir-source1
agent1.sinks hdfs-sink1 k2