blob: 3b71a2ce80122a63166e0775e749789266c11c96 [file] [log] [blame]
<%@ page language="java" import="java.sql.*"%>
<html>
<head>
<title>Sample Application Database JSP Page</title>
</head>
<body bgcolor=white>
<table border="0">
<tr>
<td align=center>
<img src="images/bridge-small.png">
</td>
<td>
<h1>Sample Brooklyn Deployed WebApp (Database JSP)</h1>
This is the output of a JSP page that is part of the Hello, World application,
deployed by brooklyn, to show <b>a hadoop map-reduce task run<b>.
</td>
</tr>
</table>
<%
String hadoop=System.getProperty("brooklyn.example.hadoop.site.xml.url");
String hadoopJar=System.getProperty("brooklyn.example.hadoop.custom.jar.url");
if (hadoop==null) {
%>
<p>There is no hadoop included as part of this example. Set brooklyn.example.hadoop.site.xml.url to proceed.</p>
<% } else if (hadoopJar==null) {
%>
<p>brooklyn.example.hadoop.custom.jar.url must be set to point to the Jar.</p>
<%} else { /* begin hadoop-enabled block */
try {
org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
conf.setClassLoader(brooklyn.demo.webapp.hello.HadoopWordCount.class.getClassLoader());
conf.addResource(new java.net.URL(hadoop));
org.apache.hadoop.fs.FileSystem fsClient = org.apache.hadoop.fs.FileSystem.get(conf);
if (fsClient==null) throw new NullPointerException("Can't access fsClient at "+hadoop);
org.apache.hadoop.mapreduce.Job job = brooklyn.demo.webapp.hello.HadoopWordCount.makeJob(conf);
((org.apache.hadoop.mapred.JobConf)job.getConfiguration()).setJar(hadoopJar);
org.apache.hadoop.fs.FileStatus[] files = fsClient.listStatus(new org.apache.hadoop.fs.Path("chats"));
if (files==null) files = new org.apache.hadoop.fs.FileStatus[0];
for (org.apache.hadoop.fs.FileStatus f: files) {
org.apache.hadoop.mapreduce.lib.input.FileInputFormat.addInputPath(job, f.getPath());
}
org.apache.hadoop.fs.Path outp = new org.apache.hadoop.fs.Path("out-"+((int)(Math.random()*10000)));
org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.setOutputPath(job, outp);
boolean result = job.waitForCompletion(true);
if (!result) {
%> <p><b></b><i>Map reduce job returned non-zero result code.</i></b></p> <%
}
%> <p>Output from map reduce is as follows:</p> <%
files = fsClient.listStatus(outp);
if (files==null) files = new org.apache.hadoop.fs.FileStatus[0];
for (org.apache.hadoop.fs.FileStatus f: files) {
try {
if (!f.isDir() && f.getLen()>0) {
%>
<%= f.getPath() %>:<br/>
<pre><%= brooklyn.demo.webapp.hello.DemoUtils.stringFromInputStream(fsClient.open(f.getPath())) %></pre>
<%
}
} catch (Exception e) {
%> Error: <%= e %><%
}
}
if (files.length==0) {
%>
<i>No output.</i> </li>
<%
}
fsClient.delete(outp, true);
} catch (Exception e) {
%>
<b>Error connecting to Hadoop.</b><br/>
ERROR: <%= e %><br/>
<pre> <%= brooklyn.demo.webapp.hello.DemoUtils.getStackTrace(e) %></pre>
<%
}
}
%>
<br/>
<p>Click <a href="hadoop-chat.jsp">here</a> to view the chat room.</p>
<p>Click <a href="index.html">here</a> to go back to the main page.</p>
</body>
</html>