我有2个gzip文件,每个文件大小约为30GB,并编写了火花代码来分析它们。 spark集群有4个工作节点(28GB RAM和4个核心)和2个头节点(64GB RAM)。
我正在使用sc.textFile(histfile,20)
来读取这两个gzip文件并将它们并行化。这项工作分为3个阶段 - reduceByKey
,reduceByKey
和saveAsTextFile
。由于有2个文件,截至目前只有2名工人正在使用。
花了4个多小时,第1阶段还没完成。 当每个gzip文件的大小为100GB-200GB时,运行spark作业的正确方法是什么。
答案 0 :(得分:3)
gzip文件不是可拼写的,因此你的第一个阶段会产生两个map任务,第一个阶段需要花费很多时间才能通过。
请在第二阶段之前重新分配,以便进行良好的分发以减少任务。