Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法找到或加载主类org.apache.hadoop.util.VersionInfo_Java_Linux_Apache_Ubuntu_Hadoop - Fatal编程技术网

Java 无法找到或加载主类org.apache.hadoop.util.VersionInfo

Java 无法找到或加载主类org.apache.hadoop.util.VersionInfo,java,linux,apache,ubuntu,hadoop,Java,Linux,Apache,Ubuntu,Hadoop,我按照“”在ubuntu上安装hadoop。但是,在检查hadoop版本时,我得到以下错误: 错误:无法找到或加载主类 org.apache.hadoop.util.VersionInfo 另外,当我尝试时:hdfs namenode-format 我得到以下错误: 错误:无法找到或加载主类 org.apache.hadoop.hdfs.server.namenode.namenode 使用的java版本是: java version "1.7.0_25" OpenJDK Runtime Env

我按照“”在ubuntu上安装hadoop。但是,在检查hadoop版本时,我得到以下错误:

错误:无法找到或加载主类 org.apache.hadoop.util.VersionInfo

另外,当我尝试时:hdfs namenode-format

我得到以下错误:

错误:无法找到或加载主类 org.apache.hadoop.hdfs.server.namenode.namenode

使用的java版本是:

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
尝试检查:

  • JAVA_HOME,Hadoop配置中所有与路径相关的变量
  • 运行:
    ~/。bashrc
    (注意前面的点)使这些变量在您的环境中可用。《指南》似乎没有提到这一点

    • 您可能没有正确遵循说明。以下是一些可以帮助我们/您诊断此问题的方法:

      • 在运行hadoop版本的shell中,运行导出并向我们显示相关环境变量的列表

      • 向我们展示您在
        /usr/local/hadoop/etc/hadoop/hadoop env.sh
        文件中放置的内容

      • 如果以上两项都没有给您/我们任何线索,那么请查找并使用文本编辑器(临时)修改
        hadoop
        包装器shell脚本。在开头附近添加行“set-xv”。然后运行hadoop版本,向我们展示它产生了什么


      将这一行添加到~/.bash_配置文件对我很有用

      export HADOOP_PREFIX=/<where ever you install hadoop>/hadoop
      
      导出HADOOP\u前缀=//HADOOP 所以只要:

    • $sudo open~/.bash_profile然后添加上述行
    • $source~/.bash\u配置文件

    • 希望这有帮助(:

      这是环境变量设置的问题。显然,我直到现在才找到一个可以工作的。我正在尝试2.6.4。下面是我们应该做的

      export HADOOP_HOME=/home/centos/HADOOP/hadoop-2.6.4
      export HADOOP_INSTALL=$HADOOP_HOME
      export HADOOP_MAPRED_HOME=$HADOOP_HOME
      export HADOOP_COMMON_HOME=$HADOOP_HOME
      export HADOOP_HDFS_HOME=$HADOOP_HOME
      export YARN_HOME=$HADOOP_HOME
      export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
      export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
      export HADOOP_CONF_DIR=$HADOOP_HOME
      export HADOOP_PREFIX=$HADOOP_HOME
      export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
      export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
      export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
      
      将这些添加到你的.bashrc中,别忘了这样做

      source ~/.bashrc
      

      我想你的问题会像我的一样得到解决。

      我得到了那个错误,我通过编辑~/.bashrc修复了它 如下

      export HADOOP_HOME=/usr/local/hadoop
      export PATH=$HADOOP_HOME/bin:$PATH
      
      然后打开终端并写入此命令

      source ~/.bashrc
      
      然后检查

      hadoop version
      

      我也面临着同样的问题。虽然这看起来很简单,但却占用了我2个小时的时间。我尝试了上述所有方法,但都无济于事


      我刚刚退出我所在的shell并再次登录系统进行了尝试。然后一切正常了!

      我在hadoop 2.7.2中遇到了同样的问题 在我应用了显示的技巧后,我能够启动hdfs,但后来我发现我使用的tar archivie缺少一些重要的部分。因此下载2.7.3一切都正常工作

      我的第一个建议是以相同的版本或专业版本再次下载tar.gz

      如果你继续阅读…这是我如何解决问题的。。。 在重新安装之后,hadoop无法找到jar。 我做了一个小把戏:

      我找到了罐子所在的位置
      我做了一个文件夹的符号链接到 $HADOOP_HOME/share/HADOOP/common

      ln -s $HADOOP_HOME/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/lib $HADOOP_HOME/share/hadoop/common 
      
      对于version命令,您需要hadoop-common-2.7.2.jar,这帮助我找到了jar的存储位置

      在那之后

      $ bin/hadoop version 
      Hadoop 2.7.2
      Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41
      Compiled by jenkins on 2016-01-26T00:08Z
      Compiled with protoc 2.5.0
      From source with checksum d0fda26633fa762bff87ec759ebe689c
      This command was run using /opt/hadoop-2.7.2/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/lib/hadoop-common-2.7.2.jar
      
      当然,现在任何hadoop/hdfs命令都可以工作了


      我又是一个快乐的人,我知道这不是一个礼貌的解决方案,但至少对我有效。

      我添加了上面描述的环境变量,但仍然无效。在我的~/.bashrc中设置HADOOP_类路径如下所示:

      export HADOOP\u CLASSPATH=$(HADOOP CLASSPATH):$HADOOP\u CLASSPATH

      export PATH=$HADOOP_HOME/bin:$PATH
      
      而不是

      export PATH=$PATH:$HADOOP_HOME/bin
      

      然后它对我起作用了!

      下面是它对
      Windows10
      GitBash(mingw64)
      的工作原理:


      已将
      slf4j-api-1.6.1.jar
      复制到hadoop-3.3.0\share\hadoop\common

      设置了我的路径的可能副本。我不知道出了什么问题。他们没有预先打包的二进制文件吗?通常都是这样。@AlekseyIzmailov-Java应用程序没有。现在肯定没有。我这里没有Ubuntu,但我有这些包Fedora上的es:
      $yum search hadoop
      提供:
      hadoop-client.noarch,hadoop-common.noarch,hadoop-hdfs.noarch,hadoop-mapreduce.noarch
      和其他一些东西。很抱歉,你能详细说明一下吗?我已经为我的hduser检查了.bashrc,它有教程中提到的所有路径。我遗漏了什么吗?我也跑了~/.bashrcI的意思是,在教程中,在他执行了
      $vi.bashrc
      并设置了所有变量之后,他不会真正运行该文件,因此变量不会导出到当前会话中。您必须在以后运行其他命令(如
      hadoop
      )的同一终端中运行它。或者重新登录或重新启动。我只是想ssing,可能是这个错误的另一个原因。谢谢你的帮助,但我尝试了重新登录和重新启动。似乎不起作用。另外,我找不到任何其他具有相同错误的帖子,所以我认为这应该是非常微不足道的。你也可以尝试从以下目录运行
      hadoop
      命令:
      /usr/local/hadoop-2.2.0/share/hadoop/common/
      。如果类路径有问题,它可能会得到修复。
      hadoop
      必须是一个shell脚本。你能看到hadoop是如何在其中被调用的吗?类似于使用hadoop-common-2.2.0.jar的用法。我在运行export时得到这些:declare-x classpath=“/usr/local/hadoop/share/hadoop/common”declare-x HADOOP_COMMON_HOME=“/usr/local/HADOOP”declare-x HADOOP_HDFS_HOME=“/usr/local/HADOOP”declare-x HADOOP_INSTALL=“/usr/local/HADOOP”declare-x HOME=“/usr/local/HADOOP”declare-x HOME=“/HOME/hduser”declare-x JAVA_HOME=“/usr/lib/jdk/”declare-x路径=“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/hadoop/bin:/usr/local/hadoop/sbin”declare-x-sharn\u HOME=“/usr/local/hadoop”我只在hadoop-env.sh中添加了“export JAVA\u HOME=/usr/lib/jvm/jdk/”,而rest是原来的方式。您需要整个“hadoop?.sh”文件@usb-Nothing”吗
      export HADOOP_HOME="/PATH-TO/hadoop-3.3.0"
      export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
      export HADOOP_CLASSPATH=$(cygpath -pw $(hadoop classpath)):$HADOOP_CLASSPATH
      hadoop version