我想在运行 spark 作业时创建底层 HDFS 的快照。特定步骤涉及删除某些 Parquet 文件的内容。我想创建快照执行删除操作,验证操作结果并继续执行后续步骤。
但是,我找不到从我的 spark 作业访问 HDFS API 的好方法。我要创建快照的目录在 HDFS 中被标记/标记为可快照。创建快照的命令行方法有效,但是我需要以编程方式执行此操作。
我在 CDH 5.5 上运行 Spark 1.5。
关于如何执行此操作的任何提示线索?
谢谢
内存开发
最佳答案
我还没有验证这一点,但至少我没有遇到编译错误,理论上这个解决方案应该有效。
这是 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")
}
我认为这在理论上可行。
关于hadoop - 从 Spark 作业创建 FS 的快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36272272/