作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
Spark rdd.saveAsHadoopFile 非常浪费,因为它会在每次写入时生成一个新的 SparkHadoopWriter。我们有一个用例,其中备份 Spark 作业仅仅是因为这些 Writer 上的 gc 跟不上传入流。
是否有人重新实现了此方法,其中 SparkHadoopWriter 根据写入目标是哪个存储桶进行重用。如果我朝那个方向前进,是否有任何架构原因导致努力失败?
最佳答案
RDD.saveAsHadoopFile
在执行器上执行,如果我们想重用 SparkHadoopWriter
的实例,那么我们可能需要每次执行序列化和反序列化作业由执行者执行。
尽管在架构上您可以重写 Spark-Core 代码或者可以扩展 RDD
和 PairRDDFunctions
并添加用于序列化/反序列化的代码并重用 SparkHadoopWriter
但在我看来,这可能会增加更多开销,因为您需要序列化或反序列化。
虽然不确定您的用例,但通常(尽管有异常(exception))最好有没有序列化的独立代码单元(除非需要),以便它创建对象并在作业完成后立即销毁对象。尽管如果需要,我们可以调整 JVM 来处理对象创建/删除。
关于hadoop - 在 rdd.saveAsHadoopFile 中重用 SparkHadoopWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34890206/
Spark rdd.saveAsHadoopFile 非常浪费,因为它会在每次写入时生成一个新的 SparkHadoopWriter。我们有一个用例,其中备份 Spark 作业仅仅是因为这些 Writ
我是一名优秀的程序员,十分优秀!