首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改星火_temporary目录路径

更改星火_temporary目录路径
EN

Stack Overflow用户
提问于 2019-04-09 15:06:52
回答 1查看 2.9K关注 0票数 5

是否有可能在写入之前更改_temporary目录,其中spark保存其临时文件?

特别是,由于我正在编写表的单个分区,所以我希望临时文件夹位于分区文件夹中。

有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-04 10:54:05

由于其实现,无法使用默认的${mapred.output.dir}/_temporary,因此FileOutputCommiter将创建一个写入文件的FileOutputCommiter子目录,并在提交后将文件移到${mapred.output.dir}.。

最后,删除了整个临时文件夹。当两个或多个星火作业具有相同的输出目录时,文件的相互删除将不可避免。

最后,我下载了org.apache.hadoop.mapred.FileOutputCommitterorg.apache.hadoop.mapreduce.lib.output.FileOutputCommitter (您可以将其命名为YourFileOutputCommitter) ),YourFileOutputCommitter)做了一些允许_temporaly重命名的更改

在您的驱动程序中,您必须添加以下代码:

代码语言:javascript
复制
val conf: JobConf = new JobConf(sc.hadoopConfiguration)
conf.setOutputCommitter(classOf[YourFileOutputCommitter])


// update temporary path for committer 
YourFileOutputCommitter.tempPath = "_tempJob1"

注意:最好使用MultipleTextOutputFormat重命名文件,因为两个写入相同位置的作业可以相互覆盖。

更新

我在我们的科技博客上写了一篇短文,它有更多的细节https://www.outbrain.com/techblog/2020/03/how-you-can-set-many-spark-jobs-write-to-the-same-path/

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55595930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档