Hadoop配置脚本

#!/bin/bash
read -p "请输入master节点IP地址:" masterip
read -p "请输入slave1节点IP地址:" slave1ip
read -p "请输入centosYUM源地址:" yumc
read -p "请输入ambariYUM源地址:" yuma
read -p "这是master节点?[y/n]" hostname
read -p "本机是否已存在 jdk-8u77-linux-x64.tar.gz文件[y/n]" file
if [ $file == y ];then
	echo -e "请输入jdk压缩文件路径"
	read -p "当前目录下请直接输入文件名" filepath
else
	echo -e "请输入jdk压缩文件远程URL"
	echo -e "参考格式:ftp://controller/bigdata/jdk-8u77-linux-x64.tar.gz"
	echo -e "\n"
	read fileurl
	mkdir -p /opt/jdk
fi
if [ $hostname == y ];then
	echo -e "正在配置master节点"
	hostnamectl set-hostname master
else
	echo -e "正在配置slave1节点"
	hostnamectl set-hostname slave1
fi
if [ -n `ls /etc/|grep hosts.bak` ];then
	rm -f /etc/hosts
	cp /etc/hosts.bak /etc/hosts
else
	cp /etc/hosts /etc/hosts.bak
fi
echo -e "$masterip master.hadoop master\n$slave1ip slave1.hadoop slave1" >> /etc/hosts
echo -e "hosts文件配置如下,按回车继续执行下面的内容]"
cat /etc/hosts
read h
rm -f /etc/yum.repos.d/*
echo -e "[centos]\nname=centos\nbaseurl=$yumc\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/centos.repo
echo -e "[ambari]\nname=ambari\nbaseurl=$yuma\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/ambari.repo
echo -e "YUM配置完成"
echo -e "正在验证"
yum clean all
yum repolist
echo -e "是否配置正确,如若错误请终止[回车继续执行]"
read cuo
if [ $hostname == y ];then
	echo -e "正在安装相关服务"
	yum install -y ntp httpd
	sed -i 's/server/#server/g' /etc/ntp.conf
	echo -e "server 127.127.1.0\nfudge 127.127.1.0 stratum 10" >> /etc/ntp.conf
	rm -f /etc/httpd/conf.d/welcome.conf
	systemctl enable httpd.service
	systemctl enable ntpd
	if [ -z "$(systemctl start httpd.service)" ];then
		echo -e httpd服务启动成功
	else
		echo -e 启动失败
		echo 脚本已终止,请检查相关服务配置
		exit 0
	fi
	if [ -z "$(systemctl start ntpd)" ];then
		echo -e ntpd服务启动成功
	else
		echo -e 启动失败
		echo 脚本已终止,请检查相关服务配置
		exit 0
	fi
else
	echo -e "emmmmmmmmm"
fi
echo -e "开始配置jdk"
mkdir /usr/jdk64
if [ $file == y ];then
	tar -zxvf $filepath -C /usr/jdk64
	echo -e "JDK文件解压缩完成"
else
	echo -e "开始下载JDK文件"
        cd /opt/jdk
	wget $fileurl /opt/jdk/
	tar -zxvf /opt/jdk/*tar.gz -C /usr/jdk64
	echo -e "JDK文件解压缩完成"
fi
echo -e "开始配置Java环境"
cd /usr/jdk64/jdk1.8*
jh=$(pwd)
echo "export JAVA_HOME=$jh" >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
echo -e "正在验证jdk"
source /etc/profile
java -version
yz=`java -version`
yzz=`echo $yz|grep 1.8.0`
if [ -n "$yzz" ];then
	echo -e "Java配置出错,请终止"
	read yooo
else
	echo -e "Java配置成功"
fi
if [ $hostname == y ];then
	echo -e "正在继续配置master节点"
	yum install -y ambari-server mariadb mariadb-server mysql-connector-java expect
	systemctl daemon-reload
	systemctl enable mariadb.service
	if [ -z "$(systemctl restart mariadb.service)" ];then
		echo -e mariadb服务启动成功
	else
		echo -e 启动失败
		echo 脚本已终止,请检查相关服务配置
		exit 0
	fi
	expect -c "
	spawn /usr/bin/mysql_secure_installation
	expect \"Enter current password for root (enter for none):\"
	send \"\r\"
	expect \"Set root password?\"
	send \"y\r\"
	expect \"New password:\"
	send \"bigdata\r\"
	expect \"Re-enter new password:\"
	send \"bigdata\r\"
	expect \"Remove anonymous users?\"
	send \"y\r\"
	expect \"Disallow root login remotely?\"
	send \"n\r\"
	expect \"Remove test database and access to it?\"
	send \"y\r\"
	expect \"Reload privilege tables now?\"
	send \"y\r\"
	expect eof
	"
	echo -e "正在创建数据库"
	mysql -uroot -pbigdata -e "create database ambari;"
	mysql -uroot -pbigdata -e "grant all privileges on ambari.* to 'ambari'@'localhost' identified by 'bigdata';"
	mysql -uroot -pbigdata -e "grant all privileges on ambari.* to 'ambari'@'%' identified by 'bigdata';"
	echo -e "正在刷新权限"
	mysql -uroot -pbigdata -e "flush privileges;"
	echo -e "正在验证"
	if [ -z `mysql -uambari -pbigdata -e "use ambari"` ];then
		echo -e "数据库及用户配置成功,开始导入数据库文件"
		if [ -z `ls /var/lib/ambari-server/resources/ | grep Ambari-DDL-MySQL-CREATE.sql` ];then
			echo -e "数据库文件不存在,请检查ambari服务是否成功安装"
		else
			mysql -uroot -pbigdata ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
		fi
		echo -e "正在查询导入结果"
		mysql -uambari -pbigdata -e "use ambari;show tables;"
	else
		echo -e "数据库用户配置失败"
		exit;
	fi
	echo  'export buildNumber=2.6.0.0' >> /etc/profile
	source /etc/profile
	echo -e "开始执行ambari-server setup命令"
	expect -c "
	spawn ambari-server setup
	expect \"Customize user account for ambari-server daemon [y/n] (n)?\"
	send \"n\r\"
	expect \"Enter choice (1):\"
	send \"3\r\"
	expect \"Path to JAVA_HOME:\"
	send \"$jh\r\"
	expect \"Enter advanced database configuration [y/n] (n)?\"
	send \"y\r\"
	expect \"Enter choice (1): \"
	send \"3\r\"
	expect \"Hostname (localhost):\"
	send \"localhost\r\"
	expect \"Port (3306):\"
	send \"3306\r\"
	expect \"Database name (ambari):\"
	send \"ambari\r\"
	expect \"Username (ambari):\"
	send \"ambari\r\"
	expect \"Enter Database Password (bigdata):\"
	send \"bigdata\r\"
	expect \"Proceed with configuring remote database connection properties [y/n] (y)?\"
	send \"y\r\"
	expect eof
	"
	ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
	ambari-server start
	echo -e "请在浏览器打开下面这个地址"
	echo -e "$masterip:8080"
else
	yum install -y ntpdate
	systemctl enable ntpdate
	echo -e "同步master节点"
	ntpdate master.hadoop
	echo -e "slave1节点已配置完成"
fi
echo -e "配置结束"
发布了42 篇原创文章 · 获赞 23 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_36154886/article/details/87908399