select

 

 

 

 

 

 

 

 为何成功了得不到数据结果,怀疑输入文件数据有问题,唉····java

今天又尝试了不少回,总结就是用.bz2数据文件时,虽然会运行成功,可是生成的输出文件没有内容,而我也发现map input  records=0(不正常啊),而用.txt和.csv数据文件输入时,运行过程就会有以下错误,做业由于任务失败而失败。apache

 

 后面终于在网上查找解决办法时,脑瓜子灵光了,去查看日志文件,果真,我立刻懂了本身错的缘由:我打包jar的时候不是打包的整个项目,而是只打包了一个类,而这个类调用了其余类中的方法,这里这个其余类指的就是AirlineDataUtils,因此运行就会有错。app

 020-07-05 19:03:08,080 FATAL [uber-SubtaskRunner] org.apache.hadoop.mapred.LocalContainerLauncher: Error running local (uberized) 'child' : java.lang.NoClassDefFoundError: org/apress/prohadoop/utils/AirlineDataUtils
    at org.apress.prohadoop.c5.SelectClauseMRJob$SelectClauseMapper.map(SelectClauseMRJob.java:29)
    at org.apress.prohadoop.c5.SelectClauseMRJob$SelectClauseMapper.map(SelectClauseMRJob.java:1)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:793)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
    at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runSubtask(LocalContainerLauncher.java:436)
    at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runTask(LocalContainerLauncher.java:350)
    at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.access$200(LocalContainerLauncher.java:211)
    at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler$1.run(LocalContainerLauncher.java:254)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.apress.prohadoop.utils.AirlineDataUtils
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 14 moreoop

这是select运行成功后,Map input records终于再也不是0了
.net

 

 查看生成的输出文件,下面是最后几行日志

相关文章
相关标签/搜索