码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 筛选日志并生成序列化文件


    1.在idea中创建项目 selectData.

    2.添加依赖,插件包,指定打包方式,日志文件

    大家可以直接从前面项目复制。

    3.本次只需要进行序列化操作,所以不需要Reducer模块,编写Mapper模块

    package com.maidu.selectdata;
    
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Mapper;
    
    import java.io.IOException;
    
    /**
     * @author:yt
     * @since:2024-04-25
     */
    public class MyMapper extends Mapper {
        @Override
        protected void map(Object key, Text value,  Context context) throws IOException, InterruptedException {
             String line =value.toString();
             String []arr=line.split(",");
             if(arr[4].contains("2021/1") ||arr[4].contains("2021/2")){
                 context.write(new Text(arr[2]),new Text(arr[4].substring(0,arr[4].indexOf(" "))   ));
             }
        }
    }

    4、编写Driver模块

    package com.maidu.selectdata;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.IntWritable;
    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.input.TextInputFormat;
    import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
    import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
    import org.apache.hadoop.util.GenericOptionsParser;
    
    /**
     * @author:yt
     * @since:2024-04-25
     */
    public class SelectData {
        public static void main(String[] args) throws Exception {
    
            Configuration conf =new Configuration();
            String []otherArgs = new GenericOptionsParser(conf,args).getRemainingArgs();
            if(otherArgs.length<2){
                System.out.println("必须输入文件输入路径和输出路径");
                System.exit(2);
            }
    
            Job job = Job.getInstance(conf,"visit count");
            job.setJarByClass(SelectData.class);
            job.setMapperClass(MyMapper.class);
            job.setOutputKeyClass(Text.class);
            job.setOutputValueClass(Text.class);
            //设置输入格式
            job.setInputFormatClass(TextInputFormat.class);
            //设置输出格式
            job.setOutputFormatClass(SequenceFileOutputFormat.class);
            //设置reduce任务为0
            job.setNumReduceTasks(0);
            for(int i=0;i 
    

    5、使用maven打包为jar,上传到master上

    6、执行jar

    [yt@master ~]$ hadoop jar selectData-1.0-SNAPSHOT.jar  com.maidu.selectdata.SelectData /bigdata/raceData.csv /bigdata/select_data.txt

    7、查看序列化文件

  • 相关阅读:
    人工智能学习相关笔记
    视频集中存储EasyCVR平台播放一段时间后出现黑屏是什么原因?该如何解决?
    电影寒冬之下,票房靠“主旋律”能撑住场吗?《扫黑行动》仍在重播
    常用工具类之Spring-boot-configuration-processor的学习使用
    JVM-GC-常用调优命令和GC参数
    暑假leetcode剑指offer每日一题打卡-第二十天-剑指 Offer 49. 丑数(middle)
    【ArcGIS】渔网A和不规则栅格B算面积比
    孙卫琴的《精通JPA与Hibernate》的读书笔记:通过JPA处理Blob和Clob类型的数据
    后端返回图片流前端展示图片
    OpenCV之VideoCapture
  • 原文地址:https://blog.csdn.net/lydia88/article/details/138184788
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号