Hadoop版本:Hadoop-2.6.5
运行环境:三台虚拟主机,主机名分别是 duanyd、hadoop_01、hadoop_02
刚学hadoop,照着老师的示例编了个统计词数的mapredurce程序,传到duanyd虚拟主机运行后报如下错误:
17/02/22 06:11:13 INFO mapreduce.Job: Job job_1487677042735_0006 failed with state FAILED due to: Application application_1487677042735_0006 failed 2 times due to AM Container for appattempt_1487677042735_0006_000002 exited with exitCode: 255
For more detailed output, check application tracking page:http://duanyd:8088/proxy/application_1487677042735_0006/Then, click on links to logs of each attempt.
Diagnostics: Exception from container-launch.
Container id: container_1487677042735_0006_02_000001
Exit code: 255
Stack trace: ExitCodeException exitCode=255:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:575)
at org.apache.hadoop.util.Shell.run(Shell.java:478)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:766)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:212)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Container exited with a non-zero exit code 255
Failing this attempt. Failing the application.
从 http://duanyd:8088/proxy/application_1487677042735_0006/Then 访问 失败日志看到如下报错信息:
FATAL org.apache.hadoop.mapred.JobTracker: Java.lang.IllegalArgumentException: Does not contain a valid host:port authority: hadoop_01:9000
at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:162)
at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:128)
at org.apache.hadoop.mapred.JobTracker.getAddress(JobTracker.java:2560)
at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2200)
at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2192)
报错原因:主机名hadoop_01、hadoop_02中包含下划线 _ ,把下滑线改为中划线 hadoop-01、hadoop-02后此异常消失
所以需要修改虚拟主机hadoop_01、hadoop_02的主机名为hadoop-01、hadoop-02,
不知道这个异常还会不会由其他原因抛出,这里先记录这个原因,如果遇到以后再记录