一个channel只能输出一个结果文件。
一个flume agent 由 source + channel + sink 构成,类比于mapper + shuffer + reducer。
1.source类型
source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据
常用类型:
1) arvo: 用于Flume agent 之间的数据源传递
2) netcat: 用于监听端口
3)exec: 用于执行linux中的操作指令
4) spooldir: 用于监视文件或目录
5) taildir: 用于监视文件或目录,同时支持追加的监听
总结 ,3/4/5三种方式,最常用的是5,适合用于监听多个实时追加的文件,并且能够实现断点续传。
2.channel的参数类型
组件对采集到的数据进行缓存
1) Memory Channel : 加载在内存中(存在数据丢失的风险 )
2) File Channel :落入磁盘
3.sink类型
Sink组件是用于把数据发送到目的地的组件
常使用的类型有:
1) avro: 用于输出到下一个Flume Agent ,一个开源的序列化框架
2) hdfs: 输出到hdfs
3) fill_roll: 输出到本地
4) logger: 输出到控制台
5) hbase: 输出到hbase
连接flume
1.查看指定ip的通信端口
sudo netstat -ntlp | grep 端口号
2.关闭端口
sudo kill 端口进程号
3.连接指定ip地址的指定端口
nc ip 端口号
4.启动flume
1)第一种写法
bin/flume-ng agent --conf conf/ --name a1 --conf-file job/flume-netcat-logger.conf -Dflume.root.logger=INFO,console
2)第二种写法
bin/flume-ng agent -c conf/ -n a1 -f job/flume-netcat-logger.conf -Dflume.root.logger=INFO,console
参数说明:
–conf/-c:表示配置文件存储在conf/目录
–name/-n:表示给agent起名为a1
–conf-file/-f:flume本次启动读取的配置文件是在job文件夹下的flume-telnet.conf文件。
-Dflume.root.logger=INFO,console :-D表示flume运行时动态修改flume.root.logger参数属性值,并将控制台日志打印级别设置为INFO级别。日志级别包括:log、info、warn、error。