Hadoop计数器怎么用
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,这篇文章主要为大家展示了"Hadoop计数器怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Hadoop计数器怎么用"这篇文章吧。数据清洗(ETL)在
千家信息网最后更新 2024年12月13日Hadoop计数器怎么用
这篇文章主要为大家展示了"Hadoop计数器怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Hadoop计数器怎么用"这篇文章吧。
数据清洗(ETL)
在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。
1.需求
去除日志中字段长度小于等于11的日志。
(1)输入数据
web.log
(2)期望输出数据
每行字段长度都大于11
2.需求分析
需要在Map阶段对输入的数据根据规则进行过滤清洗。
3.实现代码
(1)编写LogMapper类
package com.atguigu.mapreduce.weblog;import java.io.IOException;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.NullWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;public class LogMapper extends Mapper{ Text k = new Text(); @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { // 1 获取1行数据 String line = value.toString(); // 2 解析日志 boolean result = parseLog(line,context); // 3 日志不合法退出 if (!result) { return; } // 4 设置key k.set(line); // 5 写出数据 context.write(k, NullWritable.get()); } // 2 解析日志 private boolean parseLog(String line, Context context) { // 1 截取 String[] fields = line.split(" "); // 2 日志长度大于11的为合法 if (fields.length > 11) { // 系统计数器 context.getCounter("map", "true").increment(1); return true; }else { context.getCounter("map", "false").increment(1); return false; } }}
(2)编写LogDriver类
package com.atguigu.mapreduce.weblog;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.NullWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class LogDriver { public static void main(String[] args) throws Exception {// 输入输出路径需要根据自己电脑上实际的输入输出路径设置 args = new String[] { "e:/input/inputlog", "e:/output1" }; // 1 获取job信息 Configuration conf = new Configuration(); Job job = Job.getInstance(conf); // 2 加载jar包 job.setJarByClass(LogDriver.class); // 3 关联map job.setMapperClass(LogMapper.class); // 4 设置最终输出类型 job.setOutputKeyClass(Text.class); job.setOutputValueClass(NullWritable.class); // 设置reducetask个数为0 job.setNumReduceTasks(0); // 5 设置输入和输出路径 FileInputFormat.setInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); // 6 提交 job.waitForCompletion(true); }}
以上是"Hadoop计数器怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数据
日志
输入
输出
计数器
内容
程序
篇文章
路径
长度
清洗
运行
字段
需求
学习
帮助
合法
业务
个数
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
王者荣耀Q区的所有服务器
服务器bios序列号怎么查
海康服务器价格
安徽发布微博网络安全宣传
12306数据库技术工作
服务器的管理后台
db2数据库重命名
张力网络安全智库专家
gistic数据库
哪些行业需要网络技术
网络安全 key或ctf值
工业网络技术是什么类型的
linux 服务器查看
服务器网络安全应急预案演练
信阳交互软件开发价格
c语言实现简单的数据库
软件开发能了解什么软件
软件开发没进项怎么抵税
我国哪一年颁布网络安全法
目前网络安全现状及发展趋势
呼市网络安全培训学校
广东戴尔服务器虚拟化
windows软件开发步骤
苏州大数据软件开发定制费用
广州兄弟连软件开发培训班
数据库安全检测工具下载
vba 范围最大的数据库
网络安全的安全目标
快手平台服务器怎么登陆
目前网络安全现状及发展趋势