Остановите spark-submit в режиме кластера, чтобы выводить сообщение не менее секунды;но держать информативные сообщения? - PullRequest
0 голосов
/ 25 января 2019

Когда я отправляю искровое задание в удаленный кластер из среды планирования, я иногда хотел бы пропустить вывод через uniq, игнорируя отметку времени.Или настройте свойства ведения журнала, чтобы перестать давать мне одно и то же сообщение о состоянии каждую секунду.Для 37-часовой работы это сотни мегабайт неинформативных сообщений журнала.Среда планирования хранит выходные данные консоли ... и это единственный способ, которым я могу диагностировать проблемы, если они возникают, но он тонет в шуме.

Вот пример запуска, после некоторых сообщений планировщика (я добавил ⛔️впереди дубликатов):

[2019-01-23 02:23:30,457] {bash_operator.py:110} INFO - 19/01/23 02:23:30 INFO Client: Uploading resource s3://catsci/jars/xgboost4j-spark-0.81-SNAPSHOT-jar-with-dependencies.jar -> hdfs://10.x.y.z:8020/user/username/.sparkStaging/application_1548209941936_0001/xgboost4j-spark-0.81-SNAPSHOT-jar-with-dependencies.jar
[2019-01-23 02:23:30,478] {bash_operator.py:110} INFO - 19/01/23 02:23:30 INFO S3NativeFileSystem: Opening 's3://catsci/jars/xgboost4j-spark-0.81-SNAPSHOT-jar-with-dependencies.jar' for reading
[2019-01-23 02:23:31,286] {bash_operator.py:110} INFO - 19/01/23 02:23:31 INFO Client: Uploading resource file:/tmp/spark-e2af8e62-4107-4615-9b86-66ee1d240ba1/__spark_conf__5911937767614991409.zip -> hdfs://10.x.y.z:8020/user/username/.sparkStaging/application_1548209941936_0001/__spark_conf__.zip
[2019-01-23 02:23:31,443] {bash_operator.py:110} INFO - 19/01/23 02:23:31 INFO SecurityManager: Changing view acls to: scouping,username
[2019-01-23 02:23:31,443] {bash_operator.py:110} INFO - 19/01/23 02:23:31 INFO SecurityManager: Changing modify acls to: scouping,username
[2019-01-23 02:23:31,444] {bash_operator.py:110} INFO - 19/01/23 02:23:31 INFO SecurityManager: Changing view acls groups to:
[2019-01-23 02:23:31,445] {bash_operator.py:110} INFO - 19/01/23 02:23:31 INFO SecurityManager: Changing modify acls groups to:
[2019-01-23 02:23:31,446] {bash_operator.py:110} INFO - 19/01/23 02:23:31 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users  with view permissions: Set(scouping, username); groups with view permissions: Set(); users  with modify permissions: Set(scouping, username); groups with modify permissions: Set()
[2019-01-23 02:23:31,476] {bash_operator.py:110} INFO - 19/01/23 02:23:31 INFO Client: Submitting application application_1548209941936_0001 to ResourceManager
[2019-01-23 02:23:31,835] {bash_operator.py:110} INFO - 19/01/23 02:23:31 INFO YarnClientImpl: Submitted application application_1548209941936_0001
[2019-01-23 02:23:32,840] {bash_operator.py:110} INFO - 19/01/23 02:23:32 INFO Client: Application report for application_1548209941936_0001 (state: ACCEPTED)
[2019-01-23 02:23:32,843] {bash_operator.py:110} INFO - 19/01/23 02:23:32 INFO Client:
[2019-01-23 02:23:32,844] {bash_operator.py:110} INFO -      client token: N/A
[2019-01-23 02:23:32,844] {bash_operator.py:110} INFO -      diagnostics: AM container is launched, waiting for AM container to Register with RM
[2019-01-23 02:23:32,844] {bash_operator.py:110} INFO -      ApplicationMaster host: N/A
[2019-01-23 02:23:32,844] {bash_operator.py:110} INFO -      ApplicationMaster RPC port: -1
[2019-01-23 02:23:32,844] {bash_operator.py:110} INFO -      queue: root.default
[2019-01-23 02:23:32,844] {bash_operator.py:110} INFO -      start time: 1548210211570
[2019-01-23 02:23:32,844] {bash_operator.py:110} INFO -      final status: UNDEFINED
[2019-01-23 02:23:32,844] {bash_operator.py:110} INFO -      tracking URL: http://ip-10-x-y-z.ap-northeast-2.compute.internal:20888/proxy/application_1548209941936_0001/
[2019-01-23 02:23:32,844] {bash_operator.py:110} INFO -      user: username
[2019-01-23 02:23:33,847] {bash_operator.py:110} INFO - 19/01/23 02:23:33 INFO Client: Application report for application_1548209941936_0001 (state: ACCEPTED)
⛔️[2019-01-23 02:23:34,850] {bash_operator.py:110} INFO - 19/01/23 02:23:34 INFO Client: Application report for application_1548209941936_0001 (state: ACCEPTED)
⛔️[2019-01-23 02:23:35,853] {bash_operator.py:110} INFO - 19/01/23 02:23:35 INFO Client: Application report for application_1548209941936_0001 (state: ACCEPTED)
⛔️[2019-01-23 02:23:36,856] {bash_operator.py:110} INFO - 19/01/23 02:23:36 INFO Client: Application report for application_1548209941936_0001 (state: ACCEPTED)
⛔️[2019-01-23 02:23:37,859] {bash_operator.py:110} INFO - 19/01/23 02:23:37 INFO Client: Application report for application_1548209941936_0001 (state: ACCEPTED)
⛔️[2019-01-23 02:23:38,863] {bash_operator.py:110} INFO - 19/01/23 02:23:38 INFO Client: Application report for application_1548209941936_0001 (state: ACCEPTED)
⛔️[2019-01-23 02:23:39,866] {bash_operator.py:110} INFO - 19/01/23 02:23:39 INFO Client: Application report for application_1548209941936_0001 (state: ACCEPTED)
[2019-01-23 02:23:40,869] {bash_operator.py:110} INFO - 19/01/23 02:23:40 INFO Client: Application report for application_1548209941936_0001 (state: RUNNING)
[2019-01-23 02:23:40,869] {bash_operator.py:110} INFO - 19/01/23 02:23:40 INFO Client:
[2019-01-23 02:23:40,869] {bash_operator.py:110} INFO -      client token: N/A
[2019-01-23 02:23:40,869] {bash_operator.py:110} INFO -      diagnostics: N/A
[2019-01-23 02:23:40,870] {bash_operator.py:110} INFO -      ApplicationMaster host: 10.210.221.90
[2019-01-23 02:23:40,870] {bash_operator.py:110} INFO -      ApplicationMaster RPC port: 0
[2019-01-23 02:23:40,870] {bash_operator.py:110} INFO -      queue: root.default
[2019-01-23 02:23:40,870] {bash_operator.py:110} INFO -      start time: 1548210211570
[2019-01-23 02:23:40,870] {bash_operator.py:110} INFO -      final status: UNDEFINED
[2019-01-23 02:23:40,870] {bash_operator.py:110} INFO -      tracking URL: http://ip-10-x-y-z.ap-northeast-2.compute.internal:20888/proxy/application_1548209941936_0001/
[2019-01-23 02:23:40,870] {bash_operator.py:110} INFO -      user: username
[2019-01-23 02:23:41,872] {bash_operator.py:110} INFO - 19/01/23 02:23:41 INFO Client: Application report for application_1548209941936_0001 (state: RUNNING)
⛔️[2019-01-23 02:23:42,875] {bash_operator.py:110} INFO - 19/01/23 02:23:42 INFO Client: Application report for application_1548209941936_0001 (state: RUNNING)
⛔️[2019-01-23 02:23:43,878] {bash_operator.py:110} INFO - 19/01/23 02:23:43 INFO Client: Application report for application_1548209941936_0001 (state: RUNNING)

Последние два сообщения повторяются, и это продолжается для мегабайт.

Как вы можете видеть, среда планирования Python регистрирует информационные сообщения консоли на выходеspark-submit, который выдает сообщения, которые я считаю бесполезными из INFO Client:.Тем не менее, другие сообщения INFO Client: полезны.

Если в сообщении spark submit могут быть уменьшены сообщения опроса статуса 1 с помощью conf, флага или установки примерно до 15 м, ИЛИ если он может отфильтровать только эти сообщения (хотя я 'Хотелось бы знать, когда задание принято, запущено, не выполнено или успешно выполнено), это было бы полезно.

Я бы предпочел не искать какой-либо способ передать вывод через какой-то uniq который каким-то образом игнорирует временную метку, но затем восстанавливает ее после.

...