zoukankan      html  css  js  c++  java
  • zeus宙斯Job提交分析--MapReduceJob提交

    最近在做Job调度管理的事情,打算利用zeus,由于git上zeus版本久远,目前公司的集群是hadoop2.X的,需要改造,并看了下源码。

    本文主要是从zeus代码里提取出来MapReduceJob的提交YARN集群方式,简化了一些不必要的过程,模拟了MapReduceJob的提交YARN集群的过程。

    image

    我将简化的工程放到github上,相见

    image

    从设计角度出发,要想将保护job作业的jar包提交到集群,需要分离调度,和具体job二部分。所以简化后的工程包括mrjobsubmit和wordcount。

    wordcount是完成对hdfs文件的单词计数的job的简单示例。

    mrjobsubmit是调度部分

    从技术角度出发,调度需要使用反射机制来调用可能的JOB,相见mrjobsubmit工程中的MapReduceMain类,并需要通过core-site.xml来传递jar位置(为什么可以这样,相见org.apache.hadoop.conf.Configuration源码)

    Job部分需要使设置mapred-site.xml和yarn-site.xml的重要配置,相见wordcount工程中的WordCount类

    接下来说下工程之后的一些操作过程。

    1.先maven package一下

    imageimage

    2.将构建好的lib文件夹、MRJobSubmit.jar和WordCount.jar上传到linux服务器上,结构如下:

    7BUG@OAQ69}K2A9MI{ROF}N

    3.执行下面命令,完成wordcountjob的提交

    java -cp '.:./*' com.leju.mrjobsubmit.MapReduceMain /data1/local/wqq/mrjob/WordCount.jar com.leju.wordcount.WordCount

    其中com.leju.mrjobsubmit.MapReduceMain是调度主函数

    参数1:/data1/local/wqq/mrjob/WordCount.jar 指定运行job的jar路径

    参数2:com.leju.wordcount.WordCount 指定job的主函数

    成功的console显示

    image

    集群监控页面可以看到wordcount的job在运行处理

    image

    image

    另外如果在windows下做job的调度与提交,在hadoop2.3的版本上,修改些源码,相见工程中的windows文件夹

    参考:

    从Java代码远程提交YARN MapReduce任务

    http://blog.csdn.net/mercedesqq/article/details/16885115

  • 相关阅读:
    数据类型装换
    变量及数据类型
    27 网络通信协议 udp tcp
    26 socket简单操作
    26 socket简单操作
    14 内置函数 递归 二分法查找
    15 装饰器 开闭原则 代参装饰器 多个装饰器同一函数应用
    12 生成器和生成器函数以及各种推导式
    13 内置函数 匿名函数 eval,exec,compile
    10 函数进阶 动态传参 作用域和名称空间 函数的嵌套 全局变量
  • 原文地址:https://www.cnblogs.com/xiongmaotailang/p/5390163.html
Copyright © 2011-2022 走看看