You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hama.apache.org by to...@apache.org on 2012/07/12 09:40:16 UTC

svn commit: r1360560 [2/4] - in /hama/site/trunk: ./ files/ images/

Modified: hama/site/trunk/files/KEYS
URL: http://svn.apache.org/viewvc/hama/site/trunk/files/KEYS?rev=1360560&r1=1360559&r2=1360560&view=diff
==============================================================================
--- hama/site/trunk/files/KEYS (original)
+++ hama/site/trunk/files/KEYS Thu Jul 12 07:40:15 2012
@@ -1,142 +1,142 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.16 (FreeBSD)
-
-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
-1dHtdY8=
-=VM4k
------END PGP PUBLIC KEY BLOCK-----
-
-pub   4096R/750005F1 2011-04-20
-uid                  Tommaso Teofili <to...@apache.org>
-sig 3        750005F1 2011-04-20  Tommaso Teofili <to...@apache.org>
-sub   4096R/1A3D74F8 2011-04-20
-sig          750005F1 2011-04-20  Tommaso Teofili <to...@apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG/MacGPG2 v2.0.16 (Darwin)
-
-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
-J9hZ
-=8I26
------END PGP PUBLIC KEY BLOCK-----
-
-pub   2048D/4F238505 2011-09-20
-      Key fingerprint = 86D1 616D F614 F277 F7A5  323C FC2F AD37 4F23 8505
-uid                  Thomas Jungblut <tj...@apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.17 (FreeBSD)
-
-mQMuBE54zY0RCADv7s02PkypJhXXeWa6xgJJHNgMJwp3cdVqx193lehw1sFh4u6T
-ME/AiRURPQ19Nugke2BS/2VTWeOUyuD4AgUJT95Dm0uvPfsZ4eOxweBMxg6rVAAU
-SfvHcBUHWyc6M7qyAUxDODIIplzuyIVbjaajBrH+5pOv6ZivQIEp6LQDzznXKYRU
-bSEsFpu8PqAGvob/warK0wdPhyBvakg8jTnocFHI3s0pQQEnCuwtiL8ZWs65IW00
-eUPK7mu3x7H1s0HoOBjK6qenJ4Wc6gRPF9knuG45Brq8nBTiK9SuTRqh3K7278Gu
-WeQcOPF+JT9IX9g/KjeM90ironxXuwtKTjqPAQCUJJJYs2ZZmhLZx+R7cPUg3KcI
-vTCXYQBeqJOhG9sNgwgAvVV8/KjztTY0Ma977Tb2qObONgyW/88Wi/lJJF91Nr1B
-igdo3CWkD7rb8jXJeeWDkCsvmlEUvHgqxqgsYea9t2OMaOSerKVL0tLhMaKly1ed
-GH49l8E42wjvxF6IRzvnF3otBMQAtuMHv+QwBphVkVlUtJquAg09PCC5trBTmalh
-bSvS+hXjws09nMgfNbDfMHcmgRK6ITkxih8X8Up+05tt66e9E0EqDyxuDH5D3ub1
-3oDza8uckzHMiZVEr+Ef0bqWl1mKKGckpDHZIaK6in0GDbRkd99jD+GPTKDol0F/
-B1HCoYaH4pBcpaY/vi0zJ9qtMUCgztqtn5t8U91N2Af8DoVsxIay4WQGUaqsiETj
-+8U5AXZfKArUxD/kSkx5/Rbq+fo313bU5kYUDlfb747ezPceMlLAL7qFskmIZy8Q
-MTjghvlATV1L9wEuDSQ2ZNsXO8veezjJuVe3hc05CvY7HFaOgjrk9g3SjcReMhxv
-JS3JK41Ot4Q21rM7saN5bTzjsBV5nsOA7g5lOIzfAJnDw0XadiW2ded0S5FSb1+8
-SDyWxhZiC+X3CLWI9B0BfEUg0KSgA8NEC2IY7aSyckvs1XzuLLhWDhpE3OFJyG6H
-CNUMVNUe4RRHU/ypQnKFHV7/ck39qMNlVpwz4BGG5rbAL8LudPPGrVzPKbMEjw4R
-T7QmVGhvbWFzIEp1bmdibHV0IDx0anVuZ2JsdXRAYXBhY2hlLm9yZz6IegQTEQgA
-IgUCTnjNjQIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ/C+tN08jhQUg
-TgD/S6Vl+rzApzZ9Md84Wt4zX6oQzmH6ycmxGmEPl2curXcA/2rfcGST0dCaXH2r
-OoRC9d/lx2UllxZmZyKxE73m4Kwz
-=eCXk
------END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2.0.16 (FreeBSD)
+
+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
+1dHtdY8=
+=VM4k
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub   4096R/750005F1 2011-04-20
+uid                  Tommaso Teofili <to...@apache.org>
+sig 3        750005F1 2011-04-20  Tommaso Teofili <to...@apache.org>
+sub   4096R/1A3D74F8 2011-04-20
+sig          750005F1 2011-04-20  Tommaso Teofili <to...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG/MacGPG2 v2.0.16 (Darwin)
+
+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
+J9hZ
+=8I26
+-----END PGP PUBLIC KEY BLOCK-----
+
+pub   2048D/4F238505 2011-09-20
+      Key fingerprint = 86D1 616D F614 F277 F7A5  323C FC2F AD37 4F23 8505
+uid                  Thomas Jungblut <tj...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2.0.17 (FreeBSD)
+
+mQMuBE54zY0RCADv7s02PkypJhXXeWa6xgJJHNgMJwp3cdVqx193lehw1sFh4u6T
+ME/AiRURPQ19Nugke2BS/2VTWeOUyuD4AgUJT95Dm0uvPfsZ4eOxweBMxg6rVAAU
+SfvHcBUHWyc6M7qyAUxDODIIplzuyIVbjaajBrH+5pOv6ZivQIEp6LQDzznXKYRU
+bSEsFpu8PqAGvob/warK0wdPhyBvakg8jTnocFHI3s0pQQEnCuwtiL8ZWs65IW00
+eUPK7mu3x7H1s0HoOBjK6qenJ4Wc6gRPF9knuG45Brq8nBTiK9SuTRqh3K7278Gu
+WeQcOPF+JT9IX9g/KjeM90ironxXuwtKTjqPAQCUJJJYs2ZZmhLZx+R7cPUg3KcI
+vTCXYQBeqJOhG9sNgwgAvVV8/KjztTY0Ma977Tb2qObONgyW/88Wi/lJJF91Nr1B
+igdo3CWkD7rb8jXJeeWDkCsvmlEUvHgqxqgsYea9t2OMaOSerKVL0tLhMaKly1ed
+GH49l8E42wjvxF6IRzvnF3otBMQAtuMHv+QwBphVkVlUtJquAg09PCC5trBTmalh
+bSvS+hXjws09nMgfNbDfMHcmgRK6ITkxih8X8Up+05tt66e9E0EqDyxuDH5D3ub1
+3oDza8uckzHMiZVEr+Ef0bqWl1mKKGckpDHZIaK6in0GDbRkd99jD+GPTKDol0F/
+B1HCoYaH4pBcpaY/vi0zJ9qtMUCgztqtn5t8U91N2Af8DoVsxIay4WQGUaqsiETj
++8U5AXZfKArUxD/kSkx5/Rbq+fo313bU5kYUDlfb747ezPceMlLAL7qFskmIZy8Q
+MTjghvlATV1L9wEuDSQ2ZNsXO8veezjJuVe3hc05CvY7HFaOgjrk9g3SjcReMhxv
+JS3JK41Ot4Q21rM7saN5bTzjsBV5nsOA7g5lOIzfAJnDw0XadiW2ded0S5FSb1+8
+SDyWxhZiC+X3CLWI9B0BfEUg0KSgA8NEC2IY7aSyckvs1XzuLLhWDhpE3OFJyG6H
+CNUMVNUe4RRHU/ypQnKFHV7/ck39qMNlVpwz4BGG5rbAL8LudPPGrVzPKbMEjw4R
+T7QmVGhvbWFzIEp1bmdibHV0IDx0anVuZ2JsdXRAYXBhY2hlLm9yZz6IegQTEQgA
+IgUCTnjNjQIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ/C+tN08jhQUg
+TgD/S6Vl+rzApzZ9Md84Wt4zX6oQzmH6ycmxGmEPl2curXcA/2rfcGST0dCaXH2r
+OoRC9d/lx2UllxZmZyKxE73m4Kwz
+=eCXk
+-----END PGP PUBLIC KEY BLOCK-----

