空指针异常

来源:4-7 词频统计之自定义Driver类实现

weixin_慕无忌0346932

2022-04-15

package ciping;

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 wordcountapp {
public static void main(String[] args) throws Exception {
//创建一个job
System.setProperty(“HADOOP_USER_NAME”,“hadoop”);
Configuration configuration =new Configuration();
configuration.set(“dfs.client.use.datanode.hostname”,“true”);
configuration.set(“fs.defaultFS”,“hdfs://ip:8020”);
Job job =Job.getInstance(configuration);
//设置Job对应的参数:主类
job.setJarByClass(wordcountapp.class);
job.setMapperClass(wordcountmapper.class);
job.setReducerClass(WordConuntReduer.class);

    job.setMapOutputValueClass(Text.class);
    job.setMapOutputValueClass(IntWritable.class);

    job.setMapOutputKeyClass(Text.class);
    job.setMapOutputValueClass(IntWritable.class);

    FileInputFormat.setInputPaths(job,new Path("/wordcount/input"));
    FileOutputFormat.setOutputPath(job,new Path("/wordcount/output"));

   boolean result=job.waitForCompletion(true);
    System.exit( result ? 0 : -1);
}

}
报错
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread “main” java.lang.NullPointerException
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:482)
at org.apache.hadoop.util.Shell.run(Shell.java:455)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:808)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:791)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:656)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:444)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:293)
at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:133)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:437)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1293)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1314)
at ciping.wordcountapp.main(wordcountapp.java:33)

Process finished with exit code 1

写回答

1回答

Michael_PK

2022-04-15

参考:https://coding.imooc.com/learn/questiondetail/GzLgVXkAbAlPkWxb.html

0
2
Michael_PK
回复
weixin_慕无忌0346932
file:/input/wc.input.txt这个文件找不到 你的代码里指向的hadoop文件系统, 这个地址指向的是file,是本地呢。
2022-04-27
共2条回复

Hadoop 系统入门+核心精讲

从Hadoop核心技术入手,掌握数据处理中ETL应用,轻松进军大数据

2397 学习 · 902 问题

查看课程