一、 模块开发----数据采集

1. 需求

在网站web流量日志分析这种场景中,对数据采集部分的可靠性、容错能力要求通常不会非常严苛,因此使用通用的flume日志采集框架完全可以满足需求。

2. Flume日志采集系统

2.1. Flume采集

Flume采集系统的搭建相对简单:

1、在服务器上部署agent节点,修改配置文件

2、启动agent节点,将采集到的数据汇聚到指定的HDFS目录中

针对nginx日志生成场景,如果通过flume(1.6)收集,无论是Spooling Directory Source和Exec Source均不能满足动态实时收集的需求,在当前flume1.7稳定版本中,提供了一个非常好用的TaildirSource,使用这个source,可以监控一个目录,并且使用正则表达式匹配该目录中的文件名进行实时收集。

核心配置如下:

a1.sources = r1

a1.sources.r1.type = TAILDIR

a1.sources.r1.channels = c1

a1.sources.r1.positionFile = /var/log/flume/taildir_position.json

a1.sources.r1.filegroups = f1 f2

a1.sources.r1.filegroups.f1 = /var/log/test1/example.log

a1.sources.r1.filegroups.f2 = /var/log/test2/.*log.*

filegroups:指定filegroups,可以有多个,以空格分隔;(TailSource可以同时监控tail多个目录中的文件)

positionFile:配置检查点文件的路径,检查点文件会以json格式保存已经tail文件的位置,解决了断点不能续传的缺陷。

filegroups.<filegroupName>:配置每个filegroup的文件绝对路径,文件名可以用正则表达式匹配

通过以上配置,就可以监控文件内容的增加和文件的增加。产生和所配置的文件名正则表达式不匹配的文件,则不会被tail。

2.2. 数据内容样例

58.215.204.118 - - [18/Sep/2013:06:51:35 +0000] "GET /wp-includes/js/jquery/jquery.js?ver=1.10.2 HTTP/1.1" 304 0 "http://blog.fens.me/nodejs-socketio-chat/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0"

字段解析:

1、访客ip地址:   58.215.204.118

2、访客用户信息:  - -

3、请求时间:[18/Sep/2013:06:51:35 +0000]

4、请求方式:GET

5、请求的url:/wp-includes/js/jquery/jquery.js?ver=1.10.2

6、请求所用协议:HTTP/1.1

7、响应码:304

8、返回的数据流量:0

9、访客的来源url:http://blog.fens.me/nodejs-socketio-chat/

10、访客所用浏览器:Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0

第1节 网站点击流项目(上):4、网站的数据采集,使用flume的taildir实现多个文件的监控采集的更多相关文章

  1. 第2节 网站点击流项目(下):6、访客visit分析

    0: jdbc:hive2://node03:10000> select * from ods_click_stream_visit limit 2;+--------------------- ...

  2. 第2节 网站点击流项目(下):7、hive的级联求和

    一.hive级联求和的简单例子: create table t_salary_detail(username string,month string,salary int)row format del ...

  3. 第2节 网站点击流项目(下):3、流量统计分析,分组求topN

    四. 模块开发----统计分析 select * from ods_weblog_detail limit 2;+--------------------------+---------------- ...

  4. 05.网站点击流数据分析项目_模块开发_ETL

    项目的数据分析过程在hadoop集群上实现,主要应用hive数据仓库工具,因此,采集并经过预处理后的数据,需 要加载到hive数据仓库中,以进行后续的挖掘分析. ETL:用来描述将数据从来源端经过抽取 ...

  5. 大数据学习——SparkStreaming整合Kafka完成网站点击流实时统计

    1.安装并配置zk 2.安装并配置Kafka 3.启动zk 4.启动Kafka 5.创建topic [root@mini3 kafka]# bin/kafka-console-producer. -- ...

  6. Eclipse中项目上有小红叉,但就是找不到报错文件(总结,持续更新)

    1.jdk问题解决:jdk配置参考:http://blog.csdn.net/superit401/article/details/72847110 2.build path:项目右键——Build ...

  7. mac下安装git,并将本地的项目上传到github

    mac下安装git 安装过程: 1.下载Git installer http://git-scm.com/downloads 2.下载之后打开,双击.pkg安装 3.打开终端,使用git --vers ...

  8. 精通Web Analytics 2.0 (6) 第四章:点击流分析的奇妙世界:实际的解决方案

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第四章:点击流分析的奇妙世界:实际的解决方案 到开始实际工作的时候了.哦耶! 在本章中,您将了解到一些最重要的网络分析报告,我将 ...

  9. 精通Web Analytics 2.0 (5) 第三章:点击流分析的奇妙世界:指标

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第三章:点击流分析的奇妙世界:指标 新的Web Analytics 2.0心态:搞定它.新的闪亮系列工具:是的.准备好了吗?当然 ...

随机推荐

  1. SpringMVC中在Controller类的每个方法执行前调用某个方法的实现

    在使用SpringMVC做项目的时候,如果想在@Controller类中每个@RequestMapping方法执行前都调用某个方法,要怎么实现呢?答案是使用Spring的@ModelAttribute ...

  2. ubuntu-18.04 修改用户名密码

    1. 开放root登录 设置root密码 $ sudo passwd root 切换到root 用户 $ sudo -i 修改/etc/pam.d/gdm-autologin $ vim /etc/p ...

  3. scrapy extention实战-空闲时关闭爬虫

    scrapy extention实战 1.      空闲-关闭 使用扩展+spider_idle信号关闭爬虫. 启用扩展:settings.py EXTENSIONS = {     #'scrap ...

  4. python字典中值为列表或字典的构造方式

    1.值为列表的构造方法 dic = {} dic.setdefault(key,[]).append(value) >>dic.setdefault('a',[]).append(1) & ...

  5. 【JAVA随摘笔记一】进制转换

    // 十进制转其它进制(二进制,八进制,十六进制) ; System.out.println(Integer.toBinaryString(k));// 转二进制 10001 System.out.p ...

  6. 107、Java中String类之判断开头或结尾

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  7. 查漏补缺之go依赖管理

    vendor 使用vendor进行包管理,首先要保证项目在$GOPATH/src/路径下(踩过坑),然后build时就会按照如图所示的优先级进行包的搜索. 一个没有找到包的实例: module 其他 ...

  8. 绕过waf

    WAF:有硬件和软件类型. 常见的软WAF,常见:安全狗.云锁.云盾.护卫神. SQL注入的绕过:  WAF核心机制就是正则匹配. 通过正则匹配,如果符合规则,就拦截. 比如sql注入中and 1=1 ...

  9. 灵光一闪来个科普贴:Linux文件系统

    在计算机系统中,各种需要保存的信息都是以文件的形式存在的.文件管理是对系统信息资源的管理,是操作系统的一项重要功能. 1.文件与文件系统: 1.1文件: 文件是具有名字的一组相关信息的有序集合,存放在 ...

  10. day13-Python运维开发基础(递归与尾递归)

    递归与尾递归 # ### 递归函数 """ 递归函数: 自己调用自己的函数 递:去 归:回 有去有回是递归 """ # 简单递归 def d ...