[BigData]:Hadoop原理与实战:2.0.hadoop 环境异常处理

1.ERROR:Eclipse编译运行错误

错误信息:

Exception in thread "main" 0: No such file or directory
    at org.apache.hadoop.io.nativeio.NativeIO$POSIX.chmod(NativeIO.java:236)
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:729)
    at org.apache.hadoop.fs.ChecksumFileSystem$1.apply(ChecksumFileSystem.java:505)
    at org.apache.hadoop.fs.ChecksumFileSystem$FsOperation.run(ChecksumFileSystem.java:486)
    at org.apache.hadoop.fs.ChecksumFileSystem.setPermission(ChecksumFileSystem.java:508)
    at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:602)
    at org.apache.hadoop.mapreduce.JobResourceUploader.uploadFiles(JobResourceUploader.java:94)
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:95)
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:190)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Unknown Source)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1746)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287)
    at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:575)
    at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:570)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Unknown Source)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1746)
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:570)
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:561)
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:870)
    at studyHadoop.WordCount.main(WordCount.java:76)

原因分析:

eclipse没有权限读写hdfs

解决方法:

以管理员权限打开eclipse
以及:https://www.cnblogs.com/fang-s/p/3777784.html


2.WARN -1:Eclipse编译运行代码错误

错误信息:

log4j:WARN No appenders could be found for logger 
(org.apache.hadoop.metrics2.lib.MutableMetricsFactory).

原因分析:

log4j的配置文件没有找到并且应用程序执行的时候没有显示配置,而log4j呢,是依靠Thread.getContextClassLoader().getResource() 这两个类去定位文件的默认信息而不是直接去查他的文件系统,而你要将log4j放在合适的位置就需要知道类装入器(class loader大致是这么个理)的搜索策略,log4j没有提供一个默认的配置不管是输入到控制台还是到文件系统中,不过也可能在某些环境中被禁止。

解决方法:

将该方法插入到main函数中,可以自行打印日志信息了

BasicConfigurator.configure(); //自动快速地使用缺省Log4j环境。

然后测试程序没有问题。
BUT 虽然日志信息打印出来了 可是配置的问题其实还是没有解决。


3.ERROR:Hadoop jar提交程序出错

错误信息:

Container launch failed for container_1383017347984_0001_01_000002 :
org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException:
The auxService: mapreduce_shuffle does not exist .

原因分析:

这个问题其实是由于yarn.nodemanager.aux-services 配置错误或者没有配置,其实,如果没有配置这个参数应该会有默认值。
这是目前版本的一个小bug:https://issues.apache.org/jira/i#browse/YARN-1289

解决方法:

https://blog.csdn.net/baiyangfu_love/article/details/13504849
在yarn-site.xml 配置文件中增加:

<property>  
        <name>yarn.nodemanager.aux-services</name>  
        <value>mapreduce_shuffle</value>  
</property>  

重启就ok了

4.ERROR:Hadoop jar提交程序出错

错误信息:

hadoop提交jar包卡住不会往下执行的解决方案

原因分析:

内存分配较少。(由于机器内存小,就分别的少,其实系统有虚拟存储技术)。

解决方法:

https://blog.csdn.net/Gamer_gyt/article/details/52620915

https://blog.csdn.net/user_rcy/article/details/50833643

https://blog.csdn.net/qq_32815807/article/details/78112890

5.ERROR:Hadoop jar提交程序出错

错误信息:

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException): Invalid resource request, requested memory < 0, or requested memory > max configured, requestedMemory=1536, maxMemory=1024

原因分析:

应用程序请求资源无法满足:
资源请求无效,”请求的内存” < 0 或 “请求的内存”>”已配置最大值”

解决方法:

虚拟机内存弄大点,建议每个节点最少为1.5G以上,这里我用的是2G的内存虚拟机.
(系统有虚拟存储技术,不用太担心内存不够)

阅读更多
版权声明:本文为博主原创文章,欢迎转载,转载请注明原文地址、作者信息。欢迎交流、批评指正! https://blog.csdn.net/hello_sea_csdn/article/details/79955624
上一篇[BigData] Hadoop原理与实战:1.1.Hadoop编程搭建(方案1:Linux+Hadoop)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