脚本自动化安装apache-spark
bash编程实现自动化安装apache-spark,是课程的留堂作业。话不多说,直接上码。
#!/bin/bash
# This script is used to install apache-spark automatically for Linux OS
# 1.If you dont get jdk installed, you need a jdk package put in the same path as this script does.The version of jdk is only allowed 8.
# 2.To install apache-spark, an apache-spark package is needed. Download it from the web and put it just like the jdk does. Version is only allowed 2
# 3.This is the early version. Update if needed.
# 4.Tell me if you find errors so that I can fix.
# script author gbj
# QQ: 815631532
#===============================#
# function to install java 8 #
#===============================#
installJava8(){
sudo tar -zxvf `find . -name 'jdk-8*.tar.gz'` -C /opt/ >> $cur_path/log.txt
pushd . > /dev/null
cd /opt
sudo mv `find . -maxdepth 1 -name 'jdk*'` ./jdk8
sudo chown root.root ./jdk8
cd ~
sed '$a export JAVA_HOME=/opt/jdk8' .bashrc -i
sed '$a export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' .bashrc -i
sed '$a export PATH=$JAVA_HOME/bin:$PATH' .bashrc -i
source ./.bashrc
popd > /dev/null
echo '+---------------------------------------------------------------+' | tee $cur_path/log.txt -a
echo '+ Jdk8 now is installed in /opt/jdk8 +' | tee $cur_path/log.txt -a
echo '+ "relogin" or "command" `source ~/.bashrc` to make Java usable +' | tee $cur_path/log.txt -a
echo '+---------------------------------------------------------------+' | tee $cur_path/log.txt -a
}
#==================================#
# function to install apache-spark #
#==================================#
installSpark2(){
sudo tar -zxvf `find . -name 'spark-*-hadoop*.tgz'` -C /opt/ >> $cur_path/log.txt
pushd . > /dev/null
cd /opt
sudo mv `find . -maxdepth 1 -name 'spark-*-hadoop*'` ./spark
sudo chown root.root ./spark
cd ~
sed '$a export SPARK_HOME=/opt/spark' .bashrc -i
sed '$a export PATH=$SPARK_HOME/bin:$PATH' .bashrc -i
source ./.bashrc
popd > /dev/null
echo
echo '+---------------------------------------------+' | tee $cur_path/log.txt -a
echo '+ apache-spark now is installed in /opt/spark +' | tee $cur_path/log.txt -a
echo '+---------------------------------------------+' | tee $cur_path/log.txt -a
}
# get current working path
cur_path=`pwd`
# check java environment
java -version > /dev/null 2>&1
if [ $? = 127 ]
then
echo 'java doesnt installed' | tee $cur_path/log.txt -a
echo 'now starting install java 8' | tee $cur_path/log.txt -a
installJava8
else
echo 'java installed' | tee $cur_path/log.txt -a
fi
# install apache-spark
echo 'now starting install apache-spark' | tee $cur_path/log.txt -a
installSpark2
# log option
read -p 'do you want to save log.txt stored in your current directory?[y/n]' option
if [ $option != 'y' ]
then
rm $cur_path/log.txt
echo 'log removed'
echo 'all done'
else
echo 'log saved' | tee $cur_path/log.txt -a
echo 'all done' | tee $cur_path/log.txt -a
fi

浙公网安备 33010602011771号