jobTracker进程在启动后很快就自动关闭(前面两篇博客的方法都无法解决):
查看logs日志发现:
2013-05-28 09:19:09,420 INFO org.apache.hadoop.http.HttpServer: Jetty bound to port 50030
2013-05-28 09:19:09,420 INFO org.mortbay.log: jetty-6.1.26
2013-05-28 09:19:09,463 INFO org.mortbay.log: Extract jar:file:/usr/lib/jvm/java-6-openjdk-i386/jre/lib/ext/hadoop-core-1.0.4.jar!/webapps/job to /tmp/Jetty_0_0_0_0_50030_job____yn7qmk/webapp
2013-05-28 09:19:09,851 WARN org.mortbay.log: failed jsp: java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
2013-05-28 09:19:09,858 WARN org.mortbay.log: failed org.mortbay.jetty.webapp.WebAppContext@1a4ded3{/,jar:file:/usr/lib/jvm/java-6-openjdk-i386/jre/lib/ext/hadoop-core-1.0.4.jar!/webapps/job}: java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
2013-05-28 09:19:09,858 WARN org.mortbay.log: failed ContextHandlerCollection@121177e: java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
2013-05-28 09:19:09,859 ERROR org.mortbay.log: Error starting handlers
java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
目前还没解决,如有那位大侠解决了,求不吝赐教。如果我解决了,一定会立即更新博客的。
更新:终于找到原因和解决方案了。
因为之前我运行C程序访问hadoop的时候,告诉我缺少一个什么包,看到网上说只用将${HADOOP_HOME}/*.jar和${HADOOP_HOME}/lib/*jar复制到${JAVA_HOME}/jre/lib/ext下,就行了。
可是这就导致jobTracker无法启动,出现如下错误:
2013-05-28 09:19:09,851 WARN org.mortbay.log: failed jsp: java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
2013-05-28 09:19:09,858 WARN org.mortbay.log: failed org.mortbay.jetty.webapp.WebAppContext@1a4ded3{/,jar:file:/usr/lib/jvm/java-6-openjdk-i386/jre/lib/ext/hadoop-core-1.0.4.jar!/webapps/job}: java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
2013-05-28 09:19:09,858 WARN org.mortbay.log: failed ContextHandlerCollection@121177e: java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
2013-05-28 09:19:09,859 ERROR org.mortbay.log: Error starting handlers
java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
解决方案,很简单:
1.首先跳转到${JAVA_HOME}/jre/lib/ext
2.ls -al列出文件创建时期,来删除最近创建的所有文件。
3.之后再bin/start_all.sh就会发现 all is ok!
通过着三篇博客,经历了如下历程:
一个个的自动关闭
hadoop@springwater-Aspire-4743:/usr/local/hadoop$ jps
8467 DataNode
8229 NameNode
8720 SecondaryNameNode
9092 Jps
8811 JobTracker
9052 TaskTracker
hadoop@springwater-Aspire-4743:/usr/local/hadoop$ jps
9135 Jps
8720 SecondaryNameNode
8811 JobTracker
9052 TaskTracker
hadoop@springwater-Aspire-4743:/usr/local/hadoop$ jps
8720 SecondaryNameNode
9170 Jps
9052 TaskTracker
启动不久后jobtracker自动关闭
======>>
hadoop@springwater-Aspire-4743:/usr/local/hadoop$ jps
6661 JobTracker
6944 Jps
6317 DataNode
6576 SecondaryNameNode
6079 NameNode
6902 TaskTracker
hadoop@springwater-Aspire-4743:/usr/local/hadoop$ jps
7010 Jps
6317 DataNode
6576 SecondaryNameNode
6079 NameNode
6902 TaskTracker
hadoop@springwater-Aspire-4743:/usr/local/hadoop$ jps
7010 Jps
6317 DataNode
6576 SecondaryNameNode
6079 NameNode
6902 TaskTracker
正常
========>
hadoop@springwater-Aspire-4743:/usr/local/hadoop$ jps
8467 DataNode
8229 NameNode
8720 SecondaryNameNode
9092 Jps
8811 JobTracker
9052 TaskTracker
hadoop@springwater-Aspire-4743:/usr/local/hadoop$ jps
9135 Jps
8467 DataNode
8229 NameNode
8720 SecondaryNameNode
8811 JobTracker
9052 TaskTracker
hadoop@springwater-Aspire-4743:/usr/local/hadoop$ jps
8467 DataNode
8229 NameNode
8720 SecondaryNameNode
9170 Jps
8811 JobTracker
9052 TaskTracker