amabri shell install 使用shell的方式一键式部署ambri HDP
背景&目的
从2016年第一个ambari相关项目开始,需要频繁的部署,不同的ambari版本,使用shell实现一键式部署ambari,后期不断完善,实际上还不够完美。
准备
- ambari-2.5.0.3-centos7.tar.gz
- HDP-2.6.5.0-centos7-rpm.tar.gz
- HDP-UTILS-1.1.0.21-centos7.tar.gz
- mysql-5.7.27-el7-x86_64.tar.gz
- mysql-connector-java-5.1.47.jar
- jdk-8u201-linux-x64.tar.gz jdk和mysql需要放在指定路径/opt
版本根据项目需求自己选择对应的版本,可在shell/yumInstall.sh、intsqllMysql.sh、installJDK.sh中替换对应的tar包
服务器准备
- 操作系统:centos7
- 网络配置已完成
- 机房已配备ntp服务,集群使用ntpdate进行时钟同步
shell 脚本
参数设计
config.cnf
#主机名规范,公司-项目-部门或应用 类如jzy-amabri-hdp-后面加编号‘001’
export HOSTSPEC=j-z-y-
#网段信息
export VLAN=136.192.61.
#用户
export USER=jzy
#密码
export PASSWORD=Jzy12#$
#jdkjar包路径
export JDKPATH=/opt/
主脚本
init.sh
for i in {001..26};
do
#create user
scp /home/createUser.sh pass-eda-hdp-$i:/home/;
ssh pass-eda-hdp-$i sh /home/createUser.sh;
#set hosts
scp /etc/hosts pass-eda-hdp-$i:/etc/;
#stop firewalld
systemctl disable firewalld
systemctl stop firewalld
#disable vm.swappiness
ssh pass-eda-hdp-$i sysctl vm.swappiness=0;
ssh pass-eda-hdp-$i echo vm.swappiness=0 >> /etc/sysctl.conf;
#close selinux and THP
scp /home/close* pass-eda-hdp-$i:/home/;
ssh pass-eda-hdp-$i sh /home/closeSelinux.sh;
ssh pass-eda-hdp-$i sh /home/closeTHP.sh;
ssh pass-eda-hdp-$i reboot;
#install jdk
scp ${path}jdk-8u201-linux-x64.tar.gz pass-eda-hdp-$i:/home/ocdp/;
scp /home/installJDK.sh pass-eda-hdp-$i:/home/;
ssh pass-eda-hdp-$i mv /home/ocdp/jdk-8u201-linux-x64.tar.gz ${path};
ssh pass-eda-hdp-$i sh /home/installJDK.sh;
ssh pass-eda-hdp-$i source /etc/profile;
#modifyLimits
scp /home/modifyLimits.sh pass-eda-hdp-$i:/home/;
ssh pass-eda-hdp-$i sh /home/modifyLimits.sh;
#yum ambari.repo
scp /etc/yum.repos.d/ambari.repo pass-eda-hdp-$i:/etc/yum.repos.d/;
ssh pass-eda-hdp-$i yum clean all && yum makecache;
done
安装jdk
installJDK.sh
#! /bin/bash
echo "******** JDK ********"
path=/opt/
userAndGroup=ocdp:ocdp
tar -xvf ${path}jdk-8u201-linux-x64.tar.gz -C ${path}
chown -R ${userAndGroup} ${path}jdk1.8.0_201
ln -s ${path}jdk1.8.0_201 ${path}jdk
chown -R ${userAndGroup} ${path}jdk
# 我这里是没有配置过环境变量的新机器,所以可以直接在/etc/profile 后追加
# 如果已经有环境变量可根据具体情况使用sed -i等命令配置
echo "export JAVA_HOME=${path}jdk" >> /etc/profile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile
echo "export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar" >> /etc/profile
rm -rf /usr/bin/java
rm -rf /usr/bin/javac
#hostname=`"hostname"`
#ssh $hostname "source /etc/profile;java -version;exit"
source /etc/profile
echo "******* JDK installation completed ********"