spark streaming 中使用saveAsNewAPIHadoopDataset方法写入hbase中,从checkpoint中恢复时报错

问题描述

最近写了一个从Kafka读取数据,处理之后通过saveAsNewAPIHadoopDataset方法写入到hbase中,正常运行的时候没有报错,写入也正常,但是当手动停止应用,再次执行(通过Checkpoint恢复)的时候就会报错,跪求大神们解答!!报错信息如下:15/12/2216:26:52WARNVerifiableProperties:Propertyserializer.classisnotvalid15/12/2216:26:57WARNFileOutputCommitter:OutputPathisnullinsetupJob()15/12/2216:26:58WARNTaskSetManager:Losttask0.0instage1.0(TID1,10.4.120.183):java.lang.NullPointerExceptionatorg.apache.hadoop.fs.Path.<init>(Path.java:105)atorg.apache.hadoop.fs.Path.<init>(Path.java:94)atorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat.getDefaultWorkFile(FileOutputFormat.java:286)atorg.apache.hadoop.mapreduce.lib.output.TextOutputFormat.getRecordWriter(TextOutputFormat.java:129)atorg.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12.apply(PairRDDFunctions.scala:1030)atorg.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12.apply(PairRDDFunctions.scala:1014)atorg.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)atorg.apache.spark.scheduler.Task.run(Task.scala:88)atorg.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)atjava.lang.Thread.run(Thread.java:722)^C15/12/2216:26:59ERRORTaskSetManager:Task0instage1.0failed4times;abortingjob15/12/2216:26:59ERRORJobScheduler:Errorrunningjobstreamingjob1450772680000ms.0org.apache.spark.SparkException:Jobabortedduetostagefailure:Task0instage1.0failed4times,mostrecentfailure:Losttask0.3instage1.0(TID4,10.4.120.183):java.lang.NullPointerExceptionatorg.apache.hadoop.fs.Path.<init>(Path.java:105)atorg.apache.hadoop.fs.Path.<init>(Path.java:94)atorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat.getDefaultWorkFile(FileOutputFormat.java:286)atorg.apache.hadoop.mapreduce.lib.output.TextOutputFormat.getRecordWriter(TextOutputFormat.java:129)atorg.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12.apply(PairRDDFunctions.scala:1030)atorg.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12.apply(PairRDDFunctions.scala:1014)atorg.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)atorg.apache.spark.scheduler.Task.run(Task.scala:88)atorg.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)atjava.lang.Thread.run(Thread.java:722)Driverstacktrace:atorg.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1280)atorg.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1268)atorg.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1267)atscala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)atscala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)atorg.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1267)atorg.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:697)atorg.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:697)atscala.Option.foreach(Option.scala:236)atorg.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:697)atorg.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1493)atorg.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1455)atorg.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1444)atorg.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)atorg.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:567)atorg.apache.spark.SparkContext.runJob(SparkContext.scala:1813)atorg.apache.spark.SparkContext.runJob(SparkContext.scala:1826)atorg.apache.spark.SparkContext.runJob(SparkContext.scala:1903)atorg.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1.apply$mcV$sp(PairRDDFunctions.scala:1055)atorg.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1.apply(PairRDDFunctions.scala:998)atorg.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1.apply(PairRDDFunctions.scala:998)atorg.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:147)atorg.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:108)atorg.apache.spark.rdd.RDD.withScope(RDD.scala:306)atorg.apache.spark.rdd.PairRDDFunctions.saveAsNewAPIHadoopDataset(PairRDDFunctions.scala:998)atcom.neusoft.cn.TEST02$$anonfun$createContext$2.apply(TEST02.scala:142)atcom.neusoft.cn.TEST02$$anonfun$createContext$2.apply(TEST02.scala:139)atorg.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:631)atorg.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:631)atorg.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ForEachDStream.scala:42)atorg.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:40)atorg.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:40)atorg.apache.spark.streaming.dstream.DStream.createRDDWithLocalProperties(DStream.scala:399)atorg.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply$mcV$sp(ForEachDStream.scala:40)atorg.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:40)atorg.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:40)atscala.util.Try$.apply(Try.scala:161)atorg.apache.spark.streaming.scheduler.Job.run(Job.scala:34)atorg.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply$mcV$sp(JobScheduler.scala:207)atorg.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:207)atorg.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:207)atscala.util.DynamicVariable.withValue(DynamicVariable.scala:57)atorg.apache.spark.streaming.scheduler.JobScheduler$JobHandler.run(JobScheduler.scala:206)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)atjava.lang.Thread.run(Thread.java:722)Causedby:java.lang.NullPointerExceptionatorg.apache.hadoop.fs.Path.<init>(Path.java:105)atorg.apache.hadoop.fs.Path.<init>(Path.java:94)atorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat.getDefaultWorkFile(FileOutputFormat.java:286)atorg.apache.hadoop.mapreduce.lib.output.TextOutputFormat.getRecordWriter(TextOutputFormat.java:129)atorg.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12.apply(PairRDDFunctions.scala:1030)atorg.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12.apply(PairRDDFunctions.scala:1014)atorg.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)atorg.apache.spark.scheduler.Task.run(Task.scala:88)atorg.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)

