#!/bin/bash
VERSION=1.0.4

if [ ! -f /usr/bin/wget ]; then
  sudo apt-get -y install wget
fi

if [ ! -f /usr/bin/javac ]; then
  echo "---- [0.0] Installing OpenJDK 7 ........ ----"
  sudo apt-get -y install openjdk-7-jdk
fi

if [ ! -d ${HOME}/hadoop ]; then
  if [ ! -f ${HOME}/hadoop-$VERSION.tar.gz ]; then
    echo "---- [0.1] Downloading Hadoop $VERSION ....... ----"
    wget -O ${HOME}/hadoop-$VERSION.tar.gz http://archive.apache.org/dist/hadoop/core/hadoop-$VERSION/hadoop-$VERSION.tar.gz
  fi
  echo "---- [0.2] Extracting Hadoop $VERSION ....... ----"
  tar zxvf ${HOME}/hadoop-$VERSION.tar.gz -C ${HOME}
  mv ${HOME}/hadoop-$VERSION ${HOME}/hadoop
  rm ${HOME}/hadoop-$VERSION.tar.gz
fi

if [ ! -d ${HOME}/hadoop/conf.local ]; then
  echo "---- [1.1] Generating Local Mode Configurations ....... ----"
  mv ${HOME}/hadoop/conf ${HOME}/hadoop/conf.local
  echo "export HADOOP_HEAPSIZE=256" >> ${HOME}/hadoop/conf.local/hadoop-env.sh
fi

# Ignore the environment setting from $HADOOP_CONF_DIR
unset HADOOP_CONF_DIR

if [ "$(pidof java)" != "" ]; then
  ${HOME}/hadoop/bin/hadoop-daemon.sh stop tasktracker
  ${HOME}/hadoop/bin/hadoop-daemon.sh stop datanode
  ${HOME}/hadoop/bin/hadoop-daemon.sh stop jobtracker
  ${HOME}/hadoop/bin/hadoop-daemon.sh stop namenode
  # wait for terminating java processes
  sleep 5
fi

if [ -e ${HOME}/hadoop/conf ]; then
  rm ${HOME}/hadoop/conf
fi

ln -s ${HOME}/hadoop/conf.local ${HOME}/hadoop/conf

echo "Please run followinig commands:"
echo ""
echo "   export PATH=\$PATH:~/hadoop/bin"