第五章 数据分析
==日志收集==
@inotify机制
Linux内核从2.6.13开始,引入了inotify机制,通过inotify机制,能够对文件系统的变化进行监控,如对文件进行删除
,修改等操作,可以及时通知应用程序进行相关事件的处理。这种响应性的处理机制,避免了频繁的文件轮询任务,提高
了任务的处理效率。
#uname -a
查看Linux内核
#grep INOTIFY_USER /boot/config-$(uname -a)
查看系统是否支持inotify
@架构和存储
inotify解决了日志收集的效率问题,ActiveMQ解决了日志数据分发的问题,接下来要解决的问题是日志收集系统架构与
存储方案的选择问题
一个常见的日志收集系统的架构:
数据需要经过inotify客户端,经由ActiveMQ进行转发,通过storm进行实时处理,再存储到MySQL,HDFS, Hbase或者
Memcache这些存储系统当中,最后再进行深度分析或者实时的展现。
另一个解决方案就是使用Chukwa(Apache的Hadoop项目),如下chukwa架构图:
@离线数据分析
到2020年这一数值将增长到35ZB(35万亿GB)
根据数据分析的实时与否,可以将数据分析任务分为实时分析任务和离线分析任务
根据分析的数据类型不同,又可分为流式数据处理和批量数据处理等类型