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

    mapreducer 编程(5)

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

    mapreducer 编程,任务工作链、生产项目打包方式

    1. MR任务工作链设置流程#

    配置好任务依赖关系并把任务加到工作链中
    使用run方法运行
    mapreducer 编程(5)

    2. 任务工作链退出方式#

    由于job.run是个阻塞方法,所以需要在线程中监控任务的执行结果并调用stop方法修改工作链状态从而使job.run方法跳出阻塞状态,结束整个程序的运行

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

    mapreducer 编程(5)

    3. 任务配置#

    wordcount任务的配置
    mapreducer 编程(5)

    maxword任务的配置
    mapreducer 编程(5)
    sort任务配置
    mapreducer 编程(5)
    配置任务依赖关系
    mapreducer 编程(5)
    使用alt+shift+m将任务配置重构成3个方法。以便使主体结构变得整洁些
    mapreducer 编程(5)

    4. 重构代码结构,抽象封装公用mr任务基类#

    根据代码结构来看想成为任务工作链中的任务就得根据任务配置生成ControlledJob对象,而每个任务的配置都不同。
    所以每个任务都需要有返回ControlledJob的方法,和生成自己任务配置的方法
    从而可以使用继承的方法把这两个方法放到基类中,并把生成任务配置的方法设置成抽象方法交给子类自己实现
    由于每个任务的名称都不同并且任务名称的设定是必须的,任务的名称一方法可以方便在yarn上查找使用,一方法可以用作任务的输出地址,有了任务输入地址的规定就可以方便后置任务设置输入地址
    基类中还应该规定项目中所有任务的工作路径,方便以后集群空间的管理
    这个基类不但提供了一些实用的方法,还可以用作团队中编写mr任务的标准
    mapreducer 编程(5)
    mapreducer 编程(5)
    mapreducer 编程(5)

    5. mr任务jar包支持短命令方式运行#

    使用ProgramDriver类,指定类地址通过反射调用你自己写的job的main方法
    使用ProgramDriver类的优点是可以使任务在命令行提交时变的更简洁。还可以在项目上线时规定有那些任务可以运行
    mapreducer 编程(5)
    修改项目pom文件指定maven assembly插件使用的mainclass,这样生成的jar包就有了默认的主类,并且不在接受输入类地址调用其它的类
    mapreducer 编程(5)

    来自海牛部落-青牛,http://hainiubl.com/topics/98

    请登录之后再进行评论

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