Hadoop Web项目的改进版,新增Ajax技术。Ajax主要是在浏览器中输入hdfs路径时的后台检查和在监控任务执行状态时使用Ajax去和后台交互,获取job信息。
项目代码下载
具体下载目录在 /2013年资料/6月/17日/Hadoop Web项目使用Ajax监控Mapreduce过程
整个项目的思路大概如下:
获取job信息的jsp如下:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import ="util.*" %>
<%@ page import ="org.apache.hadoop.conf.*" %>
<html>
<script language='javascript'>
timeId = setInterval("myrefresh()",2000);
var xmlHttpShow;
function createXMLHttpInRequest(){
if(window.XMLHttpRequest){
xmlHttpShow=new XMLHttpRequest();
}else{
xmlHttpShow=new ActiveXObject("Microsoft.XMLHTTP");
}
}
function myrefresh(){
// alert("ok");
if(document.getElementById("redProgress").innerText.indexOf("100.0%")==0){
clearInterval(timeId);
}
createXMLHttpInRequest();
var url="validate/get_progress.jsp?time="+new Date().getTime();
xmlHttpShow.open("get",url,true);
// 把方法地址赋值给xmlHttp的onreadystatechange属性
xmlHttpShow.onreadystatechange=showcallback;
xmlHttpShow.send(null);
}
function showcallback(){
var progress=xmlHttpShow.responseText;
var a=progress.indexOf(",");
var length=progress.length;
document.getElementById("mapProgress").innerText=progress.substring(0,a);
document.getElementById("redProgress").innerText=progress.substring(a+1,length);
}
</script>
<head>
<title>My JSP 'bottom_print.jsp' starting page</title>
</head>
<%
String jobName=request.getParameter("jobName");
%>
<body>
<h3>Map Reduce Progress</h3> <br>
<table>
<tr>
<th>Job Name</th>
<td><%=jobName %></td>
</tr>
<tr>
<th>Map Progress</th>
<td>0.00%</td>
</tr>
<tr>
<th>Reduce Progress</th>
<td>0.00%</td>
</tr>
</table>
</body>
</html>
说明:目前可选的算法只有单词计数可用,其他算法可以在后续进行添加即可;
配置Hadoop集群的文件在:src/util/Utils.java文件里面;
分享,快乐,成长