首页 文章

Spark Executors RAM和文件大小

提问于
浏览
0

我正在使用WholeTextFiles方法读取大小为8.2 GB的文本文件(文件夹中的所有文件) .

读取文件的工作有3个 Actuator ,每个 Actuator 有4个内核和4GB内存,如图所示 .

虽然作业页面显示了3个执行程序,但只有2个执行程序正在处理数据 . (我可以理解,从stderr日志中可以打印它正在读取的文件) . 第三执行者没有任何跟踪它正在处理文件 .

wholetextfile API有2个分区..

2个 Actuator 每个共有4GB内存,总共8GB内存 . 但我的文件有8.2GB .

Can anyone explain how the 2 executors with 8GB ram in total are having 8.2GB files?

我的工作已经完成了 .

enter image description here

2 回答

  • 0

    在函数WholeTextFiles的spark文档中:每个文件作为单个记录读取并返回一个键值对,其中键是每个文件的路径,值是每个文件的内容 .

    因此RDD记录是整个文件内容,num分区等于文件数 . 要拥有多个分区,可以使用函数textFile

  • 0

    每个执行程序都有内存开销[占分配内存的10%或最小为384 M] .

    您可以从YARN正在运行的作业中查看实际分配的内存 .

    此外,还有一种称为容器内存[最小和最大限制]分配的东西 .

相关问题