《Scala机器学习》一一3.5 Spark的性能调整
本节书摘来自华章计算机《Scala机器学习》一书中的第3章,第3.5节,作者:[美] 亚历克斯·科兹洛夫(Alex Kozlov),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.5 Spark的性能调整
虽然数据管道的高效执行是任务调度器优先考虑的,这是Spark驱动的一部分,有时Spark需要人为给出一些提示。Spark调度主要与两个参数有关:CPU和内存。当然其他资源(如磁盘和网络I/O)也在Spark性能方面发挥重要作用,但目前Spark、Mesos或YARN都不能主动管理它们。
要监控的第一个参数是RDD的分区数,可以从文件中读取RDD时明确指定。常见的Spark错误是分区太多,这样做需要提供更多的并行性。当任务开始/结束时间相对较小的情况下,这样做也可以工作。但是建议减少分区数,特别是在有聚合的情况时。
每个RDD