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

San*_*osh 14 hadoop

我知道之前有人问过,但我无法找到解决方案.我在尝试运行时遇到以下错误hdfs name node -format:

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

我按照本网站的说明在我的centos机器上安装.唯一的区别是我使用root而不是hadoopuser安装,如链接中所述.

的.bashrc

# 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
Run Code Online (Sandbox Code Playgroud)

hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
Run Code Online (Sandbox Code Playgroud)

Mapred

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
Run Code Online (Sandbox Code Playgroud)

纱的site.xml

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
Run Code Online (Sandbox Code Playgroud)

核心的site.xml

<property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
</property>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Mik*_*e S 12

对于仍有问题的人,您需要导出HADOOP_PREFIX环境变量.

将以下行添加到您的~/.bashrc文件中:

export HADOOP_PREFIX=/path_to_hadoop_location

# for example:
# export HADOOP_PREFIX=/home/mike/hadoop-2.7.1
Run Code Online (Sandbox Code Playgroud)

然后. ~/.bashrc在您的终端中再次尝试,这将解决错误.

  • 还有其他可能的原因.这没有解决我的问题,这是同样的错误,hadoop-2.6.3. (2认同)

小智 12

谢谢dcsesq.

brew 在Mac OS 10.9.5上安装hadoop 2.6.0(特立独行)

将以下env变量添加到.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
Run Code Online (Sandbox Code Playgroud)

来源.profile文件

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

运行namenode

hdfs namenode -format
Run Code Online (Sandbox Code Playgroud)

热潮开始了,困扰了我差不多半天.


Sac*_*inJ 4

尝试使用以下命令进行格式化(名称和节点之间没有空格并用hadoop替换hdfs命令)

hadoop namenode -format
Run Code Online (Sandbox Code Playgroud)