hadoop - 从 Spark 作业创建 FS 的快照

标签 hadoop apache-spark hdfs java

我想在运行 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/

相关文章:

java - Gradle:编译spark-scala程序时出现java.lang.StackOverflowError

java - 无法使用本地 hadoop 连接 azure blob 存储

hadoop - distcp没有执行

hadoop - 在小型HDFS文件上长时间运行的 map task

hadoop - Hortonworks沙盒是否在LinuxVM上安装?

hadoop - 如何在不重新启动Hadoop服务的情况下清除 “Reserved Space for Replicas”

bash - HDFS 上的 Snappy 压缩文件没有扩展名且不可读

hadoop - 当 UDF 使用一些外部资源文件但在 native 运行时,为什么 Hive 会出现 FileNotFoundException 错误?

amazon-web-services - 从 s3a 读取文件以及 AWS Athena SDK (1.11+)

apache-spark - pyspark ml 推荐 - Als 推荐