Flume基本使用
来源:互联网 发布:如何在linux下编程 编辑:程序博客网 时间:2024/05/20 05:28
Flume的核心组件为source、channle、sink:
组件描述
source可以对接数据源,可以是mysql、file、tcp等
channle为数据传输通道,可指定为内存、文件等
sink为数据输出,可以是file、mysql、es、hdfs、hive、kafka等等
功能描述-1
由于soucre和sink均有多样性,因此可以根据需求非常灵活的组织自己需要的数据流转模式,可以跨越各种限制
功能描述-2
Flume也提供了Filter接口,可以自己根据需求来实现该接口实现数据转换,将流入的数据进行一些过滤、转换后输出,比如:可以刷选出自己需要的数据发送到sink端,也可以将数据格式进行一定的转换后输出到sink
配置案例
以rsyslog为source、kafka为sink进行配置
rsyslog模式为linux自动的日志分析组件rsyslog将数据转发至牟已端口后,在flume中配置监听该端口后,当Flumeq启动后会实时自动消费该端口中的数据,具体配置如下:
#定义source、channle、kafka名称syslogTCPAgent.sources = syslogtcpSrcsyslogTCPAgent.channels = kfkChannelsyslogTCPAgent.sinks = kafkaSink#source配置syslogTCPAgent.sources.syslogtcpSrc.type = syslogtcpsyslogTCPAgent.sources.syslogtcpSrc.host = 192.168.168.155syslogTCPAgent.sources.syslogtcpSrc.port = 5110syslogTCPAgent.sources.syslogtcpSrc.eventSize=50960syslogTCPAgent.sources.syslogtcpSrc.channels = kfkChannel#自定义接口,实现自己需要的内容,没需求可以不配置syslogTCPAgent.sources.syslogtcpSrc.interceptors = jsoninterceptersyslogTCPAgent.sources.syslogtcpSrc.interceptors.jsonintercepter.type = com.test.flume.interceptor.JsonInterceptor$Builder#sink配置syslogTCPAgent.sinks.kafkaSink.type = org.apache.flume.plugins.KafkaSinksyslogTCPAgent.sinks.kafkaSink.metadata.broker.list=hdp01:9092,hdp02:9092,hdp03:9092,hdp04:9092syslogTCPAgent.sinks.kafkaSink.partition.key=0syslogTCPAgent.sinks.kafkaSink.channel = kfkChannelsyslogTCPAgent.sinks.kafkaSink.partitioner.class=org.apache.flume.plugins.SinglePartitionsyslogTCPAgent.sinks.kafkaSink.serializer.class=kafka.serializer.StringEncodersyslogTCPAgent.sinks.kafkaSink.request.required.acks=0syslogTCPAgent.sinks.kafkaSink.producer.type=syncsyslogTCPAgent.sinks.kafkaSink.custom.encoding=UTF-8syslogTCPAgent.sinks.kafkaSink.custom.topic.name=my-test#参数配置syslogTCPAgent.channels.kfkChannel.type = memorysyslogTCPAgent.channels.kfkChannel.capacity = 100000syslogTCPAgent.channels.kfkChannel.transactionCapacity = 5000syslogTCPAgent.channels.kfkChannel.keep-alive = 300#以上配置为基础配置,相关参数可以根据需求不断优化调整
启动脚本以及日志配置
#将启动内容封装在shell里面,命名为flume_visitlog.sh具体内容为/test/apache-flume-1.5.2-kafka/bin/flume-ng agent --conf /test/apache-flume-1.5.2-kafka/conf --conf-file /test/apache-flume-1.5.2-kafka/conf/flume_kafka.conf --name syslogTCPAgent 2>&1 &exit#日志配置/test/apache-flume-1.5.2-kafka/conf 指定了日志配置文件路径配置文件为log4j.properties配置内容:flume.root.logger=ERROR,LOGFILE #日志级别flume.log.dir=/test/logs #日志路径flume.log.file=flume_kafka.log #日志名称
启动&运用
以上配置完成后即可执行 sh flume_kafka.sh启动Flume实例可在source端发送一条数据:echo 'testdata' | nc 192.168.168.155 5110启动一个kafka消费端程序观察是否有数据输出(topic不存在需先创建)kafka-console-consumer.sh --zookeeper hdp02:2181,hdp03:2181,hdp04:2181 --topic my-test观察日志看看是否有异常并调整解决
阅读全文
0 0
- Flume基本使用
- Flume的基本使用
- Flume的基本使用介绍
- FLUME介绍 基本使用 常见问题
- flume的概念和基本使用
- flume使用
- flume使用
- Flume使用
- Flume TailDir 基本流程
- Flume基本知识点
- flume-自定义Sink基本框架
- flume学习:Flume Interceptors的使用
- Flume 的使用案例
- 尝试使用Flume 1.3
- flume-ng 使用系列
- flume的简单使用
- Flume安装使用
- flume配置与使用
- Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
- VS2010 error C2061: 语法错误: 标识符“__RPC__out_xcount_part” 解决方法
- Jconsole连接远程Jetty
- eclipse 导出war包时报svn更新状态失败问题
- Linux 应用开发
- Flume基本使用
- 关于NavigateUrl中绑定Eval()方法时出现"服务器标记的格式不正确"的解决方法
- Circular placeholder reference 'jdbc.driver' in property definitions
- 今天linux下mysql:access denied for user'root'@'localhost' using password yes,以及使用navicat登陆mysql
- css实现弹出框在页面居中
- Python 的枚举 Enum
- C++的STL库一些方法调用
- Python下的tail库 tail.py修正版
- Java多线程编程实战指南(核心篇)读书笔记(一)