找不到或加载主类org.apache.hadoop.hdfs.server.namenode.namenode

ig9co6j1  于 2021-06-03  发布在  Hadoop
关注(0)|答案(14)|浏览(479)

我知道以前有人问过这个问题,但我想不出解决办法。当我试着跑的时候,我得到了下面的错误 hdfs name node -format :
找不到或加载主类org.apache.hadoop.hdfs.server.namenode.namenode
我按照这个网站的说明安装在我的centos机器上。唯一的区别是我使用root安装,而不是链接中提到的hadoopuser。

巴什尔


# User specific aliases and functions

export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
export HADOOP_INSTALL=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export PATH=$PATH:$HADOOP_INSTALL/sbin
export PATH=$PATH:$HADOOP_INSTALL/bin

hadoop-env.sh文件

export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/

Map

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

yarn-site.xml文件

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

core-site.xml文件

<property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
</property>

hdfs-site.xml文件

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

<property>
    <name>dfs.name.dir</name>
    <value>file:///home/hadoopspace/hdfs/namenode</value>
</property>

<property>
    <name>dfs.data.dir</name>
    <value>file:///home/hadoopspace/hdfs/datanode</value>
</property>
9rnv2umw

9rnv2umw1#

我通过修改.bashrc: export PATH=$HADOOP_HOME/bin:$PATH

8fq7wneg

8fq7wneg2#

我也有这个错误。对我来说,问题是在最初的解压过程中没有提取到丢失的文件。
对我有用的是进入您的.tar.gz文件的位置,然后使用以下方法再次解压缩:

tar xvzf <file_name>.tar.gz

请注意,这会覆盖所有保存的文件,因此如果您对任何文件进行了更改,最好在解压缩之前创建hadoop文件夹的副本。

bxjv4tth

bxjv4tth3#

可能是类路径问题。
将以下内容添加到~/.bashrc

export HADOOP_CLASSPATH=$(cygpath -pw $(hadoop classpath)):$HADOOP_CLASSPATH
svdrlsy4

svdrlsy44#

检查并设置 HADOOP_PREFIX$HADOOP

rks48beu

rks48beu5#

尝试使用以下命令格式化(name和node之间没有空格&用hadoop替换hdfs命令)

hadoop namenode -format
zazmityj

zazmityj6#

谢谢dcsesq。 brew 在mac os 10.9.5上安装hadoop 2.6.0(maverick)
将以下环境变量添加到.profile ~/.bash_profile ```
export HADOOP_HOME=/usr/local/Cellar/hadoop/2.6.0
export HADOOP_PREFIX=$HADOOP_HOME/libexec
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export YARN_HOME=$HADOOP_PREFIX

源.profile文件

source ~/.bash_profile

运行namenode

hdfs namenode -format

轰隆声开始了,困扰了我将近半天。
qq24tv8q

qq24tv8q7#

确保您的 hdfs 通过使用,路径是正确的 which ```
which hdfs

r1zhe5dt

r1zhe5dt8#

对于Windows7上的Hadoopv3.1.2,我不得不
安装cygwin(按照说明)。
设置以下环境变量,注意它们是正斜杠(/)而不是反斜杠(\):

HADOOP_HOME=D:/.../hadoop-3.1.2

JAVA_HOME=D:/.../java-1.8.0-openjdk-1.8.0.201-2.b09.redhat.windows.x86_64

将cygwin和cd重新打开到我的hadoop目录中——必须重新打开以获取新的环境变量。请随意使用~/.bashrc并导出hadoop\u home=。。。等来做这件事。
请确保键入以下内容: ./bin/hdfs.cmd namenode -format 它必须是.cmd,否则它在windows上无法工作。
在那之后,它工作得很好。如果仍然有问题,请深入hdfs.cmd文件并添加一些echo调用以打印出它正在运行的内容,尤其是在java调用附近,以查看它正在执行的内容。

m3eecexj

m3eecexj9#

我也面临同样的问题。
重新启动终端并尝试执行命令。
需要终端重新启动才能使.bashrc文件中设置的路径变量立即生效

hlswsv35

hlswsv3510#

看起来在执行hadoop命令时,并不是所有类(jar)都包含在类路径中。缺少类路径 hadoop-hdfs-<version>.jar 文件。

bpzcxfmw

bpzcxfmw11#

添加
导出hadoop\u prefix=/path/到/hadoop/installation/directory
结束时 etc/hadoop/hadoop-env.sh hadoop安装目录中的文件。允许jvm定位类文件。

bvhaajcl

bvhaajcl12#

我试过上面的建议,但还是犯了同样的错误。设置 HADOOP_CLASSPATH 在您的 ~/.bashrc 为我工作: export HADOOP_CLASSPATH=$(hadoop classpath):$HADOOP_CLASSPATH

3lxsmp7m

3lxsmp7m13#

该错误是由于hadoop类路径中缺少hadoop hdfs jar文件造成的。在终端中键入'hadoop classpath',检查hdfs jar文件是否存在。如果没有,请将下面的行粘贴到.bashrc中并保存它并将其作为源代码。

export HADOOP_CLASSPATH=new-classpath:$HADOOP_CLASSPATH

您可以通过将位置添加到现有类路径末尾的hdfsjar文件中来创建新的类路径,并用自己的部分替换“newclasspath”部分。

baubqpgj

baubqpgj14#

对于仍有问题的人,您需要导出 HADOOP_PREFIX 环境变量。
将以下行添加到 ~/.bashrc 文件:

export HADOOP_PREFIX=/path_to_hadoop_location

# for example:

# export HADOOP_PREFIX=/home/mike/hadoop-2.7.1

那就做吧 . ~/.bashrc 在您的终端,然后再试一次,这将修复错误。

相关问题