zoukankan      html  css  js  c++  java
  • java mapreduce二次排序

    原文链接:

    https://www.toutiao.com/i6765808056191156748/

    目的:

    二次排序就是有下面的数据

    a 3

    a 1

    a 100

    c 1

    b 2

    如果只按照abc排序就会变成

    a 3

    a 1

    a 100

    b 2

    c 1

    我们希望是第二列也参与排序

    a 1

    a 3

    a 100

    b 2

    c 1

    创建Maven项目

    java mapreduce二次排序

     

    配置POM文件

    java mapreduce二次排序

     

    java mapreduce二次排序

     

    java mapreduce二次排序

     

    我们

    java mapreduce二次排序

     

    我们自定义Writable类,方便我们序列化

    java mapreduce二次排序

     

    添加属性 代表key-value的两个部分

    java mapreduce二次排序

     

    编写构造方法

    java mapreduce二次排序

     

    编写一个set方法,方便我们使用

    java mapreduce二次排序

     

    编写序列化和反序列化方法

    java mapreduce二次排序

     

    编写比较方法

    java mapreduce二次排序

     

    创建Mapper,注意输出的部分是自己创建的数据类型

    java mapreduce二次排序

     

    编写内容

    java mapreduce二次排序

     

    创建Comparator类,自定义分组

    java mapreduce二次排序

     

    编写代码

    java mapreduce二次排序

     

    创建Partition类,自定义分区类

    java mapreduce二次排序

     

    创建Reduce类

    java mapreduce二次排序

     

    编写内容

    java mapreduce二次排序

     

    创建主类,完成主类的编写

    java mapreduce二次排序

     

    其中自定义部分的类,我们放入到主方法中

    自定义分区类和自定义分组类

    java mapreduce二次排序

     

    准备数据源

    java mapreduce二次排序

     

    我们将项目打包上传到Linux上

    java mapreduce二次排序

     

    启动Hadoop

    java mapreduce二次排序

     

    将数据上传到HDFS上

    hdfs dfs -mkdir /secondSort

    hdfs dfs -put /data/secondSort/data.txt /secondSort/

    hdfs dfs -ls /secondSort/

    java mapreduce二次排序

     

    我们执行我们的jar

    yarn jar /data/secondSort/secondSort.jar com.xlglvc.xxx.mapredece.secondSort.SecondSortDriver /secondSort/data.txt /secondSortoutput

    出现问题:

    java mapreduce二次排序

     

    经过排查,发现是我的数据不是用 隔开的,于是重新处理数据

    java mapreduce二次排序

     

    然后删除HDFS上的data.txt,将新的data.txt文件上传,重新执行jar文件,我们观看结果

    java mapreduce二次排序

     

    然后我们查看生成的文件,是按照我们预想的结果完成了二次排序

    java mapreduce二次排序
  • 相关阅读:
    JSP----获取表单参数
    application 从web.xml中获取初始化参数
    使用定时器分解任务
    无阻塞加载外部js(动态脚本元素,XMLHttpRequest注入,LazyLoad)
    ReactJs 入门DEMO(转自别人)
    带你一分钟理解闭包--js面向对象编程(转载他人)
    使用SqlBulkCopy进行批量数据插入
    AngularJsDEMO
    ECharts
    C#发送邮件DEMO
  • 原文地址:https://www.cnblogs.com/bqwzy/p/12528484.html
Copyright © 2011-2022 走看看