Я работаю над экспериментом, который оценивает производительность выполнения разных запросов Spark-SQl поверх разных форматов файлов HDFS набора данных, таких как AVRO, CSV, ORC и Parquet, и для разных схем набора данных.
У меня может быть время выполнения каждого SQL-запроса с использованием:
функции Spark.time (), мой вопрос заключается в том, как рассчитать ЦП и потребление памяти для выполнения каждого запроса Spark SQl.
Я поместил все SQL-запросы в отдельный файл и вызвал их в функцию Spark.time (), но я не знаю, как это сделать для расчета показателей ЦП и ОЗУ для каждого запроса какотдельная работа Spark?
Вот примеры SQL-запросов для одной схемы «Таблицы свойств»
val q1=
"""
|SELECT
|J.issued AS yr
|FROM
|Journal J
|WHERE
|J.title='Journal 1 (1940)'
""".stripMargin
val q2=
"""
|SELECT
| D.subject AS inproc,
| D.creator AS author,
| D.booktitle AS booktitle,
| D.title AS title,
| D.partOf AS proc,
| D.seeAlso AS ee,
| D.pages AS pages,
| D.homepage AS url,
| D.issued AS yr,
| D.abstract AS abstract
|
|FROM inProceedingArticle D
|ORDER BY yr
""".stripMargin
, и здесь я вызываю их для оценки времени в Spark:
spark.time(spark.sql(propertyTblsQueries.q1).show)
spark.time(spark.sql(propertyTblsQueries.q2).show())
IЯ не настолько профессионален в мониторинге метрик в Spark, так что вы порекомендуете для меня в этом случае:
- с использованием сервера истории Spark [какие метрики смотреть там].
- или используя другие инструменты мониторинга.
какие-либо хорошие учебники по использованию инструментов мониторинга Spark, потому что я не смог найти хороших руководств, которые описывают, как использовать Ganglia, например, с помощью spark в деталях?!
Извините за этот вопрос новичка, если ti!