• mapreduce报错java.lang.InstantiationException


    一、报错信息:

    Exception in thread "main" java.lang.RuntimeException: java.lang.InstantiationException
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:131)
    at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:267)
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:143)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1307)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1304)
    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:1917)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1304)
    at hadoop.utils.HadoopUtils.waitForCompletion(HadoopUtils.java:90)
    at MapreduceCodeWorkJob.run(MapreduceCodeWorkJob.java:56)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
    at MapreduceCodeWorkJob.main(MapreduceCodeWorkJob.java:35)
    Caused by: java.lang.InstantiationException
    at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:129)

    二、原因

    实例化异常,原因一般是通过反射实例化对象时失败,大多原因是在于没有空参构造器,但本次错误为用错了类:

    在配置reduce输出时:设置job.setOutputFormatClass(FileOutputFormat.class);

    将其改为:

    job.setOutputFormatClass(TextOutputFormat.class);

    就没有报错了。

    参考:

    https://www.cnblogs.com/yangxusun9/p/12358399.html

  • 相关阅读:
    form表单
    JsonResponse对象
    HttpRequest对象
    Django基础
    ssh私钥登录
    监控window目录是否为空自定义item
    redis频繁报错Cannot allocate memory
    脱敏html文件文件
    MySQL删除数据
    ftp服务器搭建
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/13344801.html
Copyright © 2020-2023  润新知