修改Hadoop作业调度算法过程解析
最近几个星期一直在修改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作业调度算法过程解析的更多相关文章
- Hadoop集群三种作业调度算法介绍
Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法 先来先服务(FIFO) Hadoop中默认的调度器FIFO,它先按照作业的优先级高低,再按照到达时间的先后选择被执 ...
- Hadoop集群作业调度算法
转自:http://blog.csdn.net/chen_jp/article/details/7983076 Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法 先 ...
- 【Hadoop】MapReduce笔记(一):MapReduce作业运行过程、任务执行
一.MR作业运行过程 JobClient的runJob()方法:新建JobClient实例,并调用其submitJob()方法.提交作业后,runJob()每秒轮询作业进度,如果发现上次上报后信息有改 ...
- Hadoop MapReduce执行过程详解(带hadoop例子)
https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ...
- 【hadoop代码笔记】hadoop作业提交之汇总
一.概述 在本篇博文中,试图通过代码了解hadoop job执行的整个流程.即用户提交的mapreduce的jar文件.输入提交到hadoop的集群,并在集群中运行.重点在代码的角度描述整个流程,有些 ...
- Hadoop工程包架构解析
Hadoop源码解析 1 --- Hadoop工程包架构解析 1 Hadoop中各工程包依赖简述 Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算 ...
- (转载)Hadoop map reduce 过程获取环境变量
来源:http://www.linuxidc.com/Linux/2012-07/66337.htm 作者: lmc_wy Hadoop任务执行过程中,在每一个map节点或者reduce节点能获取 ...
- Hadoop的配置过程(虚拟机中的伪分布模式)
1引言 hadoop如今已经成为大数据处理中不可缺少的关键技术,在如今大数据爆炸的时代,hadoop给我们处理海量数据提供了强有力的技术支撑.因此,了解hadoop的原理与应用方法是必要的技术知识. ...
- Mac配置Hadoop最详细过程
Mac配置Hadoop最详细过程 原文链接: http://www.cnblogs.com/blog5277/p/8565575.html 原文作者: 博客园-曲高终和寡 https://www.cn ...
随机推荐
- poj 3356 AGTC(线性dp)
题目链接:http://poj.org/problem?id=3356 思路分析:题目为经典的编辑距离问题,其实质为动态规划问题: 编辑距离问题定义:给定一个字符串source,可以对其进行复制,替换 ...
- _int64、long long 的区别
C++的64位整数[原]by 赤兔 http://baike.baidu.com/view/1235293.htm 在做ACM题时,经常都会遇到一些比较大的整数.而常用的内置整数类型常常显得太小了:其 ...
- Eclipse环境问题集合
1. XDoclet错误:Missing library: xdoclet-1.2.1.jar 从http://sourceforge.net/projects/xdoclet/files/xdocl ...
- block, inline和inline-block的区别
display:block元素的特点是:总是在新行上开始:高度,行高以及顶和底边距都可控制:宽度缺省是它的容器的100%,除非设定一个宽度<div>, <p>, <h1& ...
- Regex阅读笔记(二)之环视
环视不匹配任何字符,只匹配文本中的特定位置. 正序环视:(?=) 逆序环视:(?<=) 非捕获(?:) 环视会检查子表达式能否匹配,但它只寻找能够匹配的位置,而不会真正占用这些字符. -用在字符 ...
- 设置textarea文本域不能调整大小 resize
CSS3中新增了resize缩放属性,这个属性可以应用到任意元素.目前只有Webkit内核的浏览器才支持这个css3属性,即Google chrome和Apple safari都支持.而textare ...
- spring bean管理 笔记1
轻量级,无侵入 Bean管理 1 创建applicationContext.xml 2 配置被管理的Bean 3 获取Bean pom.xml配置 <dependency> <gro ...
- Android学习——百度地图开发定位与显示Demo
百度地图给我们提供了很丰富的API供我们进行二次开发.百度地图的SDK与定位SDK在今年6月份进行了更新. 地图更新为3.0,定位更新为4.2.百度说:这次更新对接口有了较大部分的调整,与之前版本号不 ...
- 完整的Android手机短信验证源码
短信验证功能我分两个模块来说,短信验证码的后台和代码实现短信验证码的功能. 一.短信验证码的后台 1.注册Mob账号:http://www.mob.com/#/login 2.注册成功之后, ...
- 【Hibernate】无外键多表查询
无外键多表查询时编写hql,直接使用逗号分隔表,where作为联合查询条件进行查询.查询出来的结果可为两种,List<List<Object>>或者List<Map< ...