如何在Spark on Mesos上修复"Protomuf中的协议消息,因为它太大了"?

Aks*_*gue 6 scala protocol-buffers mesos apache-spark

我通过Scala代码运行Spark 1.5.1并调用ALS训练方法(mllib).我的代码使用MESOS执行程序.由于数据很大,我收到以下错误:

15/11/03 12:53:45 INFO TaskSetManager:在阶段0.0中启动任务7.0(TID 7,PROCESS_LOCAL,128730328字节)[libprotobuf错误google/protobuf/io/coded_stream.cc:171]协议消息被拒绝,因为它太大了(超过67108864字节).要增加限制(或禁用这些警告),请参阅google/protobuf/io/coded_stream.h中的CodedInputStream :: SetTotalBytesLimit().

有关如何增加限制的任何想法?

Abh*_*and 1

听起来你已经达到了“spark.kryoserializer.buffer.max”的限制。检查 protobuf 是否使用 kryo 序列化器。如果是,则需要推动“spark.kryoserializer.buffer.max”的限制,该限制最多可设置为2047m。

http://spark.apache.org/docs/1.5.1/configuration.html