One-click Hadoop WordCount on Eucalyptus FutureGrid

I. Introduction

This tutorial shows how to run a one-click Hadoop WordCount job on the Eucalyptus platform of FutureGrid.

II. Prerequisite

1. FutureGrid HPC account: please apply via FutureGrid portal and request a HPC account.
2. FutureGrid Eucalyptus account: please see FutureGrid Eucalyptus Tutorial for detailed instructions.
3. FutureGrid Eucalyptus credentials zip file (euca2-[username] stored under user's home directory
4. Key pair created and added for use with Eucalyptus virtual machines

The following sections assume a user has created both an HPC account and a Eucalpytus account under the username of gaoxm.

III. Login to

[gaoxm@129-79-49-98 ~]$ ssh -i .ssh/id_rsa_fg                      
Enter passphrase for key '.ssh/id_rsa_fg':
Last login: Sat May  5 02:17:33 2012 from
torque/2.5.5 version 2.5.5 loaded
moab version 5.4.0 loaded
euca2ools version 1.2 loaded
[gaoxm@i136 ~]$ cd eucalyptus/
[gaoxm@i136 eucalyptus]$ ls
cloud-cert.pem                 euca2-gaoxm-d108375b-pk.pem  eucarc         hosts        nodes
euca2-gaoxm-d108375b-cert.pem         gaoxm.private  jssecacerts  tmp.out

IV. Download and unzip the “” package

[gaoxm@i136 test]$ wget
[gaoxm@i136 test]$ ls
[gaoxm@i136 test]$ unzip

V. Run

[gaoxm@i136 test]$ cd hadoopOneClick
[gaoxm@i136 hadoopOneClick]$ ls     instanceIds.txt  publicIps.txt    ipHosts.txt
hosts                nodes.txt
[gaoxm@i136 hadoopOneClick]$ chmod +x *.sh
[gaoxm@i136 hadoopOneClick]$ ./ -n 2 -t m1.small -i emi-D778156D -k gaoxm -p ~/eucalyptus/gaoxm.private -l -s

This will run a MapReduce word-count job on a dynamically created virtual Hadoop cluster on FutureGrid. The user needs to replace the –k and –p parameter values with his/her key-pair name and private key path. For detailed usage information, try

[gaoxm@i136 hadoopOneClick]$ ./ -h

VI. Verify output

[gaoxm@i136 hadoopOneClick]$ ls outputs/
_logs  part-r-00000  _SUCCESS
[gaoxm@i136 hadoopOneClick]$ vim outputs/part-r-00000

VII. Extensions

To run other MapReduce jobs, replace with new scripts, and change to call the corresponding scripts.