• 注册
  • BBS 大数据 关注:2 内容:74

    mapreducer 编程(4)

  • 查看作者
  • 打赏作者
  • 拉黑名单
  • 当前位置: 字节脉搏 > 大数据 > 正文
    VIP
    字节脉搏运营

    mapreducer 编程,自定义 partition 实现整体排序、自定义组合 key 实现二次排序、assembly 打包方式、集群运行 mr 程序

    1. 多个reducer实现整体排序#

    先观察数据情况,根据数据的分布去设计partitioner

    mapreducer 编程(4)

    这组数据中大于100的只有2个,大部分数据还是在小于100的区间,所以就拿100当个分界点
    去算0到100之间的数取分区ID的方法,先找临界点。算法是(100/reducer个数) + 1
    然后用输入的key与分区临界点相除取整,最后算出输入的key属于那个分区ID
    当输入key大于100时把数据分到最后一分区里。
    如果有2个reducer
    mapreducer 编程(4)yixia

    以下内容回帖刷新可见………………#

    如果有4个reducer

    mapreducer 编程(4)

    partitioner的实现
    mapreducer 编程(4)
    mapper实现
    mapreducer 编程(4)
    reducer实现
    mapreducer 编程(4)
    comparator实现
    mapreducer 编程(4)

    job配置

    mapreducer 编程(4)
    输入数据

    mapreducer 编程(4)

    运算结果,reudcer数据量为2时
    打印每个key对应的parttionerID
    mapreducer 编程(4)
    reducerID等于1的
    mapreducer 编程(4)

    reducerID等于0的
    mapreducer 编程(4)

    2. 自定义序列化类实现二次排序#

    自定义组合key实现
    mapreducer 编程(4)
    mapreducer 编程(4)
    mapreducer 编程(4)

    mapper实现
    mapreducer 编程(4)
    reducer实现
    mapreducer 编程(4)
    自定义Partitioner实现
    mapreducer 编程(4)
    自定义分组方法
    mapreducer 编程(4)
    自定义二次排序方法
    mapreducer 编程(4)
    job配置
    mapreducer 编程(4)
    输入数据
    mapreducer 编程(4)
    运算结果
    mapreducer 编程(4)

    3. maven的assembly的打包方法#

    在项目的pom文件是增加assembly插件
    mapreducer 编程(4)
    把assembly配置文件放到src/assembly如果没有就创建一个
    mapreducer 编程(4)
    mapreducer 编程(4)
    mapreducer 编程(4)

    在assembly.xml中配置好需要包含的资源文件,和打包时需要排除的文件
    mapreducer 编程(4)
    然后右击工程文件通过选择run as–>maven build…
    mapreducer 编程(4)
    mapreducer 编程(4)

    之后会在项目的target目录下生成jar包,包后缀名使用的是assembly.xml配置的id
    mapreducer 编程(4)

    4. 集群模式运行自己打的jar包#

    打开操作机上传测试数据和刚才打的jar包
    mapreducer 编程(4)
    创建数据输入目录和任务生成数据目录
    hadoop fs -mkdir /user/qingniu/data/input
    hadoop fs -mkdir /user/qingniu/task
    将测试数据上传到集群
    hadoop fs -put ./111.txt /user/qingniu/data/input
    然后提交集群运行
    hadoop jar ./mapreducer-1.0-hainiu.jar com.hainiu.hadoop.mr.WordCount -Dhainiu.print=qingniu /user/qingniu/data/input /user/qingniu/task/wordcount
    mapreducer 编程(4)

    cat文件查看运行结果,也可以使用get命令把文件下载到本地操作机进行查看
    mapreducer 编程(4)

    来自海牛部落-海牛博士,http://hainiubl.com/topics/177

    请登录之后再进行评论

    登录
  • 做任务
  • 帖子间隔 侧栏位置: