xiaoxiaojavacsdn 2020-05-01
个人理解是个 分布式的日志传输工具
source负责数据源的对接,根据数据源的类型不同,需要使用不同类型的source
sink负责将数据写入到指定的输出位置,根据输出目的地的不同,需要使用不同的sink。一个sink只能去一个channel取数据。
是source和sink的连接,负责缓冲event,source将数据放入到channel,sink主动从channel取,当sink成功从channel取出数据后,channel的event会被删除。
flume中有三种 channel,分别为Memory Channel、File Channel以及Kafka。根据字面意思,memmory 模式中event保存在内存中,但是会丢失数据。file模式event是存储在硬盘中,可靠但是速度慢 。
event是flume数据传输的基本单位,由map和byte[]组成。
一个source需要向多个channel写入数据时,需要使用channel selector选择合适的channel,常用两个类型
多个sink组成一个sink组,每个sink只能指定一个channel,当多个sink对应相同的channel时,需要配置sinkprocessor决定event分配给哪一个sink