Spark Streaming:如何干净地重新启动在hdfs上运行的spark流式传输作业

时间:2017-01-14 21:47:16

标签: hadoop apache-spark spark-streaming yarn hadoop2

我们有一个火花流工作,它从在4节点集群上运行的kafka读取数据,该集群使用HDFS上的检查点目录....我们有一个I / O错误,我们用尽了空间,我们不得不去在和删除一些hdfs文件夹以释放一些空间,现在我们已经安装了更大的磁盘....并且想要干净地重新启动,不需要保留检查点数据或kafka偏移 .....错误..

 Application application_1482342493553_0077 failed 2 times due to AM Container for appattempt_1482342493553_0077_000002 exited with  exitCode: -1000
For more detailed output, check application tracking page:http://hdfs-name-node:8088/cluster/app/application_1482342493553_0077Then, click on links to logs of each attempt.
Diagnostics: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-1266542908-96.118.179.119-1479844615420:blk_1073795938_55173 file=/user/hadoopuser/streaming_2.10-1.0.0-SNAPSHOT.jar
Failing this attempt. Failing the application.
         ApplicationMaster host: N/A
         ApplicationMaster RPC port: -1
         queue: default
         start time: 1484420770001
         final status: FAILED
         tracking URL: http://hdfs-name-node:8088/cluster/app/application_1482342493553_0077
         user: hadoopuser

从错误中我可以看出它还在寻找我们删除的旧hdfs块...

从研究中发现.. 更改检查点目录将有助于尝试更改它并指向新目录 ......但它仍无法帮助重新启动清单上的spark。 .it仍然提供相同的块异常......在进行配置更改时我们是否遗漏了任何内容?我们怎样才能确保火花是在干净的石板上开始的?

这也是我们设置检查点目录的方式

val ssc = new StreamingContext(sparkConf, Seconds(props.getProperty("spark.streaming.window.seconds").toInt))
ssc.checkpoint(props.getProperty("spark.checkpointdir"))
val sc = ssc.sparkContext
属性文件中的

当前检查点目录是这样的

spark.checkpointdir:hdfs://hadoopuser@hdfs-name-node:8020/user/hadoopuser/.checkpointDir1

以前以前就像这样

spark.checkpointdir:hdfs://hadoopuser@hdfs-name-node:8020/user/hadoopuser/.checkpointDir

0 个答案:

没有答案