ambari和HDP升級文件
寫在前面的話:當初專案組業務擴大,日均流水達到千萬級別,考慮到mysql可能無法支撐,便開始研究HBase,從而開始接觸Hadoop。剛開始安裝叢集時,使用非常傳統的下載、安裝模式,不但效率低下,並且極其容易出問題。偶然發現有ambari這麼好用的一個工具,瞬間拋棄舊叢集,開始搗鼓ambari。過程中遇到過很多坑,還好csdn和stackoverflow能找到大部分解答。ambari是Hortonworks公司的一款產品,用來簡化安裝Hadoop元件和監控整個叢集的狀態,優點不多說,個人覺得缺點是整合的元件版本有點低~~扯的有點遠...
下面開始翻譯升級Ambari2.3至2.5
原文地址:
https://docs.hortonworks.com/HDPDocuments/Ambari-2.5.0.3/bk_ambari-upgrade/content/ambari_upgrade_guide.html
1、更新Ambari和HDP
注意:
Ambari2.5不支援管理HDP 2.2,2.1或2.0叢集(小弟是從2.4升級至2.6)。如果你使用的是HDP2.2,2.1或2.0,為了使用Ambari2.5你必須先使用Ambari2.4.2,2.2.2,2.2.1,2.2,2.1或2.0將HDP升級高於2.3的版本。一旦完成上面的升級,就可以將你現在的Ambari升級至2.5啦。
2、升級前準備
當你準備升級Ambari和HDP叢集,我們強烈建議你多看看下面的清單確保你的叢集操作是安全的。如果嘗試升級一個處於不健康狀態的叢集可能會導致一些不可預料的結果。
注意:
- 如果你打算升級Ambari和更新HDP的一個小版本(比如將HDP從2.2->2.3),在升級叢集之前最好將Ambair升級至最新的版本。
- 確保叢集中的服務是正常執行的;
- 對每個元件進行檢查(Service Actions選單可以找到)並且確保它們能執行成功;
- 消除每個警告(alerts)或者這些警告為什麼產生;
- 開啟和關閉時間伺服器。啟動和關閉服務的時間,對整體升級來說,是一個很重要的因素,所以掌握這個資訊是方便有用的;
- 在更新之前下載軟體包。因為叢集中的每個節點都需要幾GB的下載量,所以建議將它們放在本地倉庫;
- 確保對叢集中的資料庫實時備份。包括Ambari的資料庫、Hive、Ranger和Oozie(居然沒說HBase);
- 確保檢視Ambari2.5.0已知的Issues和特性的改動;
- 確保/usr/hdp/<version>目錄下有足夠的磁碟空間;
如果你升級至Ambari2.4,在升級HDP前你必須確保Ranger的資料密碼不為空。Ambari需要Ranger資料庫密碼有值。如果你升級至Ambari2.2沒有對Ranger的資料庫的密碼賦值,Ranger服務將會在升級之後無法啟動。
3、更新叢集所在的作業系統
這裡不做說明,有需要請檢視官方文件、評論或私信
4、更新Ambari(基本都是頁面操作,簡單)
4.1更新前準備
- 擁有所有叢集機器的root許可權;
- 備份Ambari的資料庫(預設使用postgresql);
- 備份Ambari服務的配置檔案,路徑/etc/ambari-server/conf/ambari.properties;
- 如果你打算更新Ambari Metrics服務:記下Metrics Collector元件的安裝位置;在Ambari頁面上關閉Ambari Metrics服務;在更新Ambari之後,Ambari會提示你安裝Grafana元件;
- 升級Ambari後,你必須更新SmartSense(付費產品,惹不起,惹不起...)
4.2更新Ambari
1.在Ambari頁面上停止Ambari Metrics
2.停止Ambari server,在安裝Ambari server服務的機器上執行
#ambari-server stop
3.停止Ambari agents,在所有安裝agents的節點機器上執行
#ambari-agent stop
4.下載新的Ambari repo和HDP repo檔案至所有的節點(建議搭建本地倉庫)
For RHEL/CentOS/Oracle Linux 6:
wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.0.3/ambari.repo -O /etc/yum.repos.d/ambari.repo
#wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.0.3/ambari.repo -O /etc/yum.repos.d/ambari.repo
For RHEL/CentOS/Oracle Linux 7:
#wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.5.0.3/ambari.repo -O /etc/yum.repos.d/ambari.repo
5.先更新Ambari server
yum clean all
yum info ambari-server
yum upgrade ambari-server
6.檢查第5步的輸出,大致會出現以下的內容:
Setting up Upgrade Process Resolving Dependencies --> Running transaction check
如果升級失敗,控制檯會輸出:
Setting up Upgrade Process No Packages marked for Update
如果升級成功,控制檯會輸出:
Updated: ambari-server.noarch 0:2.5-111 Complete!
7.再更新Ambari agents
yum clean all
yum info ambari-agent
yum upgrade ambari-agent
8.在升級完成,檢查每臺機器的安裝版本
#rpm -qa | grep ambari-agent
9.更新Ambari server的資料庫
#ambari-server upgrade
10.啟動Ambari server
#ambari-server start
11.啟動所有的Ambari agent
#ambari-agent start
12.開啟Ambari web頁面
在瀏覽器中輸入: http://<your.ambari.server>:8080,預設帳號密碼 admin/admin
13.更新Ambari Metrics和增加Grafana元件
4.3強制的一些工作
4.3.3.1增加Grafana(4.3講講這裡)
1.確保所有服務執行正常;
2.新增元件方式是呼叫ambari提供的API
#curl -u admin:admin -H "X-Requested-By:ambari" -i -X POST http://ambari.server:8080/api/v1/clusters/cluster.name/services/
AMBARI_METRICS/components/METRICS_GRAFANA
3.增加METRICS_GRAFANA(注意改變變數值)
#curl -u admin:admin -H "X-Requested-By:ambari" -i -X POST -d
'{"host_components":[{"HostRoles":{"component_name":"METRICS_GRAFANA"}}]}' http://ambari.server:8080/api/v1/clusters/
cluster.name/hosts?Hosts/host_name=host.name
4.3.4.2升級日誌輸出
強烈執行這一項,因為2.4版本的日誌看著很蛋疼,所有日誌全在一個檔案裡面,做了此項便於日誌的管理和檢視。(暫未翻譯)
5、升級HDP
5.1升級HDP有兩種方式:Rolling Upgrade & Express Upgrade。Rolling Upgrade可以在更新過程中對服務不長產生影響,但是需要嚴格的前提,並且升級花費的時間比Express Upgrade長;Express Upgrade升級中會讓叢集停止服務,但是不會有嚴格的前條件。(這裡請大家依具體業務場景而定,因為小弟所維護的叢集作為實時交易儲存,無法中斷交易,所以選擇的Rolling Upgrade)
如果你選擇Rolling Upgrade方式,有幾個前提:
HDFS部分:必須開啟Namenode HA,HDFS中元件在Ambari頁面中必須為綠色;如果你升級前版本為HDP 2.2 ,那麼你的Namenode Truncate 必須關閉;
YARN部分:Timeline Service State Recovery必須開啟;YARN work preserving recovery必須開啟;ResourceManager HA 應該開啟(可選);
MapReduce部分:JobHistory state應該開啟;如果encrypted shuffle已經開啟了,ssl-client.xml檔案必須拷貝一份至/etc/hadoop/conf/secure資料夾中;
~~~~部分
5.2準備升級
在升級之後,強烈建議備份一下資料庫資料
- Ambari database
- Hive Metastore database
- Oozie Server database
- Ranger Admin database
- Ranger Audit database
注意:如果你使用的是MySQL 5.6 ,那儲存引擎必須選擇Inno DB,如果使用的是MyISAM,你必須改變;
HDFS檢查點:
1.如果你啟用了Namenode HA,在Active Namenode節點上執行下列的步驟;
2.檢查Namenode的資料夾,確保沒有之前的升級快照;並且,最好檢查配置檔案中dfs.namenode.name.dir的值,確保值有/current資料夾;
3.建立下列的日誌檔案和其他檔案
#su - hdfs切換至hdfs使用者
#hdfs fsck / -files -blocks -locations > dfs-old-fsck-1.log
#hdfs dfsadmin -report > dfs-old-report-1.log
#hdfs dfs -ls -R / > dfs-old-lsr-1.log
#hdfs dfsadmin -safemode enter
#hdfs dfsadmin -saveNamespace
4.將${dfs.namenode.name.dir}/current下的檢測點檔案備份;
5.備份${dfs.namenode.name.dir}/current/VERSION;
6.退出安全模式
#hdfs dfsadmin -safemode leave
#hdfs dfsadmin -finalizeUpgrade
5.3註冊並安裝目標版本包
1.登陸Ambari頁面;
2.Admin > Stack and Versions;
3.點選versions按鈕,你可以看到當前執行的版本,將其標識為Current;
4.點選Manage Versions;
5.點選+register Versin;
6.選擇軟體HDP版本並選擇包的傳輸方式(這裡與當初初次安裝Ambari一致)
a.選擇HDP Stack
b.選擇HDP Version
c.選擇倉庫傳輸方式;
7.點選save;
安裝:
1.登陸Ambari;
2.點選Admin > Stack and Versions.
3.點選Versions按鈕;
4.點選install並點選ok
當安裝完成後,install按鈕將會替換為upgrade按鈕
5.4執行更新
1.登陸Ambari;
2.點選Admin > Stack and Versions.
3.點選Versions按鈕;
4.點選Perform Upgrade5.選擇Rolling Upgrade或者Express Upgrade
6.點選Proceed.