第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

通過 REST 提交 EMR Yarn 應(yīng)用程序

通過 REST 提交 EMR Yarn 應(yīng)用程序

森林海 2022-06-04 16:11:28
我在 AWS 中有一個(gè)帶有 YARN 的 Hadoop 集群,我向其提交了 Spark 應(yīng)用程序。我通過 REST 請求工作,提交本文檔中指定的 XML:YARN REST API。它適用于常規(guī)集群。我目前正在做一個(gè) POC 來使用 EMR 集群而不是通常的 POC,我使用現(xiàn)有的 REST 命令并簡單地通過 SSH 與 EMR 的內(nèi)部 YARN 通信,如下所示:內(nèi)部 EMR 服務(wù)的 Web 訪問。它適用于大多數(shù) REST 命令,例如POST http://<rm http address:port>/ws/v1/cluster/apps/new-application,但是當(dāng)我提交一個(gè)新應(yīng)用程序時(shí),它立即失敗并報(bào)告它找不到 ApplicationMaster。日志類型:stderr日志上傳時(shí)間:2019年2月3日星期日17:18:35 +0000日志長度:88錯(cuò)誤:無法找到或加載主類 org.apache.spark.deploy.yarn.ApplicationMaster我懷疑這以某種方式連接到類路徑,當(dāng)我將類路徑標(biāo)志添加到 REST 提交應(yīng)用程序節(jié)點(diǎn)時(shí),帶有所有 jar 的 EMR FS 位置(/usr/lib/spark/jars/*),它找到了 ApplicationMaster 但然后無法在核心實(shí)例中找到 Jars,并帶有以下奇怪的錯(cuò)誤日志:日志類型:stderr日志上傳時(shí)間:2019年1月31日星期四15:11:21 +0000日志長度:89錯(cuò)誤:無法找到或加載主類 .usr.lib.spark.jars.datanucleus-core-3.2.10.jar最不尋常的是它試圖描述它找不到的 jar 的方式,而不是類。經(jīng)過進(jìn)一步調(diào)查,我找到了原因:當(dāng)Java命令發(fā)送到Core實(shí)例時(shí),它將類路徑解析為它的三個(gè)文件:java -server -classpath /usr/lib/spark/jars/datanucleus-api-jdo-3.2.6.jar /usr/lib/spark/jars/datanucleus-core-3.2.10.jar /usr/lib/spark/jars/datanucleus-rdbms-3.2.9.jar ...因此嘗試執(zhí)行“/usr/lib/spark/jars/datanucleus-core-3.2. 10.jar”就好像它是一個(gè)可運(yùn)行的。問題是,如果我嘗試將類路徑更改為更具體,或者如果我嘗試刪除它,應(yīng)用程序會因?yàn)檎也坏?ApplicationMaster 而再次失敗。
查看完整描述

1 回答

?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊

經(jīng)過長時(shí)間的搜索,我發(fā)現(xiàn)應(yīng)用程序無法加載類org.apache.spark.deploy.yarn.ApplicationMaster的原因是因?yàn)檫@不是ApplicationMasterEMR 核心實(shí)例使用的版本 - 它使用org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster,這需要CLASSPATH輸入中的段包含/usr/lib/hadoop-yarn/*。我更改了 REST 請求的輸入 XML 中的兩個(gè)參數(shù),它成功啟動(dòng)。我仍然需要CLASSPATH為 EMR 實(shí)現(xiàn)配置正確的配置以使應(yīng)用程序成功完成,但這個(gè)問題的主要挑戰(zhàn)已經(jīng)解決。


更新:最終我決定向 EMR 添加一個(gè)步驟并使用參數(shù)實(shí)際上是一種更簡單的方法來處理它。我在 Maven 依賴項(xiàng)中添加了 EMR AWS Java SDK:


<dependency>

    <groupId>com.amazonaws</groupId>

    <artifactId>aws-java-sdk-emr</artifactId>

    <version>1.11.486</version>

</dependency>

并添加了以下代碼:


AddJobFlowStepsResult result = emr.addJobFlowSteps(new AddJobFlowStepsRequest()

            .withJobFlowId(clusterId)

            .withSteps(new StepConfig()

                    .withName(name)

                    .withActionOnFailure(ActionOnFailure.CONTINUE)

                    .withHadoopJarStep(new HadoopJarStepConfig()

                            .withJar("command-runner.jar")

                            .withArgs(stepargs))));

stepargs 取自我的原始 REST 請求,包括要使用的 jar 和文件 - 只需使用 spark-submit:


List<String> stepargs = new ArrayList<String>();

stepargs.add("spark-submit");

stepargs.add("--class");

stepargs.add(mainClass);

stepargs.add("--deploy-mode");

stepargs.add("cluster");

stepargs.add("--master");

stepargs.add("yarn");

stepargs.add("--files");

stepargs.add(files);

stepargs.add("--jars");

stepargs.add(jars);

stepargs.add("--properties-file");

stepargs.add(confFileName);

stepargs.add(jar);

Iterator<String> itr = args.iterator();

while (itr.hasNext()) {

    String arg = itr.next();

    if (arg.equals("--arg")) {

        stepargs.add(itr.next());

    }

}


查看完整回答
反對 回復(fù) 2022-06-04
  • 1 回答
  • 0 關(guān)注
  • 78 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號