介紹和基本原理
Cloudera釋出的Cloudera的資料平台(CDP)私有雲基礎版為使用者提供了下一代混合雲架構。這篇博文概述了設計和部署包含硬體和作業系統配置的叢集的最佳實踐,以及有關網絡和安全以及與現有企業基礎架構內建的指南。
私有雲基礎概覽
CDP Private Cloud Base 是 Cloudera Data Platform 的本地部署版本,它結合了 Cloudera Enterprise Data Hub 和 Hortonworks Data Platform Enterprise 的優點以及整個堆棧的新功能和增強功能。此統一分發版是一個可擴充且可自定義的平台,您可以在其中安全地運作多種類型的工作負載。
更多資訊和文檔https://docs.cloudera.com/cdp-private-cloud/latest/overview/topics/cdpdc-overview.html
主要變化總結
在我們深入研究最佳實踐之前,有必要了解 CDP 相對于傳統發行版提供的關鍵改進。
- 最好的 CDH 和 HDP,增加了分析和平台功能
- 用于CDP私有雲的存儲層,包括對象存儲
- Cloudera SDX 可在整個平台上實作一緻的安全性和治理
- 用于尚未準備好用于雲的工作負載的傳統資料叢集
為了讓客戶從這些功能中獲得最大的收益,Cloudera 最佳實踐展現了成千上萬客戶部署的成功,并結合釋出測試來確定客戶能夠成功部署他們的環境并将風險降至最低。
推薦的部署模式
開源軟體生态系統是動态且快速變化的,Cloudera 支援定期功能改進、安全性和性能修複,通過彙總到正常産品版本中,Cloudera Manager 可以将其作為Parcel進行部署。建議客戶與這些版本保持一緻,以便從持續改進中受益。然後可以使用相鄰的測試和開發環境來驗證将這些更改更新到生産環境。對于那些無法直接或通過代理将 Cloudera Manager 連接配接到 Cloudera 軟體分發站點的使用者,他們應該建立存儲庫的離線鏡像。客戶還應該定期并在可能的情況下安排送出叢集診斷包,并從新的支援功能(例如在https://my.cloudera.com/上的驗證功能)進行重大更改時受益。
許多客戶希望自動化他們的叢集部署,以實作高品質的一緻性和可重複性。在最近釋出了Cloudera Ansible劇本提供了在這個部落格中列入最佳做法,并可以從下載下傳的模闆https://github.com/cloudera-labs/cloudera-deploy
playbook 包含所有典型叢集角色的模闆,其中的任務使用 Cloudera Manager API 來簡化建構和安全性的實作。
角色配置設定
一個典型的叢集将由許多不同的角色組成,這些角色需要特定的記憶體、磁盤布局以及在某些情況下的網絡連接配接,以優化性能和彈性。每個角色分類如下:
主節點
包含“主”角色的節點通常将管理其跨分布式叢集運作的一組服務。其中包括 HDFS NameNode、YARN ResourceManager、Impala Catalog/Statestore、HBase Master Server 和 Kudu Master。至少應該有三個主節點,其中兩個是 HDFS Namenodes 和 YARN Resource Managers。這三個節點都将成為 Zookeeper 和 HDFS 日志節點的法定數量,以跟蹤存儲在 Namenode 上的 HDFS 中繼資料的更改。至少需要 3 個集合才能達成多數共識。在超過 200 個節點的叢集中,5 個主節點可能是合适的。
工作節點
包含為其相應服務執行大部分計算/IO 工作的角色的節點。HDFS DataNodes、YARN NodeManagers、HBase RegionServers、Impala Daemons、Kudu Tablet Servers 和 Solr Servers 是工作角色的例子。
邊緣或網關節點
邊緣節點充當企業網絡其餘部分與 CDP 私有雲叢集之間的網關。許多 CDP 私有雲服務都帶有駐留在此處的“網關角色”,以及來自企業網絡的 REST API 調用和 JDBC/ODBC 類型連接配接的端點。通常,當您允許公司網絡流量僅流向這些節點時,設定外圍安全性會更簡單,而不是允許直接通路 Masters 和 Workers。
攝取節點
通常,攝取節點将遵循與實用程式節點類似的模式。攝取的關鍵要求是 Kafka 代理角色和 Nifi 角色的許多專用磁盤。Kafka 磁盤大小和配置設定的磁盤數量與預期的存儲和持久性設定成正比,和/或消息主題所需的吞吐量至少有 3 個Broker節點以實作彈性。
實用程式節點
實用程式節點包含允許您管理、監控和治理叢集的服務。此類服務包括 Cloudera Manager (CM) 和關聯的 Cloudera Management Services (CMS)、代表各種服務存儲中繼資料的 Hive Metastore RDBMS(如果位于叢集上)以及您的管理者的自定義備份腳本、部署自定義二進制檔案等等。
網絡
繁忙的叢集會産生大量的東西向網絡流量,是以建議客戶啟用 LACP 鍊路聚合到具有分布層和架頂交換機的葉脊網絡。最多 1:4 的超額訂閱比率,理想情況下至少有 2x10Gbps 甚至 2x25Gbps NIC,以适應未來的 CDP 私有雲體驗以及未來存儲和計算的分離。一般來說,不支援多宿主,我們發現大多數 Hadoop 架構不應該需要它,因為它會導緻大量 Hadoop 流量洩漏到錯誤的網絡接口上,進而破壞非生産網絡并影響性能。不支援 IPV6,應禁用IPV6。
對于分布在多個實體機架上的較大叢集,我們建議客戶利用 CDP 的機架感覺功能。YARN 嘗試将計算工作放置在機架内靠近資料的位置,最大限度地減少跨機架的網絡流量,而 HDFS 将確定每個塊都複制到一個以上的機架。
客戶将在叢集外圍實施防火牆,用于叢集内通信的網絡流量和端口量非常大。許多服務(例如 Spark)将使用臨時端口,以便應用程式主機角色(例如 Spark 驅動程式)可以維護對正在執行工作的執行程式的指令和控制。面向外部的服務,如 Hue 和 Hive on Tez (HS2) 角色可以更多地限于特定端口,并根據高可用性進行負載平衡。
Cloudera 支援在許可模式下使用 SELinux 運作 CDP 私有雲叢集,但是 Cloudera 不提供 SELinux 政策配置來啟用強制模式。如果客戶需要 SELinux 強制執行,他們需要自己測試和實施政策。鑒于平台的複雜性,Cloudera 建議堅持使用許可模式或完全禁用 SELinux。
請檢視完整的網絡和安全要求。
作業系統的磁盤布局
大多數客戶會将作業系統安裝在 4TB 或更多磁盤的鏡像對上,這些磁盤可以使用邏輯卷管理器進行分區,以確定為日志和臨時檔案提供足夠的存儲空間。應該注意的是 /tmp 檔案系統和日志記錄要求可能很重要,客戶應該小心確定有足夠的空間可用。此外,我們還建議客戶禁用透明大頁面 (THP),調整後的守護程式,并盡量減少交換。
支援的檔案系統是 ext3、ext4 和 XFS,通常大多數客戶将 XFS v5 用于資料目錄,這些通常會作為直接附加的 JBOD 磁盤挂載,以最大限度地提高 /data1、/data2 形式的 HDFS 的 I/O 性能,每個資料盤的dataN,通常為12-24個4-8Tb的磁盤,每個節點最大支援100Tb。主服務的磁盤通路模式有些不同,推薦用于 Zookeeper 和 HDFS 日志節點的專用磁盤和一些彈性存儲,例如用于 HDFS NameNode 目錄的 RAID 5 或 10。應該将磁盤挂載為 noatime 以提高讀取性能。釋出指南中描述了硬體要求的完整詳細資訊。
CDP 對主機名解析特别敏感,是以正确配置 DNS 伺服器和完全限定主機名至關重要。時鐘也必須同步。名稱服務緩存守護程序可以幫助大型叢集為常見名稱服務請求(例如密碼組和主機)提供本地緩存。
支援的基礎設施服務
Hive、Atlas、Ranger、Cloudera Manager、Hue 和 Oozie 需要 RDBMS 資料庫。https://docs.cloudera.com/cdp-private-cloud-base/latest/installation/topics/cdpdc-database-requirements.html部署時應考慮彈性和性能,因為性能不佳的資料庫會産生不利影響對叢集性能的影響。
安全內建
叢集安全需要根據安全對應的部落格文章,但是對于基本的安全內建,叢集需要通過公司目錄解析使用者群組。身份驗證和目錄服務通常通過 kerberos 和 LDAP 的組合完成,這是有利的,因為它簡化了密碼和使用者管理,同時與現有的企業系統(如 Active Directory)內建。
Kerberos 用作由單個主機角色組成的叢集服務的主要身份驗證方法,通常也用于應用程式。企業叢集将使用現有的企業目錄(例如 Microsoft Active Directory)來建立和管理這些 kerberos 主體。此外,Apache Knox 為支援 LDAP 和 SAML 的叢集 REST API 和 UI 提供身份驗證端點。
授權
Apache Ranger 提供了定義使用者對資源的通路權限的關鍵政策架構。安全管理者可以在資料庫、表、列和檔案級别定義安全政策,并且可以管理基于 LDAP 的特定組、角色或個人使用者的權限。還可以定義資料流和流(NiFi、Kafka 等)政策。
Apache Ranger 允許使用 sssd 或 Centrify 等工具通過企業組成員身份維護授權,以将服務和資料的通路權限與企業目錄同步。然後,這些授權會定期與底層 Hive 對象同步。
https://docs.cloudera.com/cdp-private-cloud-base/latest/installation/topics/cdpdc-networking-security-requirements.html
叢集服務之間的通信使用 TLS 1.2 安全性進行加密,以線上提供強大的身份驗證、完整性和隐私。Cloudera Manager 通過整合稱為 AutoTLS 的功能簡化了 TLS 證書管理,該功能允許管理者定義和部署完全內建的公鑰基礎設施布局。
總結
總之,我們為主機資源的調優和配置提供了參考,以最大限度地提高叢集的性能和安全性。在本系列部落格文章的第 2 部分中,我們将仔細研究如何管理、監控和調整您的應用程式以從參考布局中受益。同時,您可以通過下載下傳最新版本的 CDP 私有雲基礎版來開始使用。
原文作者:Niel Dunnage
原文連結:https://blog.cloudera.com/a-reference-architecture-for-the-cloudera-private-cloud-base-data-platform/