我确实对火花有疑问:HDFS块vs集群核心vs rdd分区。
假设我正在尝试在HDFS中处理文件(例如,块大小为64 MB,文件为6400 MB)。因此,理想情况下,它确实可以进行100次分割。
我的集群总共有200个核心,我提交了包含25个执行器的作业,每个执行器具有4个核心(意味着可以运行100个并行任务)。
简而言之,我在rdd中默认有100个分区,并且将运行100个内核。
这是一个好方法吗,还是应该将数据重新分区到200个分区并使用集群中的所有内核?
答案 0 :(得分:0)
由于总共有200个核心,因此根据所运行的工作负载的种类来使用它们可以提高性能。
将您的Spark应用程序配置为使用50个执行程序(即,Spark可以使用所有200个内核)。还将您的火花分割大小从64 MB更改为32 MB。这样可以确保将6400 MB的文件划分为200个RDD分区,以便可以使用您的整个群集。
请勿使用重新分区-由于涉及随机播放,因此速度会很慢。