加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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的性能和可伸缩性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读