分享

解决Window环境下启动Hadoop时出现 java.lang.NoClassDefFoundError: org/apache/hadoop/util

 风自向前 2010-12-28

原文链接:http://www./snoics/archive/2010/10/10/333408.html

在Window下启动Hadoop-0.21.0版本时,会出现下面这样的错误提示:

Java代码 
  1. java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName  
  2. Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName  
  3.    
  4.          at java.net.URLClassLoader$1.run(URLClassLoader.java:202)  
  5.          at java.security.AccessController.doPrivileged(Native Method)  
  6.          at java.net.URLClassLoader.findClass(URLClassLoader.java:190)  
  7.          at java.lang.ClassLoader.loadClass(ClassLoader.java:307)  
  8.          at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)  
  9.          at java.lang.ClassLoader.loadClass(ClassLoader.java:248)  
  10. Could not find the main class: org.apache.hadoop.util.PlatformName.  Program will exit.  

 经过不断的查找原因和尝试,终于有了解决这个错误的办法,只需要将${HADOOP_HOME}/bin/hadoop-config.sh文件中的第190行的一下的内容:

Java代码 
  1. JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m ${HADOOP_JAVA_PLATFORM_OPTS} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`  

 修改成以下的内容即可:

Java代码 
  1. JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m -classpath ${HADOOP_COMMON_HOME}/hadoop-common-0.21.0.jar org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`  
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多