Modified: hama/site/trunk/getting_started_with_hama.html
URL: http://svn.apache.org/viewvc/hama/site/trunk/getting_started_with_hama.html?rev=1360560&r1=1360559&r2=1360560&view=diff
==============================================================================
--- hama/site/trunk/getting_started_with_hama.html (original)
+++ hama/site/trunk/getting_started_with_hama.html Thu Jul 12 07:40:15 2012
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  | Generated by Apache Maven Doxia at Jul 12, 2012
- | Rendered using Apache Maven Fluido Skin 1.2.3-SNAPSHOT
+ | Rendered using Apache Maven Fluido Skin 1.2.2
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
@@ -44,10 +44,10 @@
         </li>
       <li class="divider ">/</li>
             <li class="">
-                    <a href="http://hama.apache.org/" class="externalLink" title="Hama">Hama</a>
+                    <a href="./" title="Hama">Hama</a>
         </li>
       <li class="divider ">/</li>
-        <li class="">Hama - 
+        <li class="">
   Getting Started with Hama</li>
         
                 
@@ -166,6 +166,21 @@
                           <a href="artwork.html" title="Artwork and Clothing">Artwork and Clothing</a>
             </li>
           </ul>
+                        <h3>ASF</h3>
+                  <ul>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">How Apache Works</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">Foundation</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">Sponsoring Apache</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
+            </li>
+          </ul>
                       
                     
                 
@@ -184,123 +199,123 @@
         
         <div id="bodyColumn"  class="span10" >
                                   
