本质:日志数据收集工作
注意:一个sink只能从一个channel中取数据。
使用步骤:
- 定义组件
- 配置组件
- 绑定组件
//对应的格式
agentName.sources=sourceName
agentName.channels=channelName
agentName.sinks=sinkName
//配置每个组件的属性,不同的组件类型的配置不同
//可以直接去官网查询
//绑定对应的组件
agentName.sources.sourceName.channels=channelName
agentName.sinks.inkName.channel=channelName
注意:对应的组件的配置信息可以查看官网
5.2 http+mem+logger
//agent的名称 a1
//定义对应的组件
a1.sources=s1
a1.channels=c1
a1.sinks=sk1
//定义对应的属性
//s1 http
a1.sources.s1.type=http
a1.sources.s1.port=8080
//c1 me
a1.channels.c1.type=memory
//sk1 hdfs
a1.sinks.sk1.type=hdfs
a1.sinks.sk1.hdfs.path=hdfs://namenode/flume/webdata 数据放入的位置
有对应的变量可以用来指定对应的动态的文件名,指定文件的前缀,后缀。
监控一个目录
注意:对应一个文件读取完后会加.COMPLETE后缀,
对已经读取完的文件追加数据是不会被再次采集
对文件的名称重命名,会报错。
系统内置的拦截器的使用:
正则过滤:
选择器:作用
一个agent多个source的情况
1,replicating的选择器(默认)
注意:这里agent.sources.selector.mapping.VarName是通过拦截器拦截后修改设置的。
也就是对应的event的header
对应的sink的配置相同
1,对应单个事件处理
2,多个event
写一个内部类,获取拦截器对象
将对应的拦截器打出jia包上传
Sqoop
-m 1:表示仅仅使用一个map程序
--fields-terminated-by ‘,‘:指定导入的分隔符。
mysql:导出到mysql默认用 ,来分割
注意:-- 与import之间有空格。