我有一個用Java撰寫的Spark應用程式,并通過AWS EMR執行它。我想在我的Java代碼中獲得EMR集群的ID。我試著用了以下方法:
但是它回傳 uj5u.com熱心網友回復: 你可以讀取和決議EMR服務器本地檔案系統中的JSON檔案 屬性 一個基本的實作(缺少錯誤處理)可以是這樣的: 一個基本的實作(缺少錯誤處理)可以是這樣的:
標籤: 上一篇:如何解決從S3讀取時的火花錯誤
String emrClusterID=System of the EMR Cluster = System of EMR.
String emrClusterID = System.getenv("EMR_CLUSTER_ID");null集群ID。我不想使用EMR APIs來獲得正在運行的集群串列,然后從那里獲得ID,因為我不知道代碼中的集群名稱是什么,而且在運行狀態下可能有多個具有相同名稱的集群。所以,我怎樣才能從Spark Java應用程式的代碼中獲得正在運行的集群的ID?
/mnt/var/lib/info/job-flow.json。
jobFlowId是集群ID。import java.io.File。
import java.util.Map;
import com.speedxml.jackson.databind.ObjectMapper;
public class EmrInfo {
static final File EMR_JOB_FLOW = new File("/mnt/var/lib/info/job-flow. json")。)
public static String getEmrId() {
ObjectMapper mapper = new ObjectMapper() 。
Map<?, ?> map = mapper.readValue(EMR_JOB_FLOW, Map.class);
return map.getOrDefault("jobFlowId"/span>, "UNKNOWN_ID"/span>)。
}
}