-            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License. -->
-  
-    <div class="section"><h2>Getting Started with Hama<a name="Getting_Started_with_Hama"></a></h2></div>
-    <p>This document describes how to install, configure and manage Hama clusters ranging from a few nodes to extremely large clusters with thousands of nodes.</p>
-
-    <div class="section"><h3>Requirements<a name="Requirements"></a></h3></div>
-    <p>1. Make sure all required software is installed on all nodes in your cluster:</p>
-    <ul>
-      <li>hadoop-0.20.x (non-secure version)</li>
-      <li>Sun Java JDK 1.6.x or higher version</li>
-      <li>SSH access to manage BSP deamons</li>
-    </ul>
-    <p>2. <a href="downloads.html">Download</a> Hama from the release page.
-    <br /><br />
-    For additional information consult our 
-    <a class="externalLink" href="http://wiki.apache.org/hama/CompatibilityTable">Compatibility Table</a></p>
-    
-    <div class="section"><h3>Mode<a name="Mode"></a></h3></div>
-    <p>Just like Hadoop, we distinct between three modes:</p>
-    <ul>
-      <li>Local Mode - <font style="font-size: 11px;">This mode is the default mode if you download Hama (&gt;= 0.3.0) and install it. When submitting a job it will run a local multithreaded BSP Engine on your server. It can be configured via the bsp.master.address property to local. You can adjust the number of threads used in this utility by setting the <b>bsp.local.tasks.maximum property</b>. See the Settings step how and where to configure this.</font></li>
-      <li>Pseudo Distributed Mode - <font style="font-size: 11px;">This mode is when you just have a single server and want to launch all the deamon processes (BSPMaster, Groom and Zookeeper). It can be configured when you set the bsp.master.address to a host address e.g., <b>localhost</b> and put the same address into the groomservers file in the configuration directory. As stated it will run a BSPMaster, a Groom and a Zookeeper on your machine.</font></li>
-      <li>Distributed Mode - <font style="font-size: 11px;">This mode is just like the &quot;Pseudo Distributed Mode&quot;, but you have multiple machines, which are mapped in the groomservers file.</font></li>
-    </ul>
-    
-    <div class="section"><h3>Configuration Files<a name="Configuration_Files"></a></h3></div>
-    <p>The $HAMA_HOME/conf directory contains some configuration files for Hama. These are:</p>
-    <ul>
-      <li>hama-env.sh - This file contains some environment variable settings used by Hama. You can use these to affect some aspects of Hama daemon behavior, such as where log files are stored, the maximum amount of heap used etc. The only variable you should need to change in this file is JAVA_HOME, which specifies the path to the Java 1.5.x installation used by Hama.</li>
-      <li>groomservers - This file lists the hosts, one per line, where the GroomServer daemons will run. By default this contains the single entry localhost</li>
-      <li>hama-default.xml - This file contains generic default settings for Hama daemons. Do not modify this file.</li>
-      <li>hama-site.xml - This file contains site specific settings for all Hama daemons and BSP jobs. This file is empty by default. Settings in this file override those in hama-default.xml. This file should contain settings that must be respected by all servers and clients in a Hama installation.</li>
-    </ul>
-    
-    <div class="section"><h3>Startup Scripts<a name="Startup_Scripts"></a></h3></div>
-    <p>The $HAMA_HOME/bin directory contains some script used to start up the Hama daemons.</p>
-    <ul><li>start-bspd.sh - Starts all Hama daemons, the BSPMaster, GroomServers and Zookeeper.</li></ul>
-    <p>Note: You have to start Hama with the same user which is configured for Hadoop.</p>
-    
-    <div class="section"><h3>Setting up Hama<a name="Setting_up_Hama"></a></h3></div>
-    <ul><li>BSPMaster and Zookeeper settings - Figure out where to run your HDFS namenode and BSPMaster. Set the variable bsp.master.address to the BSPMaster's intended host:port. Set the variable fs.default.name to the HDFS Namenode's intended host:port.</li></ul>
-    <p>Here's an example of a hama-site.xml file:</p>
-
-<div><pre>
-  &lt;?xml version=&quot;1.0&quot;?&gt;
-  &lt;?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;configuration.xsl&quot;?&gt;
-  &lt;configuration&gt;
-    &lt;property&gt;
-      &lt;name&gt;bsp.master.address&lt;/name&gt;
-      &lt;value&gt;host1.mydomain.com:40000&lt;/value&gt;
-      &lt;description&gt;The address of the bsp master server. Either the
-      literal string &quot;local&quot; or a host:port for distributed mode
-      &lt;/description&gt;
-    &lt;/property&gt;
-
-    &lt;property&gt;
-      &lt;name&gt;fs.default.name&lt;/name&gt;
-      &lt;value&gt;hdfs://host1.mydomain.com:9000/&lt;/value&gt;
-      &lt;description&gt;
-        The name of the default file system. Either the literal string
-        &quot;local&quot; or a host:port for HDFS.
-      &lt;/description&gt;
-    &lt;/property&gt;
-
-    &lt;property&gt;
-      &lt;name&gt;hama.zookeeper.quorum&lt;/name&gt;
-      &lt;value&gt;host1.mydomain.com,host2.mydomain.com&lt;/value&gt;
-      &lt;description&gt;Comma separated list of servers in the ZooKeeper Quorum.
-      For example, &quot;host1.mydomain.com,host2.mydomain.com,host3.mydomain.com&quot;.
-      By default this is set to localhost for local and pseudo-distributed modes
-      of operation. For a fully-distributed setup, this should be set to a full
-      list of ZooKeeper quorum servers. If HAMA_MANAGES_ZK is set in hama-env.sh
-      this is the list of servers which we will start/stop zookeeper on.
-      &lt;/description&gt;
-    &lt;/property&gt;
-  &lt;/configuration&gt;
-</pre></div>
-
-<p>If you are managing your own ZooKeeper, you have to specify the port number as below:</p>
-
-<div><pre>
-  &lt;property&gt;
-    &lt;name&gt;hama.zookeeper.property.clientPort&lt;/name&gt;
-    &lt;value&gt;2181&lt;/value&gt;
-  &lt;/property&gt;
-</pre></div>
-<p>See all <a class="externalLink" href="http://wiki.apache.org/hama/GettingStarted/Properties">Configuration Properties</a></p>
-    
-    <div class="section"><h3>Starting a Hama cluster<a name="Starting_a_Hama_cluster"></a></h3></div>
-    <p>NOTE: Skip this step if you're in Local Mode.
-    <br />Run the command:</p>
-    
-  <div><pre>
-  % $HAMA_HOME/bin/start-bspd.sh</pre></div>
-    <p>This will startup a BSPMaster, GroomServers and Zookeeper on your machine.</p>
-    <p>Run the command:</p>
-  <div><pre>
-  % $HAMA_HOME/bin/stop-bspd.sh</pre></div>
-
-    <p>to stop all the daemons running on your cluster.</p>
-    <div class="section"><h3>Execute Hama Examples<a name="Execute_Hama_Examples"></a></h3></div>
-  <div><pre>
-  % $HAMA_HOME/bin/hama jar hama-examples-x.x.x.jar [args]</pre></div>
-    
+            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. -->
+  
+    <div class="section"><h2>Getting Started with Hama<a name="Getting_Started_with_Hama"></a></h2></div>
+    <p>This document describes how to install, configure and manage Hama clusters ranging from a few nodes to extremely large clusters with thousands of nodes.</p>
+
+    <div class="section"><h3>Requirements<a name="Requirements"></a></h3></div>
+    <p>1. Make sure all required software is installed on all nodes in your cluster:</p>
+    <ul>
+      <li>hadoop-0.20.x (non-secure version)</li>
+      <li>Sun Java JDK 1.6.x or higher version</li>
+      <li>SSH access to manage BSP deamons</li>
+    </ul>
+    <p>2. <a href="downloads.html">Download</a> Hama from the release page.
+    <br /><br />
+    For additional information consult our 
+    <a class="externalLink" href="http://wiki.apache.org/hama/CompatibilityTable">Compatibility Table</a></p>
+    
+    <div class="section"><h3>Mode<a name="Mode"></a></h3></div>
+    <p>Just like Hadoop, we distinct between three modes:</p>
+    <ul>
+      <li>Local Mode - <font style="font-size: 11px;">This mode is the default mode if you download Hama (&gt;= 0.3.0) and install it. When submitting a job it will run a local multithreaded BSP Engine on your server. It can be configured via the bsp.master.address property to local. You can adjust the number of threads used in this utility by setting the <b>bsp.local.tasks.maximum property</b>. See the Settings step how and where to configure this.</font></li>
+      <li>Pseudo Distributed Mode - <font style="font-size: 11px;">This mode is when you just have a single server and want to launch all the deamon processes (BSPMaster, Groom and Zookeeper). It can be configured when you set the bsp.master.address to a host address e.g., <b>localhost</b> and put the same address into the groomservers file in the configuration directory. As stated it will run a BSPMaster, a Groom and a Zookeeper on your machine.</font></li>
+      <li>Distributed Mode - <font style="font-size: 11px;">This mode is just like the &quot;Pseudo Distributed Mode&quot;, but you have multiple machines, which are mapped in the groomservers file.</font></li>
+    </ul>
+    
+    <div class="section"><h3>Configuration Files<a name="Configuration_Files"></a></h3></div>
+    <p>The $HAMA_HOME/conf directory contains some configuration files for Hama. These are:</p>
+    <ul>
+      <li>hama-env.sh - This file contains some environment variable settings used by Hama. You can use these to affect some aspects of Hama daemon behavior, such as where log files are stored, the maximum amount of heap used etc. The only variable you should need to change in this file is JAVA_HOME, which specifies the path to the Java 1.5.x installation used by Hama.</li>
+      <li>groomservers - This file lists the hosts, one per line, where the GroomServer daemons will run. By default this contains the single entry localhost</li>
+      <li>hama-default.xml - This file contains generic default settings for Hama daemons. Do not modify this file.</li>
+      <li>hama-site.xml - This file contains site specific settings for all Hama daemons and BSP jobs. This file is empty by default. Settings in this file override those in hama-default.xml. This file should contain settings that must be respected by all servers and clients in a Hama installation.</li>
+    </ul>
+    
+    <div class="section"><h3>Startup Scripts<a name="Startup_Scripts"></a></h3></div>
+    <p>The $HAMA_HOME/bin directory contains some script used to start up the Hama daemons.</p>
+    <ul><li>start-bspd.sh - Starts all Hama daemons, the BSPMaster, GroomServers and Zookeeper.</li></ul>
+    <p>Note: You have to start Hama with the same user which is configured for Hadoop.</p>
+    
+    <div class="section"><h3>Setting up Hama<a name="Setting_up_Hama"></a></h3></div>
+    <ul><li>BSPMaster and Zookeeper settings - Figure out where to run your HDFS namenode and BSPMaster. Set the variable bsp.master.address to the BSPMaster's intended host:port. Set the variable fs.default.name to the HDFS Namenode's intended host:port.</li></ul>
+    <p>Here's an example of a hama-site.xml file:</p>
+
+<div><pre>
+  &lt;?xml version=&quot;1.0&quot;?&gt;
+  &lt;?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;configuration.xsl&quot;?&gt;
+  &lt;configuration&gt;
+    &lt;property&gt;
+      &lt;name&gt;bsp.master.address&lt;/name&gt;
+      &lt;value&gt;host1.mydomain.com:40000&lt;/value&gt;
+      &lt;description&gt;The address of the bsp master server. Either the
+      literal string &quot;local&quot; or a host:port for distributed mode
+      &lt;/description&gt;
+    &lt;/property&gt;
+
+    &lt;property&gt;
+      &lt;name&gt;fs.default.name&lt;/name&gt;
+      &lt;value&gt;hdfs://host1.mydomain.com:9000/&lt;/value&gt;
+      &lt;description&gt;
+        The name of the default file system. Either the literal string
+        &quot;local&quot; or a host:port for HDFS.
+      &lt;/description&gt;
+    &lt;/property&gt;
+
+    &lt;property&gt;
+      &lt;name&gt;hama.zookeeper.quorum&lt;/name&gt;
+      &lt;value&gt;host1.mydomain.com,host2.mydomain.com&lt;/value&gt;
+      &lt;description&gt;Comma separated list of servers in the ZooKeeper Quorum.
+      For example, &quot;host1.mydomain.com,host2.mydomain.com,host3.mydomain.com&quot;.
+      By default this is set to localhost for local and pseudo-distributed modes
+      of operation. For a fully-distributed setup, this should be set to a full
+      list of ZooKeeper quorum servers. If HAMA_MANAGES_ZK is set in hama-env.sh
+      this is the list of servers which we will start/stop zookeeper on.
+      &lt;/description&gt;
+    &lt;/property&gt;
+  &lt;/configuration&gt;
+</pre></div>
+
+<p>If you are managing your own ZooKeeper, you have to specify the port number as below:</p>
+
+<div><pre>
+  &lt;property&gt;
+    &lt;name&gt;hama.zookeeper.property.clientPort&lt;/name&gt;
+    &lt;value&gt;2181&lt;/value&gt;
+  &lt;/property&gt;
+</pre></div>
+<p>See all <a class="externalLink" href="http://wiki.apache.org/hama/GettingStarted/Properties">Configuration Properties</a></p>
+    
+    <div class="section"><h3>Starting a Hama cluster<a name="Starting_a_Hama_cluster"></a></h3></div>
+    <p>NOTE: Skip this step if you're in Local Mode.
+    <br />Run the command:</p>
+    
+  <div><pre>
+  % $HAMA_HOME/bin/start-bspd.sh</pre></div>
+    <p>This will startup a BSPMaster, GroomServers and Zookeeper on your machine.</p>
+    <p>Run the command:</p>
+  <div><pre>
+  % $HAMA_HOME/bin/stop-bspd.sh</pre></div>
+
+    <p>to stop all the daemons running on your cluster.</p>
+    <div class="section"><h3>Execute Hama Examples<a name="Execute_Hama_Examples"></a></h3></div>
+  <div><pre>
+  % $HAMA_HOME/bin/hama jar hama-examples-x.x.x.jar [args]</pre></div>
+    
 
                   </div>
             </div>
@@ -315,7 +330,12 @@
                     
       </div>
 
-        
+                                          <?xml version="1.0" encoding="UTF-8"?>
+<div class="row span16">Apache Hama, Apache, the Apache feather logo, and
+          the Apache Hama project logos are trademarks of The Apache Software
+          Foundation. All other marks mentioned may be trademarks or registered
+          trademarks of their respective owners.</div>
+                  
         
                 </div>
     </footer>

