此例子为官网例子,所以直接上代码:

 1 package com.wyf.cascade;
 2
 3 import java.util.Properties;
 4
 5 import cascading.flow.Flow;
 6 import cascading.flow.FlowConnector;
 7 import cascading.operation.regex.RegexParser;
 8 import cascading.pipe.Each;
 9 import cascading.pipe.Pipe;
10 import cascading.scheme.TextLine;
11 import cascading.tap.Hfs;
12 import cascading.tap.Lfs;
13 import cascading.tap.Tap;
14 import cascading.tuple.Fields;
15
16 /**
17  * 日志解析
18  *
19  * @author: wyf
20  * @version: Jul 12, 2013 2:47:44 PM
21  */
22 public class LogParser {
23     public static void main(String[] args) {
24         String inputPath = "/home/wyf/workspace/HadoopCascading/data/apache.200.txt";
25         String outputPath = "/home/wyf/workspace/HadoopCascading/data/output";
26
27         //从本地文件系统中创建源头,默认TextLine规则声明了两个字段"offset"和“line”
28         Tap localLogTap = new Lfs(new TextLine(), inputPath);
29
30         //声明从日志文件解析出来的字段名称
31         Fields apacheFields = new Fields("ip", "time", "method", "event", "status", "size");
32
33         // define the regular expression to parse the log file with
34         //设置解析规则
35         String apacheRegex = "^([^ ]*) +[^ ]* +[^ ]* +\\[([^]]*)\\] +\\\"([^ ]*) ([^ ]*) [^ ]*\\\" ([^ ]*) ([^ ]*).*$";
36
37         //设置输出组的顺序
38         int[] allGroups = { 5, 6, 1, 2, 3, 4};
39
40         // create the stream parser
41         //创建解析器
42         RegexParser parser = new RegexParser(apacheFields, apacheRegex, allGroups);
43
44         //创建管道元素,指定管道名称为"parser", 输入字段名为"line"
45         Pipe importPipe = new Each("parser", new Fields("line"), parser);
46
47         //创建输出头,默认TextLine输出所有字段
48         Tap remoteLogTap = new Hfs(new TextLine(), outputPath);
49
50         //设置当前工作jar
51         Properties properties = new Properties();
52         FlowConnector.setApplicationJarClass(properties, LogParser.class);
53
54         //把输入源头与输出头用管道链接
55         Flow parsedLogFlow = new FlowConnector(properties).connect(localLogTap, remoteLogTap, importPipe);
56
57         //启动解析日志流
58         parsedLogFlow.start();
59
60         //阻塞等待,直到任务完成
61         parsedLogFlow.complete();
62     }
63 }

例子理解:

  cascading执行是以流程处理,先建立一个"起始节点"(localLogTap),在建立一个"终止节点"(remoteLogTap)(严格讲这种说法不准确,在此例子中暂且这么说),然后在起始节点与终止节点间连"一条线"(importPipe),OK现在可以执行了

转载于:https://www.cnblogs.com/geopanda/p/3186402.html

Cascading(一)之日志解析相关推荐

  1. mysql.err日志分析_Mysql日志解析

    转载:https://www.cnblogs.com/Fly-Wind/p/5674382.html 修改Mysql配置 Mysql配置地址为: C:\Program Files (x86)\MySQ ...

  2. canal应用一:基于mysql binlog的日志解析工具

    文章目录 前言 mysql 配置 canal 下载安装 canal client canal admin 常见问题 前言 canal 是阿里巴巴开发的MySQL数据实时同步工具,基于binlog增量日 ...

  3. Spark HistoryServer日志解析清理异常

    Spark HistoryServer日志解析&清理异常 一.背景介绍 用户在使用 Spark 提交任务时,经常会出现任务完成后在 HistoryServer(Spark 1.6 和 Spar ...

  4. mysql batch mode_MySQL数据库增量日志解析工具 Canal 实战

    简介 canal,阿里开源工具,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 应用场景 数据库实时备份 业务cache刷新 索引构建和实时维护,例:将商品数据推送到es中构建 ...

  5. 自动生成web服务器日志解析规则

    2019独角兽企业重金招聘Python工程师标准>>> 当前web服务器的多样化使得访问日志的数据清洗变得越来越复杂,企业需要投入专业的数据清洗人员编写数据清洗规则(解析规则或者解析 ...

  6. FTP服务器日志解析

    2019独角兽企业重金招聘Python工程师标准>>> FTP服务器日志解析 FTP是老牌的文件传输协议,在网络中应用非常广泛.本节就Vsftp服务器的日志进行重点讨论,在本书的FT ...

  7. 日志记录到字段变更_Wal日志解析工具开源: Walminer

    作者简介 李传成: 瀚高软件内核研发工程师,主要研究方向为数据库的备份和恢复,对wal日志的原理和应用有较深的理解.自研了wal日志解析工具walminer.pg块恢复工具pg_lightool. 一 ...

  8. 解析mysqlbinlog日志_关于mysql-binlog日志解析框架

    欢迎广大码农爱好者向我推荐框架,我会择其精要.有趣者分享给大家. 今天下午,有同学献出了一款软件,说是海外澳洲番邦向朕进贡的,于是品尝了一番. 软件名称:mysql-binlog-connector ...

  9. GitHub--logparser(日志解析器)

    Apache HTTPD和NGINX访问日志解析器 这是一个Logparsing框架,旨在简化Apache HTTPD和NGINX访问日志文件的解析. 基本思想是,您应该能够拥有一个解析器,可以通过简 ...

最新文章

  1. Linux系统利用Crontab命令实现定时重启
  2. 18. OD-反调试研究,破解反调试,编写反调试
  3. 彻底解决Spring MVC 中文乱码 问题
  4. 最大公约数GCD的三种算法程序
  5. BZOJ2563: 阿狸和桃子的游戏 贪心
  6. Jeff Atwood:软件工程已死?
  7. linux 微信机器人,开源Linux操作系统的机器人(组图)
  8. clodop控件使用
  9. Visual Studio发生‘DLL Initialization Failed‘的解决方法
  10. Tableau9——计算字段
  11. CSAPP实验记录(三):Attack lab
  12. 关于win10系统中谷歌浏览器崩溃的问题
  13. 我的优点是会使用计算机用英语怎,优点用英语,我的50个优点。
  14. Python fitter包:拟合数据样本的分布
  15. 计算机制作节日贺卡教案,节日贺卡教案
  16. Matlab:向饼图添加图例
  17. win7文件权限设置
  18. 身份证号,手机号校验
  19. 突破的快感,用QQ旋风下载迅雷快传的资源
  20. 《Machine Learning in Action》—— 剖析支持向量机,优化SMO

热门文章

  1. SpringBoot中自定义Banner(启动图案)
  2. select2 api参数的文档
  3. 快学Scala习题解答—第十章 特质
  4. iOS 动画系列之动画解释
  5. 【leetcode】3 minstack
  6. qt 连接mysql
  7. JS的正则表达式[收藏]
  8. mysql热备份还原_利用xtrabackup完成mysql的热备份与还原
  9. ARM的cache和写缓冲器(write buffer)
  10. 2021/6/20~22 每天学习python 30分钟 -了解python - python的运算符