大資料集群的物理機部署形態,相對于公有云/混合云的云主機部署形態,在自動化發放集群、彈性伸縮等云化場景方面處于劣勢,但物理機部署形態的大資料集群能夠更加充分高效的利用服務器資源,不存在云化/虛擬化的開銷,同時服務器的異構能力更強,
早期交付的很多大資料集群均是物理機部署形態,如浙江移動大資料集群、廣東移動大資料集群、工行大資料集群、招行大資料集群等,
針對這些存量大資料集群,以下介紹一種自動化運維管理辦法,來提升運維效率、集群資源利用率,降低集群的資源消耗,
該自動化運維管理辦法包含以下4個方面的功能:
1、根據組件特點選擇最適合服務器型別來部署、擴容或更換:
- 部署和擴容原則是每種服務器區域署一個上層組件,不混合部署多個組件,該原則能夠使后面彈性伸縮的管理更加方便,從服務器資源池自動選擇最適合組件資源負載特點的服務器型別,
- 服務器分類規則:Elasticsearch、Kafka、Clickhouse選擇滿配SAS盤服務器(較大容量存盤、高IO吞吐量、低IO延遲),Flink、Redis選擇少量SSD盤服務器(較小容量存盤、高IO吞吐量、低IO延遲),Hive、Spark選擇滿配SATA盤服務器(大容量存盤、高IO吞吐量、不追求低IO延遲),HBase標準場景可選擇滿配SATA盤服務器,極致高性能場景可選擇滿配SAS盤服務器,
- 組件引數根據實際物理機配置進行自動化初始設定;如Yarn NodeManager的VCores和記憶體,HDFS和Kafka的存盤路徑設定,--這一步是初始化設定,所設定的軟體引數均是和硬體服務器有關的引數,
2、組件引數根據作業負載情況自適應重設:根據實際作業運行的特點情況,自動化、最優化的設定組件/軟體引數,這些引數和硬體服務器無關,但和實際作業運行的需求有關,其目的是把服務器資源最大化利用,以保證組件的高性能,
- Yarn資源分配和實際占用是有差異的,必須把引數重設更大或更小來滿足實際運行情況,Yarn資源分配是賬面數字,但實際業務負載在運行河駁現其資源占用情況,因此在運行后根據實際占用的資源重設引數來避免資源浪費或是資源不夠而造成的任務報錯,
- 如果Yarn劃分了資源池,按照資源池進行彈性伸縮,佇列資源不經常用滿,也自適應收縮,
- HiveServer記憶體監測,如果記憶體快到最大堆記憶體了,停止HiveServer的SQL請求,新的請求由其他HiveServer進行接收處理,等待已有的SQL處理完成后,重啟該HiveServer實體,
- RegionServer記憶體監測,如果記憶體快到最大堆記憶體了,可以先重設到更大,重啟該RegionServer實體,最后仍然突破到一個最高上線閾值時,發出告警,
3、組件單節點性能及組件所在服務器的資源占用率的監控:
- 組件單節點性能的監控,如Kafka單節點寫入吞吐量、Kafka單節點讀取吞吐量、HBase單RegionServer支持的最大Region數,
- 組件所在服務器的資源占用率的監控,包括CPU、記憶體、磁盤IO、網路IO這4個維度,
- 軟體性能與硬體占用率(包含CPU、記憶體、磁盤IO等)的映射曲線,這個曲線隨著利用率提升性能逐漸增大但最終增大緩慢,為后面彈性伸縮提供依據,給出建議的占用率,在此占用率下組件的綜合性能達到最優,也給出優化空間,比如增大硬碟數量、記憶體條數量等等來繼續提升軟體的性能,或者是減少硬碟數量、記憶體條數量來避免浪費,
4、集群服務器自適應負載進行彈性伸縮管理:
- 彈性伸縮演算法:在集群的某組件所有節點資源達到建議的占用率時,此時需要擴容,擴容多少臺可以計算出來,Yarn任務可以根據任務積壓的計算需求進行估算,如果服務器資源池有相應的資源則自動直接擴容,如果沒有則發送告警通知需要擴容多少該型別的節點,其他組件暫不估算,如Kafka、Elasticsearch、HBase一臺臺擴容及自動的負載均衡,直至該組件所有節點的資源占用率低于建議的占用率,
- 緩沖池(溫池子)用于做入服管理,預安裝組件軟體包,便于快速擴容,高資源利用率時入服;溫池子是上電狀態,可快速的加入,具體準備多少個取決于日常負載曲線,提前做好準備;
- 集群整體資源出現低利用率時退服一定數量的服務器;服務器在退服后斷電,斷電后節省服務器的風火水電;
- 共享服務器資源池供給多個集群進行擴縮容,根據優先級分配給各個集群補給不同數量的服務器,
- 出現故障/失效節點時,主動從集群中退服該節點,從服務器資源池選擇對應型別的節點并重新安裝相對應的大資料行程,
本文由華為云發布,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/449728.html
標籤:其他
