我正在进行一项实验,该实验评估在不同数据集HDFS文件格式(例如AVRO,CSV,ORC和Parquet)以及不同数据集架构上运行不同Spark-SQl查询的性能。
我可以使用以下命令获取每个SQL查询的运行时间:
Spark.time()函数,我的问题是如何计算CPU和运行每个Spark SQl查询的内存消耗。
我已将所有SQL查询放在一个单独的文件中,并将它们调用到Spark.time()函数中,但是我不知道如何使它作为独立的Spark计算每个查询的CPU和RAM指标工作?
以下是针对一个模式“属性表”的示例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())
我在Spark的指标监控方面不是那么专业,所以在这种情况下,您对我有何建议?
使用Spark监视工具的任何优秀教程,因为我找不到能很好地描述如何使用Ganglia的优秀教程?!
抱歉,如果ti是!