脚本自动化安装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
posted @ 2021-06-08 14:32  夕風吹雨  阅读(76)  评论(0)    收藏  举报