修改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 ...
随机推荐
- Mysql5.6.24 zip解压缩版配置及修改默认编码方法
win64位下载地址: http://dev.mysql.com/downloads/file.php?id=456319 下载完毕后解压 配置环境变量 在Path后加上mysql解压后bin文件夹所 ...
- Objective-c 类实现 (@implementation)
在用@interface声明类之后,可以使用@implementation进行实类的实现.类的实现的具体语法如下: @implementation 类名 方法实现代码; @end; 实例: @impl ...
- JavaScript中cookie的路径(path)和域(domain)
cookie虽然是由一个网页所创建,但并不只是创建cookie的网页才能读 取该cookie.在默认情况下,与创建cookie的网页在同一目录或子目录下的所有网页都可以读取该cookie.但如果在这个 ...
- 感觉挺有意思的SQL题目
1.有如下数据,要求查询每个班最低分和最高分,并将最高分与最低分显示为同一列 ID Student CourseName Score1 张三 English 802 张三 Math 703 张三 Ch ...
- Compare the value of entity field.
public class Program { static void Main(string[] args) { Program p = new Program(); p.Test(); Consol ...
- python切片练习
这块儿没什么难的,细心一点就好 L = [] n = 1 while n <= 99: L.append(n) n = n + 2 print(L) #但是在Python中,代码不是越多越好,而 ...
- Joel在耶鲁大学的演讲
Joel Spolsky是一个美国的软件工程师,他的网络日志"Joel谈软件"(Joel on Software)非常有名,读者人数可以排进全世界前100名. 上个月28号,他回到 ...
- linux禁ping和允许ping的方法
一.系统禁止ping [root@linuxzgf ~]# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all 二.系统允许ping [root@li ...
- document.getElementsByClassName在ie8及其以下浏览器的兼容性问题
原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中,不能使用. 修改:加入兼容性判断,在需要用到该方法的位置修改为getClassNames方法. ...
- 关于 javascript event flow 的一个bug
[1]描述了firefox,safari 有一个bug和DOM 3 规范不一致:在event.currentTarget等于event.target的时候(即event flow处于target ph ...