我面临一个奇怪的问题,并且已经坚持了一段时间。
基本上在我的spark应用程序中,我有一个方法,可以在MapR fs中创建一个文件,然后在该文件中保存一些内容。
方法如下:
def collector(value: String): Unit = {
val conf = new Configuration()
val fs= FileSystem.get(conf)
val path = getConfig("path")
Try {fs.create(new Path(path + s"${scala.util.Random.alphanumeric take 10 mkString}" +
Calendar.getInstance.getTimeInMillis))
.write(value.getBytes);
fs.close()}.getOrElse(logger.warn("File not saved"))
}
此方法是从其他对象调用的。当我使用--master local [*]运行该文件时,将在FS中的特定位置创建该文件,并使用 value 传递的字符串。但是,当我在群集(--master yarn)上运行它时,只会保存空文件。当我打印 value 时,它会打印字符串。但是由于某种原因,不能将其保存在文件中。
我想知道是否有人知道为什么吗?
谢谢