linux -/usr/bin/time 使用 SPARK 时针对 TOP 的 CPU 利用率

标签 linux hadoop apache-spark linux-kernel apache-spark-mllib

我使用 Spark 中的 MLIB 库对大小为 8G 和 700 万行的数据运行了 SVM 算法。我在单个节点上以独立模式运行 Spark。

我使用/usr/bin/time -v 来捕获有关作业的数据。我得到了峰值内存利用率和 % CPU 时间等等。我得到的 CPU 使用率百分比仅为 6%。我在程序运行的同时监视 TOP 一段时间,我可以看到超过 100% 几乎始终如一地被使用。我现在很困惑,为什么/usr/bin/time 只显示了 6%?

更多细节 - 我的机器是 16G,我运行的程序消耗了 13.88G。程序执行时间为 2.1 小时。

任何见解,任何人?

最佳答案

我发现了问题。因此,usr/bin/time 显示的 (6%) 是总可用 CPU 的百分比(在本例中为 8 个线程),而 TOP 显示 100% 为 1 个单线程。

顺便说一句,如果它对任何人有帮助,那么只使用 1 个线程而不是全部 8 个线程的原因是我在我的 SparkContext 中提到了“local”而不是“local[*]”(sc = SparkContext(“local”, ...)。阅读更多相关信息 HERE

关于linux -/usr/bin/time 使用 SPARK 时针对 TOP 的 CPU 利用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36950068/

相关文章:

android - 将文件复制到 android( native )中的 tempfs

scala - 如何在hadoop中实现OR join(scalding/cascading)

python - 一次 Spark.read() 多条路径,而不是 for 循环中的一条一条

java - 如何将图像从HDFS加载到Spark

java - HADOOP::java.lang.ClassNotFoundException:WordCount

java.lang.RuntimeException : Error while encoding: java. lang.ArrayIndexOutOfBoundsException:1

android - 如何修复 "SDK location not found..."?

linux - 如何在 linux 使用命令上关闭 'closing' 套接字?

c - 如何将文件指针 ( FILE* fp ) 转换为文件描述符 (int fd)?

hadoop - 如何在 mapreduce 作业中获得适当大小的输入拆分