【已解决】关于IDEA中 Driver 出现Exception in thread quot;mainquot; java.lang.NullPointerException问题
生活随笔
收集整理的這篇文章主要介紹了
【已解决】关于IDEA中 Driver 出现Exception in thread quot;mainquot; java.lang.NullPointerException问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在學(xué)習(xí)hive過(guò)程中,按照mapreduce編程規(guī)范,分別編寫(xiě)Mapper,Reducer,Driver,在編寫(xiě)Driver后運(yùn)行報(bào)錯(cuò)了,花了兩天,找到了解決方案(裂開(kāi).JPG)。
代碼:
package com.miao;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class WCDriver {public static void main(String[] args) throws Exception {// 1 創(chuàng)建一個(gè)配置對(duì)象Configuration conf = new Configuration();// 2 通過(guò)配置對(duì)象獲取一個(gè)job對(duì)象Job job = Job.getInstance(conf);// 3 設(shè)置job的jar包job.setJarByClass(WCDriver.class);// 4 設(shè)置job的mapper類(lèi),reduce類(lèi)job.setMapperClass(WCMapper.class);job.setReducerClass(WCReducer.class);// 5 設(shè)置mapper的keyout和valueoutjob.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);// 6 設(shè)置最終輸出數(shù)據(jù)的keyout和valueoutjob.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);// 7 設(shè)置輸入數(shù)據(jù)的路徑和輸出數(shù)據(jù)的路徑---FileInputFormat.setInputPaths(job,new Path(args[0])); // 也可以寫(xiě)死路徑//注意輸出目錄不能事先存在,必須設(shè)置一個(gè)不存在的目錄,框架會(huì)自行創(chuàng)建,否則就會(huì)報(bào)錯(cuò)FileOutputFormat.setOutputPath(job,new Path(args[1])); // 也可以寫(xiě)死路徑// 8 向yarn或者本地yarn模擬器提交任務(wù)boolean res = job.waitForCompletion(true);System.out.println("是否成功:"+res);}}
報(bào)錯(cuò):
Exception in thread "main" java.lang.NullPointerException
原因:
在設(shè)置路徑時(shí)那兒沒(méi)有指定路徑,或者指定了已經(jīng)存在的路徑。
解決:
?1.點(diǎn)擊此處去設(shè)置傳輸文件的保存路徑
?
2.編輯路徑(前一個(gè)為原本文本文檔的路徑,第二個(gè)為IDEA上要傳的文件所要傳到電腦本機(jī)的路徑,我這里選擇同樣傳到E盤(pán)的將會(huì)被IDEA自動(dòng)新建的名為abc的文件夾里)
?3.然后運(yùn)行你的Driver.java,就會(huì)成功了。(如果上傳的文件夾路徑是電腦存在的,依舊會(huì)報(bào)錯(cuò),所以設(shè)置路徑時(shí)一定需要取一個(gè)電腦里沒(méi)有的文件夾名字!)
orz 報(bào)錯(cuò)時(shí)搜遍全網(wǎng),找了兩天都沒(méi)看到解決這個(gè)的帖子,記錄一下。
當(dāng)然我是學(xué)這個(gè)的菜逼,還是很多不懂。。
總結(jié)
以上是生活随笔為你收集整理的【已解决】关于IDEA中 Driver 出现Exception in thread quot;mainquot; java.lang.NullPointerException问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。