【问题标题】:How do I take advantage of my local resources using Spark in local mode?如何在本地模式下使用 Spark 来利用我的本地资源?
【发布时间】:2018-10-03 17:21:41
【问题描述】:

我一直在使用 Apache Spark 编写一个桌面应用程序,它可以让您以交互方式篡改数据。我最近开始阅读“Learning Spark”,作者说在local 模式下(当master 设置为local)Spark 只使用一个Thread

如果我的计算机上没有成熟的 Spark 集群,如何利用计算机中的所有内核?

我正在使用 Java / Kotlin。

【问题讨论】:

    标签: java apache-spark kotlin bigdata cluster-computing


    【解决方案1】:

    默认为一个,但你可以指定你想要的数量:

     val config = SparkConfig()
     config.setMaster("local[8]") // local, using 8 threads (you can vary the number)
     config.setAppName("qwerty")
     val context = SparkContext(config)
    

    【讨论】:

    • 这很酷。每个核心推荐多少个?这是否意味着只需添加更多的 Spark 线程,我的程序就会自动变得更快,而无需接触代码?
    • 我一直使用 1/1(8 核机器,我将其设置为 8 spark“核心”),但我不记得有什么具体的原因来说明我这样做的原因。如果您以前只使用一个,我认为您至少会看到性能有所提升;多少可能取决于用例。
    • @AdamArold 这是否意味着只需添加更多的 Spark 线程,我的程序就会自动变得更快而无需接触代码 - not really。一般来说(取决于数据、代码和整体配置)它会越来越慢:)
    • 我明白了。我只是在我的Datasets 上进行基于行的转换,比如replacetoLowerCase,诸如此类。我是否需要修改我的代码才能获得加速?
    • 更新:我刚刚使用248 对其进行了测试,但与简单的local 选项相比,它实际上速度变慢了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2014-02-11
    相关资源
    最近更新 更多