Cascading(一)之日志解析
此例子为官网例子,所以直接上代码:
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(一)之日志解析相关推荐
- mysql.err日志分析_Mysql日志解析
转载:https://www.cnblogs.com/Fly-Wind/p/5674382.html 修改Mysql配置 Mysql配置地址为: C:\Program Files (x86)\MySQ ...
- canal应用一:基于mysql binlog的日志解析工具
文章目录 前言 mysql 配置 canal 下载安装 canal client canal admin 常见问题 前言 canal 是阿里巴巴开发的MySQL数据实时同步工具,基于binlog增量日 ...
- Spark HistoryServer日志解析清理异常
Spark HistoryServer日志解析&清理异常 一.背景介绍 用户在使用 Spark 提交任务时,经常会出现任务完成后在 HistoryServer(Spark 1.6 和 Spar ...
- mysql batch mode_MySQL数据库增量日志解析工具 Canal 实战
简介 canal,阿里开源工具,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 应用场景 数据库实时备份 业务cache刷新 索引构建和实时维护,例:将商品数据推送到es中构建 ...
- 自动生成web服务器日志解析规则
2019独角兽企业重金招聘Python工程师标准>>> 当前web服务器的多样化使得访问日志的数据清洗变得越来越复杂,企业需要投入专业的数据清洗人员编写数据清洗规则(解析规则或者解析 ...
- FTP服务器日志解析
2019独角兽企业重金招聘Python工程师标准>>> FTP服务器日志解析 FTP是老牌的文件传输协议,在网络中应用非常广泛.本节就Vsftp服务器的日志进行重点讨论,在本书的FT ...
- 日志记录到字段变更_Wal日志解析工具开源: Walminer
作者简介 李传成: 瀚高软件内核研发工程师,主要研究方向为数据库的备份和恢复,对wal日志的原理和应用有较深的理解.自研了wal日志解析工具walminer.pg块恢复工具pg_lightool. 一 ...
- 解析mysqlbinlog日志_关于mysql-binlog日志解析框架
欢迎广大码农爱好者向我推荐框架,我会择其精要.有趣者分享给大家. 今天下午,有同学献出了一款软件,说是海外澳洲番邦向朕进贡的,于是品尝了一番. 软件名称:mysql-binlog-connector ...
- GitHub--logparser(日志解析器)
Apache HTTPD和NGINX访问日志解析器 这是一个Logparsing框架,旨在简化Apache HTTPD和NGINX访问日志文件的解析. 基本思想是,您应该能够拥有一个解析器,可以通过简 ...
最新文章
- Linux系统利用Crontab命令实现定时重启
- 18. OD-反调试研究,破解反调试,编写反调试
- 彻底解决Spring MVC 中文乱码 问题
- 最大公约数GCD的三种算法程序
- BZOJ2563: 阿狸和桃子的游戏 贪心
- Jeff Atwood:软件工程已死?
- linux 微信机器人,开源Linux操作系统的机器人(组图)
- clodop控件使用
- Visual Studio发生‘DLL Initialization Failed‘的解决方法
- Tableau9——计算字段
- CSAPP实验记录(三):Attack lab
- 关于win10系统中谷歌浏览器崩溃的问题
- 我的优点是会使用计算机用英语怎,优点用英语,我的50个优点。
- Python fitter包:拟合数据样本的分布
- 计算机制作节日贺卡教案,节日贺卡教案
- Matlab:向饼图添加图例
- win7文件权限设置
- 身份证号,手机号校验
- 突破的快感,用QQ旋风下载迅雷快传的资源
- 《Machine Learning in Action》—— 剖析支持向量机,优化SMO