scala – SparkPi运行速度超过1个切片
发布时间:2020-12-16 08:43:42 所属栏目:安全 来源:网络整理
导读:相对较新的spark并尝试在独立的12核三机群上运行SparkPi示例.我无法理解的是,与使用12个切片相比,使用单个切片运行此示例可以提供更好的性能.我使用并行化功能的情况也是如此.通过添加每个切片,时间几乎是线性缩放.如果我做错了,请告诉我.代码段如下: val s
相对较新的spark并尝试在独立的12核三机群上运行SparkPi示例.我无法理解的是,与使用12个切片相比,使用单个切片运行此示例可以提供更好的性能.我使用并行化功能的情况也是如此.通过添加每个切片,时间几乎是线性缩放.如果我做错了,请告诉我.代码段如下:
val spark = new SparkContext("spark://telecom:7077","SparkPi",System.getenv("SPARK_HOME"),List("target/scala-2.10/sparkpii_2.10-1.0.jar")) val slices = 1 val n = 10000000 * slices val count = spark.parallelize(1 to n,slices).map { i => val x = random * 2 - 1 val y = random * 2 - 1 if (x * x + y * y < 1) 1 else 0 }.reduce(_ + _) println("Pi is roughly " + 4.0 * count / n) spark.stop() 更新:问题在于随机函数,因为它是一个同步方法,它无法扩展到多个核心. 解决方法
sparkpi示例中使用的随机函数是同步方法,无法扩展到多个核心.这是一个足够简单的示例,可以在您的群集上进行部署,但不要使用它来检查Spark的性能和可伸缩性.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |