6. 通过系统日志采集大数据
-
目前使用最广泛的、用于系统日志采集的海量数据采集工具有 Hadoop 的 Chukwa、ApacheFlumeAFacebook 的 Scribe 和 LinkedIn 的 Kafka 等。
-
以上工具均采用分布式架构,分布式采集速度更快。
Flume 的基本概念
此图借鉴网站
关键字
- 事件驱动,事件一般是一条记录
- Source 捕获事件,进行特定的格式化,Source 会把事件推入(单个或多个) Channel 中
- Channel 是一个缓冲区,直到Sink完成之后才删除
- Sink 负责持久化日志或者把事件推向另一个 Source
Flume 使用方法
- 编写一个用户配置文件,配置文件当中描述 Source、Channel 与 Sink 的具体实现
- 运行一个 Agent 实例
- Agent 实例的过程中会读取配置文件的内容,这样 Flume 就会采集到数据
- Flume 提供了大量内置的 Source、Channel 和 Sink 类型,而且不同类型的Source、Channel 和 Sink 可以进行灵活组合。
配置文件的编写原则
- 从整体上描述 Agent 中 Sources、Sinks、Channels 所涉及的组件
- 详细指定Agent中每个Sources,Sinks 和Channels的具体实现
- 指定 Source 到底是什么类型的,是接收文件的、接收 HTTP 的,还是接收 Thrift 的。
- 对于 Sink,需要指定结果是输出到 HDFS 中,还是 HBase 中等
- 对于Channel,需要指定格式是内存、数据库,还是文件等
- 通过 Channel 将 Sour