我们有一个火花流工作,它从在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