解决方案

解决方案二:
楼主问题解决了吗?我也遇到同样的异常,现在还没有解决。
解决方案三:
帮顶,我也想知道,最近也在学习这些
解决方案四:
lz可以贴一下代码吗,我想在foreachrdd中写但是没效果,谢了

时间: 2024-09-10 00:49:14

spark streaming 中使用saveAsNewAPIHadoopDataset方法写入hbase中,从checkpoint中恢复时报错的相关文章

lash轮播+ js+ xml+-几个flash轮播,求把XML中的参数直接写入js或者静态html中

问题描述 几个flash轮播,求把XML中的参数直接写入js或者静态html中 js部分: <!-- var so = new SWFObject(""/home/home_features.swf""visualMovie""935""470""9""#ffffff""); so.addParam(""wmode""tr

Spark Streaming场景应用- Spark Streaming计算模型及监控

Spark Streaming是一套优秀的实时计算框架.其良好的可扩展性.高吞吐量以及容错机制能够满足我们很多的场景应用.本篇结合我们的应用场景,介结我们在使用Spark Streaming方面的技术架构,并着重讲解Spark Streaming两种计算模型,无状态和状态计算模型以及该两种模型的注意事项;接着介绍了Spark Streaming在监控方面所做的一些事情,最后总结了Spark Streaming的优缺点. 一.概述 数据是非常宝贵的资源,对各级企事业单均有非常高的价值.但是数据的爆

asp.net 导出excel与单元格中图片的方法:

asp教程.net 导出excel与单元格中图片的方法: 在asp.net教程中导出excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出流写给浏览器.在response输出时,t分隔的数据,导出excel时,等价于分列,n等价于换行. 1.将整个html全部输出excel 此法将html中所有的内容,如按钮,表格,图片等全部输出到excel中.    response.clear();        response.buf

详解Python中的type()方法的使用

  这篇文章主要介绍了详解Python中的type()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下 type()方法返回传递变量的类型.如果传递变量是字典那么它将返回一个字典类型. 语法 以下是type()方法的语法: ? 1 type(dict) 参数 dict -- 这是字典 返回值 此方法返回传递变量的类型. 例子 下面的例子显示type()方法的使用 ? 1 2 3 4 #!/usr/bin/python   dict = {'Name': 'Zara', 'Age'

JavaScript中的anchor()方法使用详解

  这篇文章主要介绍了JavaScript中的anchor()方法使用,是JS入门学习中的基础知识,需要的朋友可以参考下 此方法创建一个用作超文本目标的HTML锚. 语法 ? 1 string.anchor( anchorname ) 下面是参数的详细信息: anchorname: 定义了锚的名称 返回值: 返回其锚标记的字符串 例子: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <html> <head> <title>JavaScript

JavaScript中的italics()方法的使用介绍

  这篇文章主要介绍了JavaScript中的italics()方法使用,是JS入门学习中的基础知识,需要的朋友可以参考下 这种方法会导致一个字符串是斜体,就好像它是在标签 语法 ? 1 string.italics( ) 下面是参数的详细信息: NA 返回值: 返回字符串带有标签 例子: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <html> <head> <title>JavaScript String italics() Method&

浅析Python中的join()方法的使用

  这篇文章主要介绍了Python中的join()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下 join()方法方法返回一个在序列的字符串元素被加入了由str分隔的字符串. 语法 以下是join()方法的语法: ? 1 str.join(sequence) 参数 sequence -- 这是要连接的元素的顺序. 返回值 此方法返回一个字符串,在序列seq字符串的连接.元素之间的分离器是字符串 str. 例子 下面的示例演示了join()方法的使用. ? 1 2 3 4 5 #

Python中的ceil()方法使用教程

  这篇文章主要介绍了Python中的ceil()方法使用教程,是Python入门中必会的方法之一,需要的朋友可以参考下 ceil()方法返回x的值上限 - 不小于x的最小整数. 语法 以下是ceil()方法的语法: ? 1 2 3 import math   math.ceil( x ) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数. 参数 x -- 这是一个数值表达式. 返回值 此方法返回不小于x的最小整数. 示例 下面的例子显示了c

隐藏apache和tomcat在headers中版本号的方法

隐藏apache和tomcat在headers中版本号的方法 apache: http.conf文件中添加 ServerTokens ProductOnly ServerSignature Off 两行 tomcat: 在server.xml中的Connector节点中添加server="wws1.0"