一、前期準備工作
機器規劃
- 安裝操作系統centos7
- ambari001 裝AmbariServer
- ambari001,ambari002,ambari003 裝AmbariAgent
開啟網絡
#開啟網絡
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#修改最后一行
ONBOOT=yes
#立即生效
service network restart
配置HostName
#編輯此文件 加入ambari001(重啟生效)
vi /etc/sysconfig/network
#立即生效
hostname ambari001
配置SSH免密登陸
#生成ssh公約私鑰
ssh-keygen
#公鑰拷貝到其他機器上
ssh-copy-id ambari001
#驗證
ssh ambari001
配置NTP服務
#安裝
yum install -y ntp
#檢查是否已啟動
systemctl is-enabled ntpd
#設為自啟動
systemctl enable ntpd
#啟動
systemctl start ntpd
禁用iptables
#取消開機啟動
systemctl disable firewalld
#停止iptables服務
service firewalld stop
禁用SELinux和PackageKit 檢查umask值
#禁用SELinux(立即生效)
setenforce 0
#禁用SELinux 編輯以下文件 修改SELINUX=disabled (永久生效)
/etc/selinux/config
#禁用PackageKit
vim /etc/yum/pluginconf.d/refresh-packagekit.conf
#設置umask(立即生效)
umask 0022
#設置umask(永久生效)
echo umask 0022 >> /etc/profile
安裝JDK
cd /usr
wget wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
tar -zxvf jdk-8u131-linux-x64.tar.gz
#/usr/jdk1.8.0_131 這就是我們的JAVA_HOME
#拷貝到其他機器上
scp -r /usr/jdk1.8.0_131/ ambari002:/usr
scp -r /usr/jdk1.8.0_131/ ambari003:/usr
二、配置Yum源
準備
#安裝Apache服務器
yum install -y httpd
#開啟Apache服務器
service httpd start
#安裝wget
yum install -y wget
#創建相關目錄
mkdir -p /var/www/html/Ambari-2.4.2.0/centos7
mkdir -p /var/www/html/hdp/HDP/centos7/2.x/updates/2.5.3.0
mkdir -p /var/www/html/hdp/HDP-UTILS-1.1.0.21/repos/centos7
#從網絡下載或從其他機器拷貝yum源安裝包
#從網絡下載
cd /var/www/html/Ambari-2.4.2.0/centos7;wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari-2.4.2.0-centos7.tar.gz
cd /var/www/html/hdp/HDP/centos7/2.x/updates/2.5.3.0;wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.3.0/HDP-2.5.3.0-centos7-rpm.tar.gz
cd /var/www/html/hdp/HDP-UTILS-1.1.0.21/repos/centos7;wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz
#或從其他地方拷貝
scp ambari-2.4.2.0-centos7.tar.gz root@ambari001:/var/www/html/Ambari-2.4.2.0/centos7
scp HDP-2.5.3.0-centos7-rpm.tar.gz root@ambari001:/var/www/html/hdp/HDP/centos7/2.x/updates/2.5.3.0
scp HDP-UTILS-1.1.0.21-centos7.tar.gz root@ambari001:/var/www/html/hdp/HDP-UTILS-1.1.0.21/repos/centos7
#解壓并放在合適的位置
cd /var/www/html/Ambari-2.4.2.0/centos7;tar -zxvf ambari-2.4.2.0-centos7.tar.gz;mv AMBARI-2.4.2.0/centos7/2.4.2.0-136/* ./;rm -rf AMBARI-2.4.2.0/;rm -rf ambari-2.4.2.0-centos7.tar.gz
cd /var/www/html/hdp/HDP/centos7/2.x/updates/2.5.3.0;tar -zxvf HDP-2.5.3.0-centos7-rpm.tar.gz;mv HDP/centos7/* ./;rm -rf HDP;rm -rf HDP-2.5.3.0-centos7-rpm.tar.gz
cd /var/www/html/hdp/HDP-UTILS-1.1.0.21/repos/centos7;tar -zxvf HDP-UTILS-1.1.0.21-centos7.tar.gz;rm -rf HDP-UTILS-1.1.0.21-centos7.tar.gz
編輯/etc/yum.repos.d/ambari.repo文件
#VERSION_NUMBER=2.4.2.0-136
[Updates-ambari-2.4.2.0]
name=ambari-2.4.2.0 - Updates
baseurl=http://ambari001/Ambari-2.4.2.0/centos7
gpgcheck=1
gpgkey=http://ambari001/Ambari-2.4.2.0/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
編輯/etc/yum.repos.d/hdp.repo文件
#VERSION_NUMBER=2.5.3.0-37
[HDP-2.5.3.0]
name=HDP Version - HDP-2.5.3.0
baseurl=http://ambari001/hdp/HDP/centos7/2.x/updates/2.5.3.0
gpgcheck=1
gpgkey=http://ambari001/hdp/HDP/centos7/2.x/updates/2.5.3.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.21]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.21
baseurl=http://ambari001/hdp/HDP-UTILS-1.1.0.21/repos/centos7
gpgcheck=1
gpgkey=http://ambari001/hdp/HDP/centos7/2.x/updates/2.5.3.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
repo文件拷貝到其他機器上
scp /etc/yum.repos.d/ambari.repo ambari002:/etc/yum.repos.d;scp /etc/yum.repos.d/hdp.repo ambari002:/etc/yum.repos.d
scp /etc/yum.repos.d/ambari.repo ambari003:/etc/yum.repos.d;scp /etc/yum.repos.d/hdp.repo ambari003:/etc/yum.repos.d
驗證本地yum源可用性
#在每臺機器上執行如下命令:
yum clean all; yum repolist
三、安裝Ambari-Server
yum install -y ambari-server
#進行AmbariServer設置
ambari-server setup
#1.SELinux檢測 (直接按回車)
#2.選擇使用的用戶 (默認root,直接按回車)
#3.檢查iptables
#4.指定JDK (輸入3,然后將我們剛才的JAVA_HOME粘貼進去 /usr/jdk1.8.0_131)
#5.配置AmbariServer使用的元數據庫 (使用默認的PostgreSQL,直接按回車)
#6.完成AmbariServer的配置
#啟動AmbariServer
ambari-server start
#檢查AmbariServer狀態
ambari-server status
安裝AmbariAgent和HDP服務
至此 AmbariServer已經安裝完了 我們剩下的工作都是通過AmbariWeb來完成
訪問 http://ambari001:8080 用戶admin 密碼admin
升級Ambari2.5
一、準備升級
- 您必須有root權限
- 您必須備份AmbariServer數據庫
- 必須備份/etc/ambari-server/conf/ambari.properties文件
- 停止Ambari Metrics服務
- 備份/var/lib/ambari-server/ambari-env.sh
- ambari-server stop
- ambari-agent stop
二、配置yum源
準備
#創建相關目錄
mkdir -p /var/www/html/Ambari-2.5.1.0/centos7
mkdir -p /var/www/html/hdp/HDP/centos7/2.x/updates/2.6.1.0
mkdir -p /var/www/html/hdp/HDP-UTILS-1.1.0.21/repos/centos7
#從網絡下載或從其他機器拷貝yum源安裝包
#從網絡下載
cd /var/www/html/Ambari-2.5.1.0/centos7;wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.5.1.0/ambari-2.5.1.0-centos7.tar.gz
cd /var/www/html/hdp/HDP/centos7/2.x/updates/2.6.1.0;wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.1.0/HDP-2.6.1.0-centos7-rpm.tar.gz
cd /var/www/html/hdp/HDP-UTILS-1.1.0.21/repos/centos7;wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz
#或從其他地方拷貝
scp ambari-2.5.1.0-centos7.tar.gz root@ambari001:/var/www/html/Ambari-2.5.1.0/centos7
scp HDP-2.6.1.0-centos7-rpm.tar.gz root@ambari001:/var/www/html/hdp/HDP/centos7/2.x/updates/2.6.1.0
scp HDP-UTILS-1.1.0.21-centos7.tar.gz root@ambari001:/var/www/html/hdp/HDP-UTILS-1.1.0.21/repos/centos7
#解壓并放在合適的位置
cd /var/www/html/Ambari-2.5.1.0/centos7;tar -zxvf ambari-2.5.1.0-centos7.tar.gz;mv ambari ambari1;mv ambari1/centos7/* ./;rm -rf ambari-2.5.1.0-centos7.tar.gz
cd /var/www/html/hdp/HDP/centos7/2.x/updates/2.6.1.0;tar -zxvf HDP-2.6.1.0-centos7-rpm.tar.gz;mv HDP/centos7/* ./;rm -rf HDP-2.6.1.0-centos7-rpm.tar.gz
cd /var/www/html/hdp/HDP-UTILS-1.1.0.21/repos/centos7;tar -zxvf HDP-UTILS-1.1.0.21-centos7.tar.gz;rm -rf HDP-UTILS-1.1.0.21-centos7.tar.gz
編輯/etc/yum.repos.d/ambari.repo文件
#VERSION_NUMBER=2.5.1.0-159
[ambari-2.5.1.0]
name=ambari Version - ambari-2.5.1.0
baseurl=http://ambari001:/Ambari-2.5.1.0/centos7
gpgcheck=1
gpgkey=http://ambari001:/Ambari-2.5.1.0/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
編輯/etc/yum.repos.d/hdp.repo文件
#VERSION_NUMBER=2.6.1.0-129
[HDP-2.6.1.0]
name=HDP Version - HDP-2.6.1.0
baseurl=http://ambari001/hdp/HDP/centos7/2.x/updates/2.6.1.0
gpgcheck=1
gpgkey=http://ambari001/hdp/HDP/centos7/2.x/updates/2.6.1.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.21]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.21
baseurl=http://ambari001/hdp/HDP-UTILS-1.1.0.21/repos/centos7
gpgcheck=1
gpgkey=http://ambari001/hdp/HDP/centos7/2.x/updates/2.5.3.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
repo文件拷貝到其他機器上
scp /etc/yum.repos.d/ambari.repo ambari002:/etc/yum.repos.d;scp /etc/yum.repos.d/hdp.repo ambari002:/etc/yum.repos.d
scp /etc/yum.repos.d/ambari.repo ambari003:/etc/yum.repos.d;scp /etc/yum.repos.d/hdp.repo ambari003:/etc/yum.repos.d
驗證本地Yum源可用性
yum clean all; yum repolist
三、準備升級AmbariServer-備份
mkdir -p /data/ambaribak
cp /var/lib/pgsql/data/pg_hba.conf /data/ambaribak/
cp /var/lib/ambari-server/ambari-env.sh /data/ambaribak
ambari-server stop
mkdir -p /data/ambaribak/dbdumps
#默認用戶名ambari密碼bigdata
pg_dump -U ambari -f /data/ambaribak/dbdumps/ambari.sql
四、升級AmbariServer、Agent、Metrics
#在AmbariServer節點執行
ambari-server stop
#在AmbariAgent節點執行
ambari-agent stop
#在AmbariServer節點執行
yum clean all
yum info ambari-server
yum upgrade ambari-server
#在AmbariAgent節點執行
yum upgrade ambari-agent
rpm -qa | grep ambari-agent
#升級AmbariServer元數據庫(為了方便后續回滾 請一定保存此過程輸出的控制臺log!)
ambari-server upgrade
#更新完畢 啟動服務
ambari-server start
ambari-agent start
#在所有MetricsMonitor HadoopSink使用的機器上 更新
yum upgrade ambari-metrics-monitor ambari-metrics-hadoop-sink
#在MetricsCollector節點上執行
yum upgrade ambari-metrics-collector
在Grafana節點上執行
yum upgrade ambari-metrics-grafana
五、AmbariServer、Agent、Metrics回滾方案
#在AmbariServer上執行
ambari-server stop
#在每個AmbariAgent上執行
ambari-agent stop
#在AmbariServer節點執行
HISTORY_ID=`yum history list ambari-server | awk '{print $1}' | grep -v [^0-9] | head -1`
yum history undo $HISTORY_ID
#恢復AmbariServer元數據庫
su - postgres
psql
drop database ambari;
create database ambari;
\q
psql -d ambari -f /data/ambaribak/dbdumps/ambari.sql
#恢復配置文件(根據恢復時間不同 目錄名也不同 請根據自己備份目錄自行修改)
cp /data/ambaribak/pg_hba.conf /var/lib/pgsql/data
cp /data/ambaribak/ambari-env.sh /var/lib/pgsql/data
cp /etc/ambari-server/conf/ambari.properties.rpmsave /etc/ambari-server/conf/ambari.properties
cp /var/lib/ambari-server/ambari-env.sh.rpmsave /var/lib/ambari-server/ambari-env.sh
cp /etc/ambari-server/conf/krb5JAASLogin.conf.rpmsave /etc/ambari-server/conf/krb5JAASLogin.conf
#設置cp別名 方便使用cp -rf
unalias cp
cp -rf /var/lib/ambari-server/resources/stacks_22_06_17_20_48.old/* /var/lib/ambari-server/resources/stacks
cp -rf /var/lib/ambari-server/resources/common-services_22_06_17_20_48.old/* /var/lib/ambari-server/resources/common-services
cp /var/lib/ambari-server/resources/views/backups/*.jar /var/lib/ambari-server/resources/views
cp /usr/lib/ambari-server-backups/ambari-server-2.4.2.0.136.jar /usr/lib/ambari-server
#恢復cp別名
alias cp='cp -i'
#在AmbariAgent節點執行
HISTORY_ID=`yum history list ambari-agent | awk '{print $1}' | grep -v [^0-9] | head -1`
yum history undo $HISTORY_ID
ambari-server start
ambari-agent start
#AmbariServer、Agent回滾成功
#在所有MetricsMonitor HadoopSink的機器上執行
HISTORY_ID=`yum history list ambari-metrics-monitor | awk '{print $1}' | grep -v [^0-9] | head -1`
yum history undo $HISTORY_ID
HISTORY_ID=`yum history list ambari-metrics-hadoop-sink | awk '{print $1}' | grep -v [^0-9] | head -1`
yum history undo $HISTORY_ID
#在Collector節點上執行
HISTORY_ID=`yum history list ambari-metrics-collector | awk '{print $1}' | grep -v [^0-9] | head -1`
yum history undo $HISTORY_ID
#在Grafana節點上執行
HISTORY_ID=`yum history list yum upgrade ambari-metrics-grafana | awk '{print $1}' | grep -v [^0-9] | head -1`
yum history undo $HISTORY_ID
#AmbariMetrics回滾成功
六、備份HDFS元數據
sudo su hdfs
mkdir /data/ambaribak/hdfs
hdfs fsck / -files -blocks -locations > /data/ambaribak/hdfs/dfs-old-fsck-1.log
hdfs dfsadmin -report> /data/ambaribak/hdfs/dfs-old-report-1.log
hdfs dfs -ls -R /> /data/ambaribak/hdfs/dfs-old-lsr-1.log
hdfs dfsadmin -safemode
hdfs dfsadmin -saveNamespace
cp /data/hadoop/hdfs/namenode/current /data/ambaribak/hdfs
hdfs dfsadmin -safemode leave