【发布时间】:2015-06-16 01:34:25
【问题描述】:
我正在实现一个使用 reduceByKeyAndWindow 的 Spark 作业,因此我需要添加检查点。
从 Spark 的网站我看到:
可以通过在容错、可靠的文件系统(例如 HDFS、S3 等)中设置目录来启用检查点信息,以保存检查点信息。
我的应用程序仅用于学术目的,因此我不想为检查点设置 HDFS,而只想设置一个本地文件。在 MacOS 中这样做可以正常工作(将临时目录设置为检查点目录),在 Windows 中这样做时会出现问题,这会引发权限异常。
我已经尝试以管理员身份启动 eclipse 并手动创建目录,将 setWritable、setReadable 和 setExecutable 设置为 true。有关如何克服 Windows 中的问题的任何提示?
谢谢!
更新这是我的代码和异常。再次澄清一下,它在 Mac 中可以正常工作,但在 Windows 中却不行。
SparkConf conf = new SparkConf().setAppName("testApp").setMaster("local[2]");
JavaSparkContext ctx = new JavaSparkContext(conf);
JavaStreamingContext jsc = new JavaStreamingContext(ctx, new Duration(1000));
jsc.checkpoint(Files.createTempDir().getAbsolutePath());
例外:
Exception in thread "pool-7-thread-3" java.lang.NullPointerException
at java.lang.ProcessBuilder.start(Unknown Source)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:404)
at org.apache.hadoop.util.Shell.run(Shell.java:379)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:589)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:678)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:661)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:639)
at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:468)
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:456)
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:424)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:905)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:886)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:783)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:772)
at org.apache.spark.streaming.CheckpointWriter$CheckpointWriteHandler.run(Checkpoint.scala:135)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
【问题讨论】:
-
你到底得到了什么异常?你能告诉我们你的代码吗?
-
更新了代码+异常堆栈跟踪
-
为什么要启用检查点?
-
reduceByKeyAndWindow等有状态操作需要它
-
嗨@sergi123,我目前遇到了同样的错误。我正在使用 Mac 和独立版本的 spark。如果您能帮助我解决此错误或指出我可以使用的一些资源,我会很高兴。谢谢!
标签: apache-spark hdfs spark-streaming