Source
source:表示数据的来源。
Exec Source
用于文件监控,可以实时监控文件中新增内容,类似linux tail -F效果,注意tail -f和tail -F的区别
NetCat TCP/UDP Source
采集指定TCP、UDP端口的的数据,可以读取流经端口的每一行数据
Spooling Directory Source
采集文件夹中新增的文件,这个比较常用。
Kafka Source
从Kafka消息队列中采集数据
Channel
channel:接受source发送的数据,作为临时存储数据的管道
Memory Channel
使用内存作为存储数据的介质,优点是效率很高,因为不涉及磁盘IO,缺点是可能丢失数据,或者内存不够用的情况
File Channel
使用文件作为数据存储的介质,有点是数据不会丢失,缺点是相对内存来说效率较低,但是慢并没有想的那么慢,实际上还是比较常用的channel
Spilable Memory Channel
混合文件和内存作为存储介质,即优先把数据存储到内存中,当内存到达阈值后存储到文件,优点是解决内存不够用的问题,缺点是一样会存在数据丢失的风险
Sink
Logger Sink
将数据作为日志处理,可以选择直接打印到控制台或者写入文件,这种方式主要用于测试,方便看到效果。
HDFS Sink
将数据传输到HDFS中,这个是比较常见的,主要针对离线计算场景。
Kafka Sink
将数据传输到Kafka消息队列中,这个也是比较常见的,主要针对实时计算场景
,优点是数据不落盘,实时传输。