组件 flume和sqoop的区别:
flume采集CSV TXT等文本文件
sqoop专门做MySQL关系型数据库的同步
flume对应的jre版本:
flume数据流模型:
flume的组件:
- client是客户端:client生产数据,运行在一个独立的线程中 在使用
- flume进行采集时,一条数据就是一个event
- flow是一个数据流
- agent表示一个单元,包含source、channel、sink三个组件,一个单元会独立运行一个jvm,也叫一个job
- source用来收集client的数据,传给channel(核心)
- channel是管道,用来接受source的数据并且传到sink(核心)
- sink负责从channel端将数据拉取过来,写到某一个存储位置(核心)
选择器和拦截器是flume里面的功能,我们在使用过程中可以选择设置选择器和拦截器
- 选择器selector:针对采集来的数据进行一个区分,将大于多少的发到哪,小于多少的发到哪,使用选择器进行一个数据流的判断
- 拦截器interceptor:不是去拦截数据,而是针对event中的消息头进行操作,可以使用拦截器来对消息头进行编写,例如添加消息头中的时间戳、数据、字段等等
不存在task,因为不存在任务计算,一个agent代表一个任务,一个flume可以启动多个任务(在资源允许的情况下),可以同时运行,一个agent也可以有多个source、channel、sink,但功能不会变