Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop Spark Streaming:如何干净地重新启动在hdfs上运行的Spark Streaming作业_Hadoop_Apache Spark_Spark Streaming_Yarn_Hadoop2 - Fatal编程技术网

Hadoop Spark Streaming:如何干净地重新启动在hdfs上运行的Spark Streaming作业

Hadoop Spark Streaming:如何干净地重新启动在hdfs上运行的Spark Streaming作业,hadoop,apache-spark,spark-streaming,yarn,hadoop2,Hadoop,Apache Spark,Spark Streaming,Yarn,Hadoop2,我们有一个spark streaming作业,它从运行在4节点集群上的kafka读取数据,该集群使用HDFS上的检查点目录……我们发生了一个I/O错误,空间用完了,我们不得不进入并删除几个HDFS文件夹以释放一些空间,现在我们已经安装了更大的磁盘……而且希望干净地重新启动,无需重新启动保留检查点数据或卡夫卡偏移量…获取错误 Application application_1482342493553_0077 failed 2 times due to AM Container for appa

我们有一个spark streaming作业,它从运行在4节点集群上的kafka读取数据,该集群使用HDFS上的检查点目录……我们发生了一个I/O错误,空间用完了,我们不得不进入并删除几个HDFS文件夹以释放一些空间,现在我们已经安装了更大的磁盘……而且希望干净地重新启动,无需重新启动保留检查点数据或卡夫卡偏移量…获取错误

 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 on clean slate..它仍然给出相同的块异常…我们在进行配置更改时是否遗漏了任何内容?我们如何确保spark是在干净的基础上启动的

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

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

如果修改了代码,则需要删除检查点目录中的数据。这看起来Spark仍在尝试从检查点获取旧块,但失败了。感谢您的建议,Yuval,但我提供了一个新的检查点目录…但Spark仍在寻找可能位于旧检查点目录中的块…@YuvalItzchakov我在问题中添加了额外的信息,以明确说明我们如何切换到新的检查点目录新建检查点目录请查看并告知我们是否缺少任何内容如果您修改了代码,则需要删除检查点目录中的数据。这看起来Spark仍在尝试从检查点获取旧块,但失败了。感谢您的建议,Yuval,但我提供了一个新的检查点目录…但Spark仍在寻找可能位于旧检查点目录中的块…@YuvalItzchakov我在问题中添加了额外的信息,以明确说明我们如何切换到新的检查点目录新的检查点目录请看一下,如果我们遗漏了什么,请告诉我们