at org.apache.hadoop.io.serializer.SerializationFactory.getSerializer(Serializat

本文探讨了Hadoop运行job时出现的NullPointerException异常,并详细分析了异常产生的原因。通过检查SequenceFileOutputFormat源码,发现该类未实现序列化接口,从而导致job输出时发生错误。

 

Hadoop运行job的时候抛出异常如下:

 

java.lang.NullPointerException
at org.apache.hadoop.io.serializer.SerializationFactory.getSerializer(SerializationFactory.java:73)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:823)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:557)
 

 

核实代码如下:

 

	        job.setOutputValueClass(SequenceFileOutputFormat.class);
		job.setInputFormatClass(SequenceFileInputFormat.class);

 

 查看SequenceFileOutputFormat源码发现此类没有实现序列号接口,output的数据格式需要实现序列号接口

 

 

 

java.io.FileNotFoundException: File does not exist: hdfs://localhost:9000/w_base_pay_result_hudi_hive at org.apache.hadoop.hdfs.DistributedFileSystem$29.doCall(DistributedFileSystem.java:1756) at org.apache.hadoop.hdfs.DistributedFileSystem$29.doCall(DistributedFileSystem.java:1749) at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1764) at org.apache.hudi.common.util.TablePathUtils.getTablePath(TablePathUtils.java:58) at org.apache.hudi.DataSourceUtils.getTablePath(DataSourceUtils.java:73) at org.apache.hudi.DefaultSource.createRelation(DefaultSource.scala:109) at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:348) at org.apache.spark.sql.execution.datasources.FindDataSourceTable.$anonfun$readDataSourceTable$1(DataSourceStrategy.scala:252) at org.sparkproject.guava.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4792) at org.sparkproject.guava.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599) at org.sparkproject.guava.cache.LocalCache$Segment.loadSync(LocalCache.java:2379) at org.sparkproject.guava.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342) at org.sparkproject.guava.cache.LocalCache$Segment.get(LocalCache.java:2257) at org.sparkproject.guava.cache.LocalCache.get(LocalCache.java:4000) at org.sparkproject.guava.cache.LocalCache$LocalManualCache.get(LocalCache.java:4789) at org.apache.spark.sql.catalyst.catalog.SessionCatalog.getCachedPlan(SessionCatalog.scala:174) at org.apache.spark.sql.execution.datasources.FindDataSourceTable.org$apache$spark$sql$execution$datasources$FindDataSourceTable$$readDataSourceTable(DataSourceStrategy.scala:240) at org.apache.spark.sql.execution.datasources.FindDataSourceTable$$anonfun$apply$2.applyOrElse(DataSourceStrategy.scala:279) at org.apache.spark.sql.execution.datasources.FindDa
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值