Modified: hama/site/trunk/hama_bsp_tutorial.html
URL: http://svn.apache.org/viewvc/hama/site/trunk/hama_bsp_tutorial.html?rev=1360560&r1=1360559&r2=1360560&view=diff
==============================================================================
--- hama/site/trunk/hama_bsp_tutorial.html (original)
+++ hama/site/trunk/hama_bsp_tutorial.html Thu Jul 12 07:40:15 2012
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  | Generated by Apache Maven Doxia at Jul 12, 2012
- | Rendered using Apache Maven Fluido Skin 1.2.3-SNAPSHOT
+ | Rendered using Apache Maven Fluido Skin 1.2.2
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
@@ -44,10 +44,10 @@
         </li>
       <li class="divider ">/</li>
             <li class="">
-                    <a href="http://hama.apache.org/" class="externalLink" title="Hama">Hama</a>
+                    <a href="./" title="Hama">Hama</a>
         </li>
       <li class="divider ">/</li>
-        <li class="">Hama - 
+        <li class="">
   BSP Tutorial</li>
         
                 
@@ -166,6 +166,21 @@
                           <a href="artwork.html" title="Artwork and Clothing">Artwork and Clothing</a>
             </li>
           </ul>
+                        <h3>ASF</h3>
+                  <ul>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">How Apache Works</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">Foundation</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">Sponsoring Apache</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
+            </li>
+          </ul>
                       
                     
                 
@@ -184,293 +199,293 @@
         
         <div id="bodyColumn"  class="span10" >
                                   
