本文匯總了叢集管理的常見問題。
擴容時報錯“The specified parameter AddNumber is not valid”,該如何處理?
服務類常見問題
EMR Doctor常見問題
EMR叢集是否支援升級版本?
EMR叢集不支援升級,也不能進行服務的升級。如果有升級需求,請釋放叢集並重新建立叢集。
EMR叢集都支援哪些服務?
不同版本、不同叢集支援的服務有所不同,詳情請參見版本概述。
EMR支援Hue服務嗎?如果不支援是否有替代方案?
EMR DataLake叢集(EMR-5.8.0和EMR-3.42.0及以上版本)不再包含Hue組件。如果您想在DataLake叢集使用Hue,請參見在DataLake叢集自建Hue組件。
EMR支援Oozie服務嗎?如果不支援是否有替代方案?
EMR DataLake叢集(EMR-5.8.0和EMR-3.42.0及以上版本)不再包含Oozie組件。如果您需要使用工作流程調度服務,可以通過EMR Workflow來實現,詳情請參見什麼是EMR Workflow。
高可用叢集為什麼部署3個Master節點?
新版EMR高可用叢集採用3 Master節點,比2 Master更具可靠性。現在已不支援2 Master節點。
對於高可用叢集,EMR會把Master節點分布在不同的底層硬體上以降低故障風險。
如何開啟磁碟加密?開啟後有什麼影響?
您可以在建立叢集頁面基礎配置階段的進階配置地區,選擇是否開啟資料盤加密,詳情請參見開啟資料盤加密。
僅支援在建立叢集時開啟資料盤加密,叢集建立後無法開啟該功能。
加密資料盤後,資料盤上的動態資料傳輸以及待用資料都會被加密。如果您的業務存在安全合規要求,則可以使用該功能。資料盤加密後在ECS的OS層面對應用是透明的,因此不會影響作業運行。
如何清理建立失敗的叢集?
叢集建立失敗,通常是由於RDS配置錯誤導致叢集部署失敗,或者是由於部分ECS沒有庫存導致的。
如果在建立過程中,叢集已經建立出來部分ECS執行個體,且叢集狀態為啟動失敗,這時需要您前往ECS控制台釋放該部分ECS執行個體,在您的ECS執行個體全部被釋放後,EMR叢集將會自動釋放。
如果在建立過程中,EMR部署失敗,且叢集狀態為異常終止,此時叢集不存在任何資源,也不存在任何收費,您可以單擊目的地組群操作列的刪除,清除該叢集。
建立叢集後,還支援新增服務嗎?
EMR支援在叢集建立成功後新增部分未安裝的服務,詳情請參見新增服務。
新增服務後,因為部分服務需要手動修改配置並進行重啟,所以請在業務低峰期進行新增服務作業。
因為各版本的服務有差異,所以具體待添加的服務請以控制台介面顯示為準。
修改服務配置後,是否需要重啟服務?
EMR叢集的Spark、Hive、HDFS等服務端類型配置修改後,需要重啟服務才會生效。EMR叢集的用戶端類型配置修改後,只需要單擊部署用戶端配置就能生效,不用重啟服務。修改或添加配置項的具體操作請參見管理配置項。
EMR的滾動重啟是什麼意思?
滾動重啟機制是指在一個ECS執行個體重啟完成且該執行個體上的巨量資料服務全部恢複後,再啟動下一個ECS執行個體。每個節點重啟耗時約5分鐘。
叢集建立後如何綁定公網IP?
您可以單獨申請EIP地址,並綁定到未分配公網IP地址的Virtual Private Cloud類型的執行個體上,使ECS執行個體可以通過公網訪問,詳情請參見綁定EIP。
什麼情境下開啟部署集?
部署集是阿里雲ECS(Elastic Compute Service)提供的能力,用於控制ECS執行個體分布的策略。建議為使用本地碟機型的Core節點群組開啟部署集功能來提升資料安全性。開啟部署集可防止多個ECS執行個體部署在同一個物理機上,避免當某個物理機發生故障時影響多個ECS執行個體,導致EMR本地HDFS資料丟失。
受ECS部署集本身的限制,目前最多支援20台ECS執行個體加入部署集。具體操作請參見開啟部署集。
擴容叢集如何指定部署集?
預設本地碟機型會開啟部署集,其他機型關閉部署集,您可以根據需要自行調整。開啟部署集的具體操作,請參見開啟部署集。
擴容叢集如何指定磁碟大小?
擴容時新節點的磁碟大小跟隨節點群組設定,無法修改。如有需要,您可以調整節點群組的磁碟大小。磁碟擴容的具體操作,請參見擴容磁碟。
是否支援磁碟的擴縮容?
僅支援資料盤擴容,不支援資料盤縮容,不支援系統硬碟擴容或縮容。
您可以在目的地組群的節點管理頁簽,單擊目標節點群組的磁碟擴容,對資料盤進行擴容。具體操作,請參見擴容磁碟。
是否支援叢集的擴縮容?
如何更換節點群組ECS執行個體的配置?
僅訂用帳戶叢集支援通過升配來更換節點群組ECS執行個體的配置,且暫不支援降配。
您可以在訂用帳戶的目的地組群的節點管理頁簽,選擇Master和Core節點群組的升級節點配置。
,升級節點群組的配置,詳情請參見擴容時報錯“The specified parameter AddNumber is not valid”,該如何處理?
問題現象:在叢集擴容中遇到報錯資訊
The specified parameter AddNumber is not valid. add instances number :xxx larger than deploymentSet availableAmount: xxx deploymentSetId: ds-uf6gwfou0a13kekupt14xxxx
。問題分析:該錯誤表示您叢集已開啟部署集功能,且節點群組的節點數已到達部署集上限,部署集詳情請參見開啟部署集。
解決方案:請聯絡ECS服務為您當前帳號提升部署集上限。
如何停止採集服務日誌?
如果您不想EMR收集您的資料,則可以關閉採集服務日誌。
關閉日誌採集後,EMR的健全狀態檢查和支援人員將受到限制,但其他功能仍可正常使用。因此請謹慎選擇。
解決方案:
關閉採集服務日誌
建立叢集時:在建立叢集的軟體設定階段,單擊允許採集服務作業記錄。
建立叢集後:在目的地組群的基礎資訊頁面的軟體資訊地區,單擊服務作業記錄收集狀態。
驗證關閉情況。
查看/usr/local/ilogtail/user_log_config.json中是否存在
namenode-log
資訊,不存在則說明服務日誌採集已關閉。說明關閉服務日誌採集後,大約需要2-3分鐘來同步該配置,請耐心等待。
服務作業記錄收集哪些資訊?
服務作業記錄收集僅包括叢集服務元件啟動並執行日誌。您可以選擇一鍵開啟或關閉所有服務日誌的採集。需要注意的是,關閉日誌採集後,叢集的健康檢測功能以及售後的支援人員都將受限。
建立叢集時預設開啟服務作業記錄收集,您可以根據需要選擇是否關閉該功能。具體操作,請參見如何停止採集服務日誌?。
哪些叢集類型支援EMR Doctor功能?
僅DataLake和Hadoop叢集類型支援健全狀態檢查功能。叢集建立後,您可以在EMR控制台目的地組群的
頁簽使用該功能。如果您的Hadoop叢集沒有此功能,則需要開通EMR Doctor,詳情請參見開通EMR Doctor(Hadoop叢集類型)。
EMR Doctor在安裝和升級過程中,是否會對叢集組件和叢集任務產生影響?
EMR Doctor在安裝和升級過程中不會重啟任何服務,本身過程也不會對您現有任務產生任何影響,並且在安裝結束後,EMR Doctor會將必要參數配置到現有叢集中,不需要您再手動進行配置。
EMR Doctor在安裝和升級過程中會對YARN、Spark、Tez和Hive服務進行配置整體下發,如果您現有的部分配置只進行了修改儲存,並沒有下發,則需要您確保下發過程不會對服務造成影響。
EMR Doctor都會採集哪些資料?
EMR Doctor不會採集您的實際資料,也不會掃描您的實際檔案和檔案內容。
EMR Doctor僅採集必要的事件數目據,例如任務啟動時間、終止時間、Metrics資料和Counters資料等。
EMR Doctor收費嗎?
當前是不收取任何費用的。
採集操作會對任務的運行會產生什麼影響?
EMR Doctor儲存中繼資料採集會根據使用者資源動態調整採集的資源,不會佔用過多使用者資源。
EMR Doctor的任務採集使用Java探針技術,不會單獨啟動Java進程監控。採集使用非同步方式,不會阻塞任務主進程,當採集造成的壓力過大時,會自動丟棄採集資料,並且您可以根據參數調整採集頻率等。
TPC-DS部分測試的資料如下表所示。
SQL及使用引擎 | 使用EMR Doctor採集時間(10次平均) | 不使用EMR Doctor採集時間(10次平均) |
query7(Spark) | 21.0s | 21.2s |
query71(Tez) | 50.8s | 49.8s |
query19(MapReduce) | 68.6s | 68.2s |
本文的TPC-DS的實現基於TPC-DS的基準測試,並不能與發行的TPC-DS基準測試結果相比較,本文中的測試並不符合TPC-DS的基準測試的所有要求。
什麼時候可以看到採集報告?
EMR Doctor自安裝和升級之後,日報功能會根據使用者啟動並執行任務以及是否採集儲存中繼資料來進行分析,所以叢集需要存在負載任務。
對於計算任務:當叢集的計算任務被收集後,第二天即可看到最新的報告,報告內容是根據前一天的叢集任務運行狀態對叢集整體進行分析後給出的叢集評估建議。
對於儲存分析:EMR Doctor預設不啟用儲存採集分析,您可以手動開啟儲存採集。開啟採集後,通常是上午10點左右進行採集,等待所有採集結束後第二天淩晨才會進行分析並產生報告。如果是當天下午才開啟採集,則需要第三天才能看到結果。
可以給出配置的具體參數值嗎?
EMR Doctor給出的建議,採用的是指向性方式。例如,建議減少記憶體配置和修改GC參數等,並沒有給出具體的參數值。因為EMR Doctor採用打點抽樣進行採集,盡量避免對您的程式造成影響,即使推薦配置也需要您進行調整,並驗證可行性。
擴容時報錯“ECS庫存不足”,該如何處理?
問題現象:擴容叢集時失敗,失敗原因顯示“ECS庫存不足_OutofStock”或“ECS庫存不足_OperationDenied.NoStock”。
問題分析:該錯誤表示您需要擴容的節點群組的ECS機型庫存不足,無法滿足您的擴容需求。
解決方案:您可以等待需要擴容的ECS機型庫存充足後再擴容,或者通過新增節點群組的方式選擇其他ECS機型對叢集進行擴容,詳情請參見新增節點群組。
建立叢集時報錯“ECS庫存不足”,該如何處理?
問題現象:建立叢集或新增節點群組時失敗,失敗原因顯示“ECS庫存不足_OutofStock”或“ECS庫存不足_OperationDenied.NoStock”。
問題分析:該錯誤表示您建立叢集或新增節點群組時選擇的ECS機型庫存不足,無法滿足需求。
解決方案:在建立叢集時選擇其他庫存充足且滿足您業務需求的ECS機型。
如何刪除不需要的服務?
目前不支援刪除叢集已有的服務。一旦服務被啟動,您將無法通過控制台或API刪除已有的服務。
如何登入叢集的節點?
E-MapReduce叢集建立後,Master節點可以使用建立叢集時設定的密碼登入,其餘節點的登入方式,請查看登入叢集其他節點。
如何查看執行個體所屬交換器?
在阿里雲EMR on ECS中,交換器資訊與節點群組緊密相關,不可在基礎資訊頁面直接查看。您可以在節點管理頁面,單擊執行個體所屬的節點群組名稱,查看該執行個體關聯的交換器資訊。
大規模叢集網路丟包如何解決?
問題現象:叢集中頻繁出現網路丟包現象,系統日誌中可能會顯示錯誤資訊,例如
neighbour: arp_cache: neighbor table overflow!
。這表明ARP(Address Resolution Protocol)緩衝表達到其容量上限,無法有效管理IP與MAC地址映射,從而導致網路效能問題。問題分析:在大規模分布式系統中,尤其是當單個叢集規模超過1000台伺服器,並且使用的是EMR-5.18.0之前或EMR-3.52.0之前(不包括這兩個版本)時,可能會遭遇網路不穩定及資料丟包的問題。為此,可以通過調整系統參數來最佳化ARP Cache的管理。
ARP Cache儲存IP地址與MAC地址的映射關係,其參數配置如下:
net.ipv4.neigh.default.gc_thresh1
:當ARP表小於該值時,不進行記憶體回收。預設值為128。net.ipv4.neigh.default.gc_thresh2
:當ARP表超出該值時,5秒內進行記憶體回收。預設值為512。net.ipv4.neigh.default.gc_thresh3
:ARP表的最大容量。預設值為1024。
說明由於預設配置較小,導致叢集規模超過1000台後,出現網路丟包和不穩定現象,因此需要調整相關配置。
解決方案:
編輯
/etc/sysctl.conf
檔案,增加以下內容以擴大ARP緩衝的容量限制及最佳化串連跟蹤最大值。net.ipv4.neigh.default.gc_thresh1 = 512 net.ipv4.neigh.default.gc_thresh2 = 2048 net.ipv4.neigh.default.gc_thresh3 = 10240 net.nf_conntrack_max = 524288
執行命令
sudo sysctl -p
,以使新的設定生效。說明如果在執行
sysctl -p
命令時遇到錯誤資訊sysctl: cannot stat /proc/sys/net/nf_conntrack_max: No such file or directory
,請首先運行命令sudo modprobe nf_conntrack
以載入相應模組,然後再嘗試使用sysctl -p
更新配置。