gpt4 book ai didi

hadoop - 集群模式异常,但在 eclipse 下运行正常

转载 作者:可可西里 更新时间:2023-11-01 15:58:51 27 4
gpt4 key购买 nike

我不知道为什么我的Hadoop项目无法在命令行下执行

hadoop jar class-examples-1-1.0.0-SNAPSHOT.jar stock.intro.MR2Screener1 "companylistNASDAQ.csv" output/mr2_screener1

异常信息没有显示对我有用的信息=_=

有什么方向或想法吗?谢谢

在eclipse下完美运行

inline

通过命令行运行的部分异常日志

2016-11-03 09:14:13,448 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Memory usage of ProcessTree 30206 for container-id container_1478145101159_0003_01_000001: 131.6 MB of 2 GB physical memory used; 1.6 GB of 4.2 GB virtual memory used
2016-11-03 09:14:14,084 WARN org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Exit code from container container_1478145101159_0003_01_000001 is : 1
2016-11-03 09:14:14,085 WARN org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Exception from container-launch with container ID: container_1478145101159_0003_01_000001 and exit code: 1
ExitCodeException exitCode=1:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:578)
at org.apache.hadoop.util.Shell.run(Shell.java:481)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:763)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:213)
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:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

完整日志

https://gist.github.com/anonymous/242e22801f289d38f30182ff44cd317d

https://gist.githubusercontent.com/anonymous/242e22801f289d38f30182ff44cd317d/raw/86ddf748700c0cc4cbc5d63dc3e6327833b308fb/hadoop_cluster.log

2016-11-03 下午4点更新

尝试使用 HDFS 绝对路径的 luanch 命令

" hadoop jar class-examples-1-1.0.0-SNAPSHOT.jar stock.intro.MR2Screener1 "/user/cloudera/companylistNASDAQ.csv" "/user/cloudera/output/mr2_screener1""

Runner to remedy this.
16/11/03 16:24:42 INFO input.FileInputFormat: Total input paths to process : 1
16/11/03 16:24:42 INFO mapreduce.JobSubmitter: number of splits:1
16/11/03 16:24:42 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1478145101159_0007
16/11/03 16:24:42 INFO impl.YarnClientImpl: Submitted application application_1478145101159_0007
16/11/03 16:24:43 INFO mapreduce.Job: The url to track the job: http://quickstart.cloudera:8088/proxy/application_1478145101159_0007/
16/11/03 16:24:43 INFO mapreduce.Job: Running job: job_1478145101159_0007
16/11/03 16:24:52 INFO mapreduce.Job: Job job_1478145101159_0007 running in uber mode : false
16/11/03 16:24:52 INFO mapreduce.Job: map 0% reduce 0%
16/11/03 16:24:52 INFO mapreduce.Job: Job job_1478145101159_0007 failed with state FAILED due to: Application application_1478145101159_0007 failed 2 times due to AM Container for appattempt_1478145101159_0007_000002 exited with exitCode: 1
For more detailed output, check application tracking page:http://quickstart.cloudera:8088/proxy/application_1478145101159_0007/Then, click on links to logs of each attempt.
Diagnostics: Exception from container-launch.
Container id: container_1478145101159_0007_02_000001
Exit code: 1
Stack trace: ExitCodeException exitCode=1:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:578)
at org.apache.hadoop.util.Shell.run(Shell.java:481)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:763)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:213)
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:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

最佳答案

您只能在 Eclipse 中运行类示例,不能在集群上运行

虽然这个问题在类里面被问过和回答过,但也许我不是很清楚,所以让我再试一次。


我给你的代码不会在集群上运行,因为集群使用的是用 Java 1.7 编译的 Hadoop 2.6.0。

但是它在 Eclipse 中运行,因为 Eclipse 以独立模式运行 Hadoop,而您正在使用 Java 1.8 进行编译。


你可能是如何调试它的


很高兴您提供了日志文件,但是您提供的日志文件是在您点击作业输出中的链接到您的终端时获得的,这最终将您带到了http://quickstart.cloudera:8042/logs/yarn-yarn-nodemanager-quickstart.cloudera.log

我为您找到这个面向管理员的滚动日志而鼓掌。但是,这不是最有用的日志文件。

您需要使用作业(HW1,第 1 部分)中引用的日志文件。

当你在集群上运行时,对调试有用的日志存储在HDFS下

/var/log/hadoop-yarn/apps/cloudera/logs

使用Hue很容易读取日志文件

  1. 在虚拟机的浏览器中打开 Hue。
  2. 选择“文件浏览器”
  3. 在 FileBrowser 中,导航到/var/log/hadoop-yarn/apps/cloudera/logs/
  4. 找到失败的应用程序(最近运行的应用程序位于列表底部)
  5. 单击以打开应用程序的日志 - 它将以二进制形式显示。
  6. 为了使其清晰易读,请在左侧面板中选择“以文本形式查看
  7. 现在您有了清晰的日志;寻找抛出的第一个 fatal error 。它应该位于日志的顶部。

我复制了错误并在应用程序日志中查找第一个错误。在这里:

2016-11-06 11:18:37,017 FATAL [main]     org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster

java.lang.UnsupportedClassVersionError: stock/intro/SectorCountWithFilter$StockSectorMapper : Unsupported major.minor version 52.0

UnsupportedClassVersionError

当 Java 虚拟机 (JVM) 尝试读取其 Java 版本受支持的类文件时,会抛出 UnsupportedClassVersionError。在我们的例子中,Hadoop 集群 JVM 可以处理最高 1.7 的 Java 版本,并且您的代码是使用 Java 1.8 在 Eclipse 中编译的。

我们如何知道 JVM 正在运行?好吧,查看错误,我们可以看到当 MRApplicationMaster 启动时出现此错误 - 因此 MRApplicationMaster JVM 在与您的类文件链接时遇到问题。如您所知,这是在您的作业开始处理时在 Hadoop 集群上启动的 JVM。一旦它放弃了,其他一切都不重要了。然后可能会出现各种错误,因为作业启动被中止,但您应该忽略这些错误并专注于出现的第一个错误。

我们可以得出结论,我们看到的主要错误是集群上运行的 Java 版本与用于编译代码的 Java 版本不匹配。

我们如何修复它?在我们的例子中,唯一要做的就是在 Eclipse 中引用不同的 JRE - 并更改 pom.xml 中的 maven 编译选项。

顺便说一句,不要理会几乎所有博客中传播的关于此错误的糟糕建议:您不能只查看计算机上的 java 版本来找出 JVM 正在运行的版本。使用 $ java -version 不会解决我们的问题,最多只能为不可靠的修复提供一个随意的基础。

在 VM 集群上运行的 Hadoop 构建使用 java = 1.7.0_67。


多么可怕的兔子洞啊。请在 Eclipse 中运行即可。

你的老师……

关于hadoop - 集群模式异常,但在 eclipse 下运行正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406647/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com