-            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License. -->
-  
-    <div class="section"><h2>Hama BSP Tutorial<a name="Hama_BSP_Tutorial"></a></h2></div>
-    <p>This document describes the Hama BSP framework and serves as a tutorial.</p>
-    <div class="section"><h3>Overview<a name="Overview"></a></h3></div>
-    <p>Hama provides a Pure BSP Bulk Synchronous Parallel Model for message passing and collective communication.
-    A BSP program consists of a sequence of supersteps. Each superstep consists of the following three phases:</p>
-
-    <ul>
-     <li>Local computation</li>
-     <li>Process communication</li>
-     <li>Barrier synchronization</li>
-    </ul>
-    <p>BSP programming enables you to write high-performance parallel computing algorithms for a wide range of scientific problems.</p>
-    
-    <div class="section"><h3>Create your own BSP by extending BSP class<a name="Create_your_own_BSP_by_extending_BSP_class"></a></h3></div>
-    
-    <p>The way to create your own BSP class is to create a class that extends the org.apache.hama.bsp.<b>BSP</b> class.
-    <br />
-    The extending class must override the bsp() method, which is declared like this:
-    </p>
-    <div><pre>
-  public abstract void bsp(BSPPeer&lt;K1, V1, K2, V2, M extends Writable&gt; peer) throws IOException, 
-    SyncException, InterruptedException;</pre></div>
-    
-    <p>
-    You will define the BSP program inside this bsp() method.
-    It is important to understand that it doesn't mean a single superstep. 
-    As described above, a BSP program consists of a sequence of supersteps. 
-    So it just gets called once, not all over again unlike Mapper or Reducer method.
-    <br /><br />
-    <b>NOTE</b>: Optionally, there are also setup() and cleanup() which will be called at the beginning of your computation, 
-    respectively at the end of the computation. cleanup() is guranteed to run after the computation or in case of failure. 
-    You can simply override the methods you need from BSP class.
-    <br /><br />
-    After your own BSP is created, you will need to configure a <b>BSPJob</b> and submit it to Hama cluster to execute a job.
-    The BSP job configuration and submission interfaces is almost the same as the MapReduce job configuration:</p>
-    <div><pre>
-  HamaConfiguration conf = new HamaConfiguration();
-  BSPJob job = new BSPJob(conf, MyBSP.class);
-  job.setJobName(&quot;My BSP program&quot;);
-  job.setBspClass(MyBSP.class);
-  job.setInputFormat(NullInputFormat.class);
-  job.setOutputKeyClass(Text.class);
-  ...
-  job.waitForCompletion(true);</pre></div>
-    <p>See the below section for more detailed description of BSP user interfaces.</p>
-    
-    <div class="section"><h3>User Interfaces<a name="User_Interfaces"></a></h3></div>
-    <div class="section"><div class="section"><h4>Inputs and Outputs<a name="Inputs_and_Outputs"></a></h4>
-    <p>When setting up a BSPJob, you can provide a Input/OutputFormat and Paths like this:</p>
-    <div><pre>
-  job.setInputPath(new Path(&quot;/tmp/sequence.dat&quot;);
-  job.setInputFormat(org.apache.hama.bsp.SequenceFileInputFormat.class);
-  or,
-  SequenceFileInputFormat.addInputPath(job, new Path(&quot;/tmp/sequence.dat&quot;));
-  or,
-  SequenceFileInputFormat.addInputPaths(job, &quot;/tmp/seq1.dat,/tmp/seq2.dat,/tmp/seq3.dat&quot;);
-  
-  job.setOutputKeyClass(Text.class);
-  job.setOutputValueClass(IntWritable.class);
-  job.setOutputFormat(TextOutputFormat.class);
-  FileOutputFormat.setOutputPath(job, new Path(&quot;/tmp/result&quot;));
-  </pre></div>
-    
-    <p>Then, you can read the input and write the output from the methods in BSP class which has &quot;BSPPeer&quot; which contains an communication, counters, and IO interfaces as parameter.
-    In this case we read a normal text file:</p>
-
-    <div><pre>
- @Override
-  public final void bsp(
-      BSPPeer&lt;LongWritable, Text, Text, LongWritable, Text&gt; peer)
-      throws IOException, InterruptedException, SyncException {
-      
-      // this method reads the next key value record from file
-      KeyValuePair&lt;LongWritable, Text&gt; pair = peer.readNext();
-
-      // the following lines do the same:
-      LongWritable key = new LongWritable();
-      Text value = new Text();
-      peer.readNext(key, value);
-      
-      // write
-      peer.write(value, key);
-  }</pre></div>
-    <p>Consult the docs for more detail on events like end of file.
-    There is also a function which allows you to re-read the input from the beginning.
-    This snippet reads the input five times:
-    </p>
-    <div><pre>
-  for(int i = 0; i &lt; 5; i++){
-    LongWritable key = new LongWritable();
-    Text value = new Text();
-    while (peer.readNext(key, value)) {
-       // read everything
-    }
-    // reopens the input
-    peer.reopenInput()
-  }</pre></div>
-  
-    </div><div class="section"><h4>Communication<a name="Communication"></a></h4>
-    <p>Hama BSP provides simple but powerful communication APIs for many purposes. 
-    We tried to follow the standard library of BSP world as much as possible. 
-    The following table describes all the methods you can use:</p>
-    
-<table class="table table-striped" align="center" border="0">
-<tr class="a"><td><b>Method</b></td><td><b>Description</b></td></tr>
-<tr class="b"><td>send(String peerName, BSPMessage msg)</td><td>Sends a message to another peer.</td></tr>
-<tr class="a"><td>getCurrentMessage()</td><td>Returns a received message.</td></tr>
-<tr class="b"><td>getNumCurrentMessages()</td><td>Returns the number of received messages.</td></tr>
-<tr class="a"><td>sync()</td><td>Barrier synchronization.</td></tr>
-<tr class="b"><td>getPeerName()</td><td>Returns a peer's hostname.</td></tr>
-<tr class="a"><td>getAllPeerNames()</td><td>Returns all peer's hostname.</td></tr>
-<tr class="b"><td>getSuperstepCount()</td><td>Returns the count of supersteps</td></tr>
-</table>
-
-    <p>The send() and all the other functions are very flexible. Here is an example that sends a message to all peers:</p>
-    
-    <div><pre>
-  @Override
-  public void bsp(
-      BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, Text&gt; peer)
-      throws IOException, SyncException, InterruptedException {
-    for (String peerName : peer.getAllPeerNames()) {
-      peer.send(peerName, 
-        new Text(&quot;Hello from &quot; + peer.getPeerName(), System.currentTimeMillis()));
-    }
-
-    peer.sync();
-  }</pre></div>
-    
-    </div><div class="section"><h4>Synchronization<a name="Synchronization"></a></h4>
-
-    <p>When all the processes have entered the barrier via the sync() method, 
-    the Hama proceeds to the next superstep. 
-    In the previous example, the BSP job will be finished by one synchronization 
-    after sending a message &quot;Hello from ...&quot; to all peers.
-    <br /><br />
-    But, keep in mind that the sync() function is not the end of the BSP job. 
-    As was previously mentioned, all the communication functions are very flexible. 
-    For example, the sync() method also can be called in a for loop 
-    so that you can use to program the iterative methods sequentially:</p>
-    
-    <div><pre>
-  @Override
-  public void bsp(
-      BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, Text&gt; peer)
-      throws IOException, SyncException, InterruptedException {
-    for (int i = 0; i &lt; 100; i++) {
-      // send some messages
-      peer.sync();
-    }
-  }</pre></div>
-  
-  
-    </div></div><div class="section"><h3>Shell Command Line Interfaces<a name="Shell_Command_Line_Interfaces"></a></h3></div>
-    <p>Hama provides several command for BSP job administration:</p>
-    
-<table class="table table-striped" align="center" border="0">
-<tr class="a"><td><b>Command</b></td><td><b>Description</b></td></tr>
-<tr class="b"><td>-submit &lt;job-file&gt;</td><td>Submits the job.</td></tr>
-<tr class="a"><td>-status &lt;job-id&gt;</td><td>Prints the job status.</td></tr>
-<tr class="b"><td>-kill &lt;job-id&gt;</td><td>Kills the job.</td></tr>
-<tr class="a"><td>-list [all]</td><td>-list all displays all jobs. -list displays only jobs which are yet to be completed.</td></tr>
-<tr class="b"><td>-list-active-grooms</td><td>Displays the list of active groom server in the cluster.</td></tr>
-<tr class="a"><td>-list-attempt-ids &lt;jobId&gt; &lt;task-state&gt;</td><td>Displays the list of tasks for a given job currently in a particular state (running or completed).</td></tr>
-<tr class="b"><td>-kill-task &lt;task-id&gt;</td><td>Kills the task. Killed tasks are NOT counted against failed attempts.</td></tr>
-<tr class="a"><td>-fail-task &lt;task-id&gt;</td><td>Fails the task. Failed tasks are counted against failed attempts.</td></tr>
-</table>
-
-    <div class="section"><h3>Example: Pi Calculation<a name="Example:_Pi_Calculation"></a></h3></div>
-    <p>Here is an BSP-based Pi Calculation example and submit it to Hama cluster:</p>
-    <div><pre>
-  private static Path TMP_OUTPUT = new Path(&quot;/tmp/pi-&quot; + System.currentTimeMillis());
-
-  public static class MyEstimator extends
-      BSP&lt;NullWritable, NullWritable, Text, DoubleWritable, DoubleWritable&gt; {
-    public static final Log LOG = LogFactory.getLog(MyEstimator.class);
-    private String masterTask;
-    private static final int iterations = 10000;
-
-    @Override
-    public void bsp(
-        BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, DoubleWritable&gt; peer)
-        throws IOException, SyncException, InterruptedException {
-
-      int in = 0;
-      for (int i = 0; i &lt; iterations; i++) {
-        double x = 2.0 * Math.random() - 1.0, y = 2.0 * Math.random() - 1.0;
-        if ((Math.sqrt(x * x + y * y) &lt; 1.0)) {
-          in++;
-        }
-      }
-
-      double data = 4.0 * in / iterations;
-
-      peer.send(masterTask, new DoubleWritable(data));
-      peer.sync();
-    }
-
-    @Override
-    public void setup(
-        BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, DoubleWritable&gt; peer)
-        throws IOException {
-      // Choose one as a master
-      this.masterTask = peer.getPeerName(peer.getNumPeers() / 2);
-    }
-
-    @Override
-    public void cleanup(
-        BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, DoubleWritable&gt; peer)
-        throws IOException {
-      if (peer.getPeerName().equals(masterTask)) {
-        double pi = 0.0;
-        int numPeers = peer.getNumCurrentMessages();
-        DoubleWritable received;
-        while ((received = peer.getCurrentMessage()) != null) {
-          pi += received.get();
-        }
-
-        pi = pi / numPeers;
-        peer.write(new Text(&quot;Estimated value of PI is&quot;), new DoubleWritable(pi));
-      }
-    }
-  }
-
-  static void printOutput(HamaConfiguration conf) throws IOException {
-    FileSystem fs = FileSystem.get(conf);
-    FileStatus[] files = fs.listStatus(TMP_OUTPUT);
-    for (int i = 0; i &lt; files.length; i++) {
-      if (files[i].getLen() &gt; 0) {
-        FSDataInputStream in = fs.open(files[i].getPath());
-        IOUtils.copyBytes(in, System.out, conf, false);
-        in.close();
-        break;
-      }
-    }
-
-    fs.delete(TMP_OUTPUT, true);
-  }
-
-  public static void main(String[] args) throws InterruptedException,
-      IOException, ClassNotFoundException {
-    // BSP job configuration
-    HamaConfiguration conf = new HamaConfiguration();
-
-    BSPJob bsp = new BSPJob(conf, PiEstimator.class);
-    // Set the job name
-    bsp.setJobName(&quot;Pi Estimation Example&quot;);
-    bsp.setBspClass(MyEstimator.class);
-    bsp.setInputFormat(NullInputFormat.class);
-    bsp.setOutputKeyClass(Text.class);
-    bsp.setOutputValueClass(DoubleWritable.class);
-    bsp.setOutputFormat(TextOutputFormat.class);
-    FileOutputFormat.setOutputPath(bsp, TMP_OUTPUT);
-
-    BSPJobClient jobClient = new BSPJobClient(conf);
-    ClusterStatus cluster = jobClient.getClusterStatus(true);
-
-    if (args.length &gt; 0) {
-      bsp.setNumBspTask(Integer.parseInt(args[0]));
-    } else {
-      // Set to maximum
-      bsp.setNumBspTask(cluster.getMaxTasks());
-    }
-
-    long startTime = System.currentTimeMillis();
-    if (bsp.waitForCompletion(true)) {
-      printOutput(conf);
-      System.out.println(&quot;Job Finished in &quot;
-          + (System.currentTimeMillis() - startTime) / 1000.0 + &quot; seconds&quot;);
-    }
-  }</pre></div>
-  
+            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. -->
+  
+    <div class="section"><h2>Hama BSP Tutorial<a name="Hama_BSP_Tutorial"></a></h2></div>
+    <p>This document describes the Hama BSP framework and serves as a tutorial.</p>
+    <div class="section"><h3>Overview<a name="Overview"></a></h3></div>
+    <p>Hama provides a Pure BSP Bulk Synchronous Parallel Model for message passing and collective communication.
+    A BSP program consists of a sequence of supersteps. Each superstep consists of the following three phases:</p>
+
+    <ul>
+     <li>Local computation</li>
+     <li>Process communication</li>
+     <li>Barrier synchronization</li>
+    </ul>
+    <p>BSP programming enables you to write high-performance parallel computing algorithms for a wide range of scientific problems.</p>
+    
+    <div class="section"><h3>Create your own BSP by extending BSP class<a name="Create_your_own_BSP_by_extending_BSP_class"></a></h3></div>
+    
+    <p>The way to create your own BSP class is to create a class that extends the org.apache.hama.bsp.<b>BSP</b> class.
+    <br />
+    The extending class must override the bsp() method, which is declared like this:
+    </p>
+    <div><pre>
+  public abstract void bsp(BSPPeer&lt;K1, V1, K2, V2, M extends Writable&gt; peer) throws IOException, 
+    SyncException, InterruptedException;</pre></div>
+    
+    <p>
+    You will define the BSP program inside this bsp() method.
+    It is important to understand that it doesn't mean a single superstep. 
+    As described above, a BSP program consists of a sequence of supersteps. 
+    So it just gets called once, not all over again unlike Mapper or Reducer method.
+    <br /><br />
+    <b>NOTE</b>: Optionally, there are also setup() and cleanup() which will be called at the beginning of your computation, 
+    respectively at the end of the computation. cleanup() is guranteed to run after the computation or in case of failure. 
+    You can simply override the methods you need from BSP class.
+    <br /><br />
+    After your own BSP is created, you will need to configure a <b>BSPJob</b> and submit it to Hama cluster to execute a job.
+    The BSP job configuration and submission interfaces is almost the same as the MapReduce job configuration:</p>
+    <div><pre>
+  HamaConfiguration conf = new HamaConfiguration();
+  BSPJob job = new BSPJob(conf, MyBSP.class);
+  job.setJobName(&quot;My BSP program&quot;);
+  job.setBspClass(MyBSP.class);
+  job.setInputFormat(NullInputFormat.class);
+  job.setOutputKeyClass(Text.class);
+  ...
+  job.waitForCompletion(true);</pre></div>
+    <p>See the below section for more detailed description of BSP user interfaces.</p>
+    
+    <div class="section"><h3>User Interfaces<a name="User_Interfaces"></a></h3></div>
+    <div class="section"><div class="section"><h4>Inputs and Outputs<a name="Inputs_and_Outputs"></a></h4>
+    <p>When setting up a BSPJob, you can provide a Input/OutputFormat and Paths like this:</p>
+    <div><pre>
+  job.setInputPath(new Path(&quot;/tmp/sequence.dat&quot;);
+  job.setInputFormat(org.apache.hama.bsp.SequenceFileInputFormat.class);
+  or,
+  SequenceFileInputFormat.addInputPath(job, new Path(&quot;/tmp/sequence.dat&quot;));
+  or,
+  SequenceFileInputFormat.addInputPaths(job, &quot;/tmp/seq1.dat,/tmp/seq2.dat,/tmp/seq3.dat&quot;);
+  
+  job.setOutputKeyClass(Text.class);
+  job.setOutputValueClass(IntWritable.class);
+  job.setOutputFormat(TextOutputFormat.class);
+  FileOutputFormat.setOutputPath(job, new Path(&quot;/tmp/result&quot;));
+  </pre></div>
+    
+    <p>Then, you can read the input and write the output from the methods in BSP class which has &quot;BSPPeer&quot; which contains an communication, counters, and IO interfaces as parameter.
+    In this case we read a normal text file:</p>
+
+    <div><pre>
+ @Override
+  public final void bsp(
+      BSPPeer&lt;LongWritable, Text, Text, LongWritable, Text&gt; peer)
+      throws IOException, InterruptedException, SyncException {
+      
+      // this method reads the next key value record from file
+      KeyValuePair&lt;LongWritable, Text&gt; pair = peer.readNext();
+
+      // the following lines do the same:
+      LongWritable key = new LongWritable();
+      Text value = new Text();
+      peer.readNext(key, value);
+      
+      // write
+      peer.write(value, key);
+  }</pre></div>
+    <p>Consult the docs for more detail on events like end of file.
+    There is also a function which allows you to re-read the input from the beginning.
+    This snippet reads the input five times:
+    </p>
+    <div><pre>
+  for(int i = 0; i &lt; 5; i++){
+    LongWritable key = new LongWritable();
+    Text value = new Text();
+    while (peer.readNext(key, value)) {
+       // read everything
+    }
+    // reopens the input
+    peer.reopenInput()
+  }</pre></div>
+  
+    </div><div class="section"><h4>Communication<a name="Communication"></a></h4>
+    <p>Hama BSP provides simple but powerful communication APIs for many purposes. 
+    We tried to follow the standard library of BSP world as much as possible. 
+    The following table describes all the methods you can use:</p>
+    
+<table class="table table-striped" align="center" border="0">
+<tr class="a"><td><b>Method</b></td><td><b>Description</b></td></tr>
+<tr class="b"><td>send(String peerName, BSPMessage msg)</td><td>Sends a message to another peer.</td></tr>
+<tr class="a"><td>getCurrentMessage()</td><td>Returns a received message.</td></tr>
+<tr class="b"><td>getNumCurrentMessages()</td><td>Returns the number of received messages.</td></tr>
+<tr class="a"><td>sync()</td><td>Barrier synchronization.</td></tr>
+<tr class="b"><td>getPeerName()</td><td>Returns a peer's hostname.</td></tr>
+<tr class="a"><td>getAllPeerNames()</td><td>Returns all peer's hostname.</td></tr>
+<tr class="b"><td>getSuperstepCount()</td><td>Returns the count of supersteps</td></tr>
+</table>
+
+    <p>The send() and all the other functions are very flexible. Here is an example that sends a message to all peers:</p>
+    
+    <div><pre>
+  @Override
+  public void bsp(
+      BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, Text&gt; peer)
+      throws IOException, SyncException, InterruptedException {
+    for (String peerName : peer.getAllPeerNames()) {
+      peer.send(peerName, 
+        new Text(&quot;Hello from &quot; + peer.getPeerName(), System.currentTimeMillis()));
+    }
+
+    peer.sync();
+  }</pre></div>
+    
+    </div><div class="section"><h4>Synchronization<a name="Synchronization"></a></h4>
+
+    <p>When all the processes have entered the barrier via the sync() method, 
+    the Hama proceeds to the next superstep. 
+    In the previous example, the BSP job will be finished by one synchronization 
+    after sending a message &quot;Hello from ...&quot; to all peers.
+    <br /><br />
+    But, keep in mind that the sync() function is not the end of the BSP job. 
+    As was previously mentioned, all the communication functions are very flexible. 
+    For example, the sync() method also can be called in a for loop 
+    so that you can use to program the iterative methods sequentially:</p>
+    
+    <div><pre>
+  @Override
+  public void bsp(
+      BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, Text&gt; peer)
+      throws IOException, SyncException, InterruptedException {
+    for (int i = 0; i &lt; 100; i++) {
+      // send some messages
+      peer.sync();
+    }
+  }</pre></div>
+  
+  
+    </div></div><div class="section"><h3>Shell Command Line Interfaces<a name="Shell_Command_Line_Interfaces"></a></h3></div>
+    <p>Hama provides several command for BSP job administration:</p>
+    
+<table class="table table-striped" align="center" border="0">
+<tr class="a"><td><b>Command</b></td><td><b>Description</b></td></tr>
+<tr class="b"><td>-submit &lt;job-file&gt;</td><td>Submits the job.</td></tr>
+<tr class="a"><td>-status &lt;job-id&gt;</td><td>Prints the job status.</td></tr>
+<tr class="b"><td>-kill &lt;job-id&gt;</td><td>Kills the job.</td></tr>
+<tr class="a"><td>-list [all]</td><td>-list all displays all jobs. -list displays only jobs which are yet to be completed.</td></tr>
+<tr class="b"><td>-list-active-grooms</td><td>Displays the list of active groom server in the cluster.</td></tr>
+<tr class="a"><td>-list-attempt-ids &lt;jobId&gt; &lt;task-state&gt;</td><td>Displays the list of tasks for a given job currently in a particular state (running or completed).</td></tr>
+<tr class="b"><td>-kill-task &lt;task-id&gt;</td><td>Kills the task. Killed tasks are NOT counted against failed attempts.</td></tr>
+<tr class="a"><td>-fail-task &lt;task-id&gt;</td><td>Fails the task. Failed tasks are counted against failed attempts.</td></tr>
+</table>
+
+    <div class="section"><h3>Example: Pi Calculation<a name="Example:_Pi_Calculation"></a></h3></div>
+    <p>Here is an BSP-based Pi Calculation example and submit it to Hama cluster:</p>
+    <div><pre>
+  private static Path TMP_OUTPUT = new Path(&quot;/tmp/pi-&quot; + System.currentTimeMillis());
+
+  public static class MyEstimator extends
+      BSP&lt;NullWritable, NullWritable, Text, DoubleWritable, DoubleWritable&gt; {
+    public static final Log LOG = LogFactory.getLog(MyEstimator.class);
+    private String masterTask;
+    private static final int iterations = 10000;
+
+    @Override
+    public void bsp(
+        BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, DoubleWritable&gt; peer)
+        throws IOException, SyncException, InterruptedException {
+
+      int in = 0;
+      for (int i = 0; i &lt; iterations; i++) {
+        double x = 2.0 * Math.random() - 1.0, y = 2.0 * Math.random() - 1.0;
+        if ((Math.sqrt(x * x + y * y) &lt; 1.0)) {
+          in++;
+        }
+      }
+
+      double data = 4.0 * in / iterations;
+
+      peer.send(masterTask, new DoubleWritable(data));
+      peer.sync();
+    }
+
+    @Override
+    public void setup(
+        BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, DoubleWritable&gt; peer)
+        throws IOException {
+      // Choose one as a master
+      this.masterTask = peer.getPeerName(peer.getNumPeers() / 2);
+    }
+
+    @Override
+    public void cleanup(
+        BSPPeer&lt;NullWritable, NullWritable, Text, DoubleWritable, DoubleWritable&gt; peer)
+        throws IOException {
+      if (peer.getPeerName().equals(masterTask)) {
+        double pi = 0.0;
+        int numPeers = peer.getNumCurrentMessages();
+        DoubleWritable received;
+        while ((received = peer.getCurrentMessage()) != null) {
+          pi += received.get();
+        }
+
+        pi = pi / numPeers;
+        peer.write(new Text(&quot;Estimated value of PI is&quot;), new DoubleWritable(pi));
+      }
+    }
+  }
+
+  static void printOutput(HamaConfiguration conf) throws IOException {
+    FileSystem fs = FileSystem.get(conf);
+    FileStatus[] files = fs.listStatus(TMP_OUTPUT);
+    for (int i = 0; i &lt; files.length; i++) {
+      if (files[i].getLen() &gt; 0) {
+        FSDataInputStream in = fs.open(files[i].getPath());
+        IOUtils.copyBytes(in, System.out, conf, false);
+        in.close();
+        break;
+      }
+    }
+
+    fs.delete(TMP_OUTPUT, true);
+  }
+
+  public static void main(String[] args) throws InterruptedException,
+      IOException, ClassNotFoundException {
+    // BSP job configuration
+    HamaConfiguration conf = new HamaConfiguration();
+
+    BSPJob bsp = new BSPJob(conf, PiEstimator.class);
+    // Set the job name
+    bsp.setJobName(&quot;Pi Estimation Example&quot;);
+    bsp.setBspClass(MyEstimator.class);
+    bsp.setInputFormat(NullInputFormat.class);
+    bsp.setOutputKeyClass(Text.class);
+    bsp.setOutputValueClass(DoubleWritable.class);
+    bsp.setOutputFormat(TextOutputFormat.class);
+    FileOutputFormat.setOutputPath(bsp, TMP_OUTPUT);
+
+    BSPJobClient jobClient = new BSPJobClient(conf);
+    ClusterStatus cluster = jobClient.getClusterStatus(true);
+
+    if (args.length &gt; 0) {
+      bsp.setNumBspTask(Integer.parseInt(args[0]));
+    } else {
+      // Set to maximum
+      bsp.setNumBspTask(cluster.getMaxTasks());
+    }
+
+    long startTime = System.currentTimeMillis();
+    if (bsp.waitForCompletion(true)) {
+      printOutput(conf);
+      System.out.println(&quot;Job Finished in &quot;
+          + (System.currentTimeMillis() - startTime) / 1000.0 + &quot; seconds&quot;);
+    }
+  }</pre></div>
+  
 
                   </div>
             </div>
@@ -485,7 +500,12 @@
                     
       </div>
 
-        
+                                          <?xml version="1.0" encoding="UTF-8"?>
+<div class="row span16">Apache Hama, Apache, the Apache feather logo, and
+          the Apache Hama project logos are trademarks of The Apache Software
+          Foundation. All other marks mentioned may be trademarks or registered
+          trademarks of their respective owners.</div>
+                  
         
                 </div>
     </footer>

Modified: hama/site/trunk/hama_graph_tutorial.html
URL: http://svn.apache.org/viewvc/hama/site/trunk/hama_graph_tutorial.html?rev=1360560&r1=1360559&r2=1360560&view=diff
==============================================================================
--- hama/site/trunk/hama_graph_tutorial.html (original)
+++ hama/site/trunk/hama_graph_tutorial.html Thu Jul 12 07:40:15 2012
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  | Generated by Apache Maven Doxia at Jul 12, 2012
- | Rendered using Apache Maven Fluido Skin 1.2.3-SNAPSHOT
+ | Rendered using Apache Maven Fluido Skin 1.2.2
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
@@ -44,10 +44,10 @@
         </li>
       <li class="divider ">/</li>
             <li class="">
-                    <a href="http://hama.apache.org/" class="externalLink" title="Hama">Hama</a>
+                    <a href="./" title="Hama">Hama</a>
         </li>
       <li class="divider ">/</li>
-        <li class="">Hama - 
+        <li class="">
   Graph Tutorial</li>
         
                 
@@ -166,6 +166,21 @@
                           <a href="artwork.html" title="Artwork and Clothing">Artwork and Clothing</a>
             </li>
           </ul>
+                        <h3>ASF</h3>
+                  <ul>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">How Apache Works</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">Foundation</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">Sponsoring Apache</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
+            </li>
+          </ul>
                       
                     
                 
@@ -184,78 +199,78 @@
         
         <div id="bodyColumn"  class="span10" >
                                   
-            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License. -->
-  
-    <div class="section"><h2>Hama Graph Tutorial<a name="Hama_Graph_Tutorial"></a></h2></div>
-    <p>This document describes the Graph computing framework and serves as a tutorial.</p>
-    <div class="section"><h3>Overview<a name="Overview"></a></h3></div>
-    <p>Hama includes the Graph package for vertex-centric graph computations.
-    Hama's Graph package allows you to program Google's Pregel style applications with simple programming interface.</p>
-
-    <div class="section"><h3>Vertex API<a name="Vertex_API"></a></h3></div>    
-
-    <p>Writing a Hama graph application involves subclassing the predefined Vertex class. Its template arguments define three value types, associated with vertices, edges, and messages.</p>
-    <div><pre>
-  public abstract class Vertex&lt;V extends Writable, E extends Writable, M extends Writable&gt;
-      implements VertexInterface&lt;V, E, M&gt; {
-
-    public void compute(Iterator&lt;M&gt; messages) throws IOException;
-    ..
-
-  }</pre></div>    
-
-   <p>The user overrides the Compute() method, which will be executed at each active vertex in every superstep. Predefined Vertex methods allow Compute() to query information about the current vertex and its edges, and to send messages to other vertices. Compute() can inspect the value associated with its vertex via GetValue().</p>
-
-   <div class="section"><h3>Example: PageRankVertex<a name="Example:_PageRankVertex"></a></h3></div>
-   <p>To solve the Page Rank problem using Hama Graph, you can extends the Vertex class to create a PageRankVertex class.
-In this example, the algorithm described Google's Pregel paper was used. The value of a vertex represents the tentative page rank of the vertex. The graph is intialized with each vertex value equal to 1/numOfVertices. In each of the first 30 supersteps, each vertex sends its tentative page rank along all of its outgoing edges.
-<br /><br />
-From Superstep 1 to 30, each vertex sums up the values arriving on all its messages and sets its tentative page rank to (1 - 0.85) / numOfVertices + (0.85 * sum).
-   </p>
-
-    <div><pre>
-  public static class PageRankVertex extends
-      Vertex&lt;Text, NullWritable, DoubleWritable&gt; {
-
-    @Override
-    public void compute(Iterator&lt;DoubleWritable&gt; messages) throws IOException {
-      if (this.getSuperstepCount() == 0) {
-        this.setValue(new DoubleWritable(1.0 / (double) this.getNumVertices()));
-      }
-
-      if (this.getSuperstepCount() &gt;= 1) {
-        double sum = 0;
-        while (messages.hasNext()) {
-          DoubleWritable msg = messages.next();
-          sum += msg.get();
-        }
-
-        double ALPHA = (1 - 0.85) / (double) this.getNumVertices();
-        this.setValue(new DoubleWritable(ALPHA + (0.85 * sum)));
-      }
-
-      if (this.getSuperstepCount() &lt; this.getMaxIteration()) {
-        int numEdges = this.getOutEdges().size();
-        sendMessageToNeighbors(new DoubleWritable(this.getValue().get()
-            / numEdges));
-      }
-    }
-  }</pre></div>
-
-  
+            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. -->
+  
+    <div class="section"><h2>Hama Graph Tutorial<a name="Hama_Graph_Tutorial"></a></h2></div>
+    <p>This document describes the Graph computing framework and serves as a tutorial.</p>
+    <div class="section"><h3>Overview<a name="Overview"></a></h3></div>
+    <p>Hama includes the Graph package for vertex-centric graph computations.
+    Hama's Graph package allows you to program Google's Pregel style applications with simple programming interface.</p>
+
+    <div class="section"><h3>Vertex API<a name="Vertex_API"></a></h3></div>    
+
+    <p>Writing a Hama graph application involves subclassing the predefined Vertex class. Its template arguments define three value types, associated with vertices, edges, and messages.</p>
+    <div><pre>
+  public abstract class Vertex&lt;V extends Writable, E extends Writable, M extends Writable&gt;
+      implements VertexInterface&lt;V, E, M&gt; {
+
+    public void compute(Iterator&lt;M&gt; messages) throws IOException;
+    ..
+
+  }</pre></div>    
+
+   <p>The user overrides the Compute() method, which will be executed at each active vertex in every superstep. Predefined Vertex methods allow Compute() to query information about the current vertex and its edges, and to send messages to other vertices. Compute() can inspect the value associated with its vertex via GetValue().</p>
+
+   <div class="section"><h3>Example: PageRankVertex<a name="Example:_PageRankVertex"></a></h3></div>
+   <p>To solve the Page Rank problem using Hama Graph, you can extends the Vertex class to create a PageRankVertex class.
+In this example, the algorithm described Google's Pregel paper was used. The value of a vertex represents the tentative page rank of the vertex. The graph is intialized with each vertex value equal to 1/numOfVertices. In each of the first 30 supersteps, each vertex sends its tentative page rank along all of its outgoing edges.
+<br /><br />
+From Superstep 1 to 30, each vertex sums up the values arriving on all its messages and sets its tentative page rank to (1 - 0.85) / numOfVertices + (0.85 * sum).
+   </p>
+
+    <div><pre>
+  public static class PageRankVertex extends
+      Vertex&lt;Text, NullWritable, DoubleWritable&gt; {
+
+    @Override
+    public void compute(Iterator&lt;DoubleWritable&gt; messages) throws IOException {
+      if (this.getSuperstepCount() == 0) {
+        this.setValue(new DoubleWritable(1.0 / (double) this.getNumVertices()));
+      }
+
+      if (this.getSuperstepCount() &gt;= 1) {
+        double sum = 0;
+        while (messages.hasNext()) {
+          DoubleWritable msg = messages.next();
+          sum += msg.get();
+        }
+
+        double ALPHA = (1 - 0.85) / (double) this.getNumVertices();
+        this.setValue(new DoubleWritable(ALPHA + (0.85 * sum)));
+      }
+
+      if (this.getSuperstepCount() &lt; this.getMaxIteration()) {
+        int numEdges = this.getOutEdges().size();
+        sendMessageToNeighbors(new DoubleWritable(this.getValue().get()
+            / numEdges));
+      }
+    }
+  }</pre></div>
+
+  
 
                   </div>
             </div>
@@ -270,7 +285,12 @@ From Superstep 1 to 30, each vertex sums
                     
       </div>
 
-        
+                                          <?xml version="1.0" encoding="UTF-8"?>
+<div class="row span16">Apache Hama, Apache, the Apache feather logo, and
+          the Apache Hama project logos are trademarks of The Apache Software
+          Foundation. All other marks mentioned may be trademarks or registered
+          trademarks of their respective owners.</div>
+                  
         
                 </div>
     </footer>

Modified: hama/site/trunk/hama_on_clouds.html
URL: http://svn.apache.org/viewvc/hama/site/trunk/hama_on_clouds.html?rev=1360560&r1=1360559&r2=1360560&view=diff
==============================================================================
--- hama/site/trunk/hama_on_clouds.html (original)
+++ hama/site/trunk/hama_on_clouds.html Thu Jul 12 07:40:15 2012
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  | Generated by Apache Maven Doxia at Jul 12, 2012
- | Rendered using Apache Maven Fluido Skin 1.2.3-SNAPSHOT
+ | Rendered using Apache Maven Fluido Skin 1.2.2
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
@@ -44,10 +44,10 @@
         </li>
       <li class="divider ">/</li>
             <li class="">
-                    <a href="http://hama.apache.org/" class="externalLink" title="Hama">Hama</a>
+                    <a href="./" title="Hama">Hama</a>
         </li>
       <li class="divider ">/</li>
-        <li class="">Hama - 
+        <li class="">
   Deploy a Hama cluster on EC2</li>
         
                 
@@ -166,6 +166,21 @@
                           <a href="artwork.html" title="Artwork and Clothing">Artwork and Clothing</a>
             </li>
           </ul>
+                        <h3>ASF</h3>
+                  <ul>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">How Apache Works</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">Foundation</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">Sponsoring Apache</a>
+            </li>
+                  <li class="none">
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
+            </li>
+          </ul>
                       
                     
                 
@@ -184,41 +199,41 @@
         
         <div id="bodyColumn"  class="span10" >
                                   
-            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License. -->
-  
-    <div class="section"><h2>Hama on Clouds<a name="Hama_on_Clouds"></a></h2></div>
-    <p>This document describes how to deploy Hama clusters on Clouds e.g., EC2, Rackspace using Whirr.</p>
-    
-    <div class="section"><h3>Deploy a Hama cluster on EC2<a name="Deploy_a_Hama_cluster_on_EC2"></a></h3></div>
-    <p>The following commands install Whirr and start a 5 node Hama cluster on Amazon EC2 in 5 minutes or less.
-    </p><div><pre>
-  % curl -O http://www.apache.org/dist/whirr/whirr-0.x.0/whirr-0.x.0.tar.gz
-  % tar zxf whirr-0.x.0.tar.gz; cd whirr-0.x.0
-
-  % export AWS_ACCESS_KEY_ID=YOUR_ID
-  % export AWS_SECRET_ACCESS_KEY=YOUR_SECKEY
-  % ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa_whirr
-
-  % bin/whirr launch-cluster --config recipes/hama-ec2.properties --private-key-file ~/.ssh/id_rsa_whirr</pre></div>
-    
-    <div class="section"><h3>Execute Hama Examples<a name="Execute_Hama_Examples"></a></h3></div>
-    <div><pre>
-  % cd /usr/local/hama-0.x.0
-  % bin/hama jar hama-examples-x.x.x.jar [args]</pre></div>
-    
+            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. -->
+  
+    <div class="section"><h2>Hama on Clouds<a name="Hama_on_Clouds"></a></h2></div>
+    <p>This document describes how to deploy Hama clusters on Clouds e.g., EC2, Rackspace using Whirr.</p>
+    
+    <div class="section"><h3>Deploy a Hama cluster on EC2<a name="Deploy_a_Hama_cluster_on_EC2"></a></h3></div>
+    <p>The following commands install Whirr and start a 5 node Hama cluster on Amazon EC2 in 5 minutes or less.
+    </p><div><pre>
+  % curl -O http://www.apache.org/dist/whirr/whirr-0.x.0/whirr-0.x.0.tar.gz
+  % tar zxf whirr-0.x.0.tar.gz; cd whirr-0.x.0
+
+  % export AWS_ACCESS_KEY_ID=YOUR_ID
+  % export AWS_SECRET_ACCESS_KEY=YOUR_SECKEY
+  % ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa_whirr
+
+  % bin/whirr launch-cluster --config recipes/hama-ec2.properties --private-key-file ~/.ssh/id_rsa_whirr</pre></div>
+    
+    <div class="section"><h3>Execute Hama Examples<a name="Execute_Hama_Examples"></a></h3></div>
+    <div><pre>
+  % cd /usr/local/hama-0.x.0
+  % bin/hama jar hama-examples-x.x.x.jar [args]</pre></div>
+    
 
                   </div>
             </div>
@@ -233,7 +248,12 @@
                     
       </div>
 
-        
+                                          <?xml version="1.0" encoding="UTF-8"?>
+<div class="row span16">Apache Hama, Apache, the Apache feather logo, and
+          the Apache Hama project logos are trademarks of The Apache Software
+          Foundation. All other marks mentioned may be trademarks or registered
+          trademarks of their respective owners.</div>
+                  
         
                 </div>
     </footer>

Added: hama/site/trunk/images/close.gif
URL: http://svn.apache.org/viewvc/hama/site/trunk/images/close.gif?rev=1360560&view=auto
==============================================================================
Binary file - no diff available.

Propchange: hama/site/trunk/images/close.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream