在实时集成作业中,作业启动失败报错信息包含关键字“Parse generate hadoop config response failed”怎么办?
问题描述
在实时集成任务中,用户启动作业失败,日志显示在初始化MRS Hadoop配置文件时异常,报错信息包含关键字“Parse generate hadoop config response failed”。
报错信息样例:
2025-07-26 17:27:30,213 ERROR com.huawei.clouds.dataarts.migration.mrs.auth.utils.MrsUtils [] - Error info: download hadoop config file failed.
com.huawei.clouds.dataarts.migration.mrs.auth.exception.HadoopConfDownloadException: migration.10000200: Failed to initialize Hadoop configs, please check your Hadoop cluster status, config files and account. Error stack:
Parse generate hadoop config response failed
.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_362]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_362]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_362]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_362]
at org.apache.inlong.common.exception.DMExceptions.create(DMExceptions.java:83) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.huawei.clouds.dataarts.migration.mrs.auth.client.
HadoopConfDownloadClient.generateHadoopConfFromMrs
(HadoopConfDownloadClient.java:290) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.huawei.clouds.dataarts.migration.mrs.auth.client.HadoopConfDownloadClient.downloadHadoopConf(HadoopConfDownloadClient.java:254) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.huawei.clouds.dataarts.migration.mrs.auth.utils.MrsUtils.downloadHadoopConfigFromMrs(MrsUtils.java:231) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.huawei.clouds.dataarts.migration.mrs.auth.utils.MrsUtils.downloadConf(MrsUtils.java:216) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.huawei.clouds.dataarts.migration.mrs.auth.utils.MrsUtils.downloadConfAndLogin(MrsUtils.java:102) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.huawei.clouds.dataarts.migration.mrs.auth.utils.MrsUtils.downloadConfAndLogin(MrsUtils.java:67) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.huawei.clouds.dataarts.migration.connector.hudi.table.HoodieTableFactory.createDynamicTableSink(HoodieTableFactory.java:185) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at org.apache.flink.table.factories.FactoryUtil.createDynamicTableSink(FactoryUtil.java:304) ~[flink-table-api-java-uber-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.table.planner.delegation.PlannerBase.getTableSink(PlannerBase.scala:434) ~[flink-table-planner_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.table.planner.delegation.PlannerBase.translateToRel(PlannerBase.scala:233) ~[flink-table-planner_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.table.planner.delegation.PlannerBase.$anonfun$translate$1(PlannerBase.scala:182) ~[flink-table-planner_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.Iterator.foreach(Iterator.scala:937) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.Iterator.foreach$(Iterator.scala:937) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.AbstractIterator.foreach(Iterator.scala:1425) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.IterableLike.foreach(IterableLike.scala:70) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.IterableLike.foreach$(IterableLike.scala:69) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.AbstractIterable.foreach(Iterable.scala:54) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.TraversableLike.map(TraversableLike.scala:233) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.TraversableLike.map$(TraversableLike.scala:226) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at scala.collection.AbstractTraversable.map(Traversable.scala:104) ~[flink-scala_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.table.planner.delegation.PlannerBase.translate(PlannerBase.scala:182) ~[flink-table-planner_2.12-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.table.api.internal.TableEnvironmentImpl.translate(TableEnvironmentImpl.java:1678) ~[flink-table-api-java-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:785) ~[flink-table-api-java-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.table.api.internal.StatementSetImpl.execute(StatementSetImpl.java:108) ~[flink-table-api-java-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.inlong.sort.parser.result.FlinkSqlParseResult.executeLoadSqls(FlinkSqlParseResult.java:83) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at org.apache.inlong.sort.parser.result.FlinkSqlParseResult.execute(FlinkSqlParseResult.java:62) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.huawei.clouds.dataarts.migration.engine.converter.Entrance.run(Entrance.java:152) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.huawei.clouds.dataarts.migration.engine.converter.Entrance.main(Entrance.java:95) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_362]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_362]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_362]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_362]
at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:381) ~[flink-dist-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:232) ~[flink-dist-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:114) ~[flink-dist-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.runApplicationEntryPoint(ApplicationDispatcherBootstrap.java:335) ~[flink-dist-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.client.deployment.application.ApplicationDispatcherBootstrap.lambda$runApplicationAsync$2(ApplicationDispatcherBootstrap.java:263) ~[flink-dist-1.15.0-h0.cbu.dli.321.r2.jar:1.15.0-h0.cbu.dli.321.r2]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_362]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_362]
at org.apache.flink.runtime.concurrent.akka.ActorSystemScheduledExecutorAdapter$ScheduledFutureTask.run(ActorSystemScheduledExecutorAdapter.java:171) ~[flink-rpc-akka_2da96673-3ef8-4279-9483-a294fd5e9a70.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:68) ~[flink-rpc-akka_2da96673-3ef8-4279-9483-a294fd5e9a70.jar:1.15.0-h0.cbu.dli.321.r2]
at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.lambda$withContextClassLoader$0(ClassLoadingUtils.java:41) ~[flink-rpc-akka_2da96673-3ef8-4279-9483-a294fd5e9a70.jar:1.15.0-h0.cbu.dli.321.r2]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:49) [flink-rpc-akka_2da96673-3ef8-4279-9483-a294fd5e9a70.jar:1.15.0-h0.cbu.dli.321.r2]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:48) [flink-rpc-akka_2da96673-3ef8-4279-9483-a294fd5e9a70.jar:1.15.0-h0.cbu.dli.321.r2]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_362]
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_362]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:1.8.0_362]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175) [?:1.8.0_362]
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
at [Source: (String)"<!DOCTYPE html>
<html>
<head>
\u0009<base href="/web/" />
\u0009<title>FusionInsight Manager</title>
\u0009<link type="image/x-icon" href="" rel="shortcut icon">
\u0009<link href="assets/theme/default/css/style.css" rel="stylesheet" type="text/css"/>
\u0009<script src="pages/error/i18nProvider.js" type="text/javascript"></script>
\u0009<style>
\u0009</style>
</head>
<body class="d-none">
\u0009<div class="content">
\u0009\u0009<div class="siteContent">
\u0009\u0009\u0009<table class="error-table">
\u0009\u0009\u0009\u0009<tbody>
\u0009\u0009\u0009\u0009\u0009<tr>
\u0009\u0009\u0009\u0009\u0009\u0009<td class="text-center">
\u0009\u0009\u0009\u0009\u0009\u0009\u0009"[truncated 1087 chars]; line: 1, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2477) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:1.15.0-h0.cbu.dli.321.r2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:750) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:674) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:2085) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:808) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4854) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:1.15.0-h0.cbu.dli.321.r2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3219) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:1.15.0-h0.cbu.dli.321.r2]
at com.huawei.clouds.dataarts.migration.mrs.auth.client.HadoopConfDownloadClient.generateHadoopConfFromMrs(HadoopConfDownloadClient.java:279) ~[engine-dist-secret-1.0.0-SNAPSHOT-assembly.jar:?]
原因分析
MRS-Hudi连接账号的MRS接口权限不足。账号未达到操作Hudi所需的最小权限,直接错误表现为解析response异常,实际上是因为缺少下载MRS config文件所需的Manager权限。
解决方案
参考数据库账号要求进行MRS账号的最小化权限配置。