Я экспериментирую с запуском Spark в режиме кластера пряжи (v2.3.0).Мы традиционно работали в режиме клиента пряжи, но некоторые задания отправляются из веб-служб .NET, поэтому мы должны поддерживать хост-процесс в фоновом режиме при использовании режима клиента (HostingEnvironment.QueueBackgroundWorkTime...
).Мы надеемся, что сможем выполнить эти задания в стиле «запускай и забывай».
Наши работы продолжают успешно выполняться, но мы видим любопытную запись в журналах, где клиент пряжи, который передает работу вДиспетчер приложений всегда сообщает об ошибке:
18/11/29 16:54:35 INFO yarn.Client: Application report for application_1539978346138_110818 (state: RUNNING)
18/11/29 16:54:36 INFO yarn.Client: Application report for application_1539978346138_110818 (state: RUNNING)
18/11/29 16:54:37 INFO yarn.Client: Application report for application_1539978346138_110818 (state: FINISHED)
18/11/29 16:54:37 INFO yarn.Client:
client token: Token { kind: YARN_CLIENT_TOKEN, service: }
diagnostics: N/A
ApplicationMaster host: <ip address>
ApplicationMaster RPC port: 0
queue: root.default
start time: 1543510402372
final status: FAILED
tracking URL: http://server.host.com:8088/proxy/application_1539978346138_110818/
user: p800s1
Exception in thread "main" org.apache.spark.SparkException: Application application_1539978346138_110818 finished with failed status
at org.apache.spark.deploy.yarn.Client.run(Client.scala:1153)
at org.apache.spark.deploy.yarn.YarnClusterApplication.start(Client.scala:1568)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:892)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:197)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:227)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:136)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
18/11/29 16:54:37 INFO util.ShutdownHookManager: Shutdown hook called
Мы всегда создаем SparkSession и всегда возвращаем sys.exit(0)
(хотя это, похоже, игнорируется средой Spark независимо от того, как мы отправляем задание).У нас также есть собственный журнал внутренних ошибок, который ведет к Kafka / ElasticSearch.Об ошибках не сообщается во время выполнения задания.
Вот пример команды submit: spark2-submit --keytab /etc/keytabs/p800s1.ktf --principal p800s1@OURDOMAIN.COM --master yarn --deploy-mode cluster --driver-memory 2g --executor-memory 4g --class com.path.to.MainClass /path/to/UberJar.jar arg1 arg2
Кажется, что это безвредный шум, но я не люблю шум, который мне не нуженТ понять.Кто-нибудь испытывал нечто подобное?