从spark job创建fs的快照

siotufzp  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(470)

我想在运行spark作业时创建底层hdfs的快照。具体步骤包括删除一些Parquet文件的内容。我想创建一个快照执行删除操作,验证操作结果并继续执行下一步。
然而,我找不到一个好的方法从我的spark工作访问hdfsapi。我要创建快照的目录在hdfs中被标记为snapshotable。创建快照的命令行方法是可行的,但是我需要以编程的方式来实现这一点。
我正在CDH5.5上运行spark 1.5。
有什么关于我如何做这个手术的线索吗?
谢谢
拉姆德夫

ldxq2e6h

ldxq2e6h1#

我还没有验证这一点,但至少我没有得到编译错误和理论上这个解决方案应该工作。
这是scala代码:

val sc = new SparkContext();
val fs = FileSystem.get(sc.hadoopConfig)
val snapshotPath = fs.createSnapshot("path to createsnapshot of","snapshot name")

.....
.....
if (condition satisfied) {
  fs.deleteSnapshot(snapshotPath,"snapshot name")
}

我想这在理论上是可行的。

相关问题