#!/bin/bash

#
# Hadoop single node setup script for development and test
# Jonathan Holloway (jonathan.holloway@gmail.com)
#

distro='hadoop-0.20.2'
javahome='export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home"'

# Grab the distro
curl -O http://apache.favoritelinks.net/hadoop/common/$distro/$distro.tar.gz

#Unpack and symlink
tar zxvf $distro.tar.gz
ln -s $distro hadoop

header='<?xml version="1.0"?>\n
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>\n 
<configuration>\n'

hdfssite='<property>\n
    <name>fs.default.name</name>\n
    <value>hdfs://localhost:50070</value>\n
  </property>\n
</configuration>'

coresite='
  <property>\n
    <name>dfs.replication</name>\n
    <value>1</value>\n
  </property>\n
</configuration>'

mapredsite='<property>\n
      <name>mapred.job.tracker</name>\n
      <value>localhost:50030</value>\n
</property>\n
</configuration>'

#echo single standalone node config
#uses default ports as advised here - http://www.cloudera.com/blog/2009/08/hadoop-default-ports-quick-reference/
echo -e $header $hdfssite > ./hadoop/conf/hdfs-site.xml
echo -e $header $coresite > ./hadoop/conf/core-site.xml
echo -e $header $mapredsite > ./hadoop/conf/mapred-site.xml

echo $javahome >> hadoop/conf/hadoop-env.sh

#Symlink, format and start
hadoop/bin/hadoop namenode -format
hadoop/bin/start-all.sh

#Check fs contents
hadoop/bin/hadoop fs -ls /


