最近几个星期一直在修改hadoop的计算能力调度算法,遇到了这样那样的问题。

我修改的版本是hadoop-0.20.2

第一步:

将hadoop的源码加载到eclipse中配置使用ant编译

第二步:

根据需要修改源码

第三步:

使用ant编译修改内容,这里要提醒的就是要保证编译平台的JDK和运行平台的JDK相同

ant编译的方法是:首先到$HadoopHome/src/contrib/capacity-scheduler目录下

直接输入ant就可以编译,编译成功后会提示生产的JAR文件在$HadoopHome/build/contrib/capacity-scheduler 中。

重要的是如果修改了capacity-scheduler外的其他内容(主要在MapReduce中)也需要将修改后的整个Hadoop编译

而且要在编译capacity-scheduler之前进行编译。编译整个hadoop会在build文件夹下看到hadoop-0.20.2-dev-capacity-scheduler.jar

第四步:

将hadoop-0.20.2-dev-capacity-scheduler.jar重命名为hadoop-0.20.2-capacity-scheduler.jar

以及将hadoop-${version}-capacity-scheduler.jar重新名为hadoop-0.20.2-capacity-scheduler.jar

覆盖集群中响应的JAR重新启动集群就可以了

以上是成功的步骤,但是在整个过程中总会出现错误,下面具体分析一下我遇到的错误:

我是在windows 下编译的在ubuntu中搭建的集群,开始的时候两个平台的JDK不一致,

导致了:java.lang.UnsupportedClassVersionError 的错误 所以要保证JDK一致

有时候会遇到org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible build versions: namenode BV = ; datanode BV = 911707

这个错误的原因是因为datanode的版本和NameNode的版本不一致。我将生成的hadoop-0.20.2-dev-capacity-scheduler.jar重命名后覆盖到DataNode的$HadoopHome 中

修改Hadoop作业调度算法过程解析的更多相关文章

  1. Hadoop集群三种作业调度算法介绍

    Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法 先来先服务(FIFO) Hadoop中默认的调度器FIFO,它先按照作业的优先级高低,再按照到达时间的先后选择被执 ...

  2. Hadoop集群作业调度算法

    转自:http://blog.csdn.net/chen_jp/article/details/7983076 Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法 先 ...

  3. 【Hadoop】MapReduce笔记(一):MapReduce作业运行过程、任务执行

    一.MR作业运行过程 JobClient的runJob()方法:新建JobClient实例,并调用其submitJob()方法.提交作业后,runJob()每秒轮询作业进度,如果发现上次上报后信息有改 ...

  4. Hadoop MapReduce执行过程详解(带hadoop例子)

    https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ...

  5. 【hadoop代码笔记】hadoop作业提交之汇总

    一.概述 在本篇博文中,试图通过代码了解hadoop job执行的整个流程.即用户提交的mapreduce的jar文件.输入提交到hadoop的集群,并在集群中运行.重点在代码的角度描述整个流程,有些 ...

  6. Hadoop工程包架构解析

    Hadoop源码解析 1 --- Hadoop工程包架构解析 1 Hadoop中各工程包依赖简述    Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算 ...

  7. (转载)Hadoop map reduce 过程获取环境变量

    来源:http://www.linuxidc.com/Linux/2012-07/66337.htm   作者: lmc_wy Hadoop任务执行过程中,在每一个map节点或者reduce节点能获取 ...

  8. Hadoop的配置过程(虚拟机中的伪分布模式)

    1引言 hadoop如今已经成为大数据处理中不可缺少的关键技术,在如今大数据爆炸的时代,hadoop给我们处理海量数据提供了强有力的技术支撑.因此,了解hadoop的原理与应用方法是必要的技术知识. ...

  9. Mac配置Hadoop最详细过程

    Mac配置Hadoop最详细过程 原文链接: http://www.cnblogs.com/blog5277/p/8565575.html 原文作者: 博客园-曲高终和寡 https://www.cn ...

随机推荐

  1. jQuery.fn.extend与jQuery.extend 的区别

    1 jquery.extend 是jquery 静态的方法 实例 jQuery.extend({     liu: function(){         alert('liu');     } }) ...

  2. SSH框架的简单学习—Structs学习

    一:struts部分 1.打开Myeclipse,创建一个web project,项目名称为SSHDemo. 2.在web的lib下粘贴struts2-blank.war解压后WEB-INF\lib下 ...

  3. JS动态增加页面上的控件实例

    <input   type="button"   value="继续添加"   onclick="append();"/ > & ...

  4. A计划(bfs)

    A计划 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissio ...

  5. 怎样在SharePoint管理中心检查数据库架构版本号、修补级别和修补程序的常规监控

    怎样在SharePoint管理中心检查数据库架构版本号.修补级别和修补程序的常规监控 准备: 确保你是可以訪问管理中心的场管理员. 開始: 1. 打开管理中心--升级和迁移. 2. 点击"查 ...

  6. mysql待整理

    1. MYSQL SQL_NO_CACHE的真正含义 http://www.dewen.org/q/5149/Mysql 是 结果不缓存,但查询还是缓存了. 如果要重新测试,就在查询前先执行一下&qu ...

  7. 上传列表集合wsp包

    1. 网站设置--web设计器库--解决方案--上载解决方案 2. 打开SPD,左侧的子网站--新建

  8. Mac平台编译mupdf-qt的开源项目

    How to compile mupdf-qt Compile on Linux Install tools and thirdparty libraries You should install s ...

  9. python爬虫实战1

    转载于:http://blog.csdn.net/dongnanyanhai/article/details/5552431 首先推荐一个网站:中医世家,这个网站上有很多关于中医的资料,光是提供的中医 ...

  10. HDU2084:数塔(DP)

    Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大 ...