【问题标题】:Could not find or load main class M - hadoop windows无法找到或加载主类 M - hadoop windows
【发布时间】:2021-02-20 22:30:49
【问题描述】:

我是 hadoop 新手,我正在尝试在 Windows 10 上设置 hadoop。我从 Apache 网站下载了 hadoop 版本 2.7.3 tar.gz。这些是我已经完成的步骤:

  1. 将 tar.gz 解压到 C:\ ---> C:\hadoop 中的文件夹中
  2. 已创建并将 HADOOP_HOME 环境变量设置为 C:\hadoop
  3. 通过添加 C:\hadoop\bin 更新了 PATH 环境变量
  4. 添加了 JAVA_HOME 环境变量并将其设置为 jdk 主文件夹。

问题是,我执行的任何与 Hadoop 相关的命令都会出现以下错误:

错误:无法找到或加载主类 M

例如,即使执行以下命令,我也会收到此错误:hadoop version

我在stackoverflow上阅读了很多相关帖子,并尝试了不同的建议,例如更新hadoop-env.sh,hadoop-config.sh,多次重复整个设置过程。这里的其他帖子似乎是指处理特定类的错误,但是,我面临的错误没有提供任何类名,它只是说类 M。
我不确定问题是什么,而且我所做的一切似乎都不起作用。谁能告诉我什么是错的以及我该如何解决这个问题?

【问题讨论】:

    标签: windows hadoop installation


    【解决方案1】:

    问题可能与您的系统用户名的语法有关。在这种情况下,请转到您的 Hadoop 目录并编辑 /etc/hadoop/hadoop-env.cmd

    您会在文件末尾附近找到:

    set HADOOP_IDENT_STRING=%USERNAME%
    

    将其更改为您想要的任何名称,但不包含空格,例如:

    set HADOOP_IDENT_STRING=myuser
    

    希望这会有所帮助

    【讨论】:

    • 确实是windows上用户名的原因
    【解决方案2】:

    我使用 以管理员身份运行命令提示符。 它对我有用。我不确定是否需要设置用户名。

    【讨论】:

      【解决方案3】:

      从集合 HADOOP_IDENT_STRING=%USERNAME% 中删除用户名或给它一个没有空格的名称可以解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多