我知道以前曾经问过这个问题,但我无法找到解决办法。我在尝试运行hdfs name node -format
时收到以下错误:
无法找到或加载主类org.apache.hadoop.hdfs.server.namenode.Namenode
I followed the instructions from this website to install on my centos machine.唯一的区别是我使用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
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<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>
答案 0 :(得分:12)
For anyone still having trouble, you need to export the HADOOP_PREFIX
environment variable.
Add the following line to your ~/.bashrc
file:
export HADOOP_PREFIX=/path_to_hadoop_location
# for example:
# export HADOOP_PREFIX=/home/mike/hadoop-2.7.1
Then do . ~/.bashrc
in your terminal and try again, this will fix the error.
答案 1 :(得分: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
来源.profile文件
source ~/.bash_profile
运行namenode
hdfs namenode -format
热潮开始了,差不多半天困扰我。
答案 2 :(得分:3)
尝试使用以下命令进行格式化(名称和节点之间没有空格,并用hadoop替换hdfs命令)
hadoop namenode -format
答案 3 :(得分:1)
看起来当您执行hadoop命令时,并非所有类(jar)都包含在您的类路径中。
您的类路径缺少hadoop-hdfs-<version>.jar
文件。
答案 4 :(得分:0)
我尝试了上面的建议,但我仍然遇到了同样的错误。在HADOOP_CLASSPATH
为我设置的~/.bashrc
如下:
export HADOOP_CLASSPATH=$(hadoop classpath):$HADOOP_CLASSPATH
答案 5 :(得分:0)
我也有这个错误。对我来说,问题是在初始解压缩过程中没有提取丢失的文件。
对我有用的是进入.tar.gz文件的位置并使用以下方式再次解压缩:
tar xvzf <file_name>.tar.gz
请注意,这会覆盖所有已保存的文件,因此如果您对任何文件进行了更改,最好在解压缩之前创建Hadoop文件夹的副本。
答案 6 :(得分:0)
我遇到了同样的问题。
重启终端并尝试执行命令。
需要终端重启才能立即生效.bashrc文件中设置的路径变量
答案 7 :(得分:0)
添加
导出HADOOP_PREFIX = / path / to / hadoop / installation / directory
在hadoop安装目录的etc/hadoop/hadoop-env.sh
文件的末尾。这允许jvm找到类文件。
答案 8 :(得分:0)
通过使用hdfs
确保您的which
路径正确
which hdfs
答案 9 :(得分:0)
该错误是由于hadoop类路径中缺少hadoop hdfs jar文件所致。 在终端中键入“ hadoop classpath”,然后检查是否存在hdfs jar文件。如果没有,请将下面的行粘贴到.bashrc中,然后保存并获取源代码。
export HADOOP_CLASSPATH=new-classpath:$HADOOP_CLASSPATH
您可以通过将位置添加到现有类路径末尾的hdfs jar文件中来创建新的类路径,并用您自己的位置替换“新类路径”部分。
答案 10 :(得分:0)
对于Windows 7上的Hadoop v3.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_HOME = ...等也可以做到这一点。
确保准确键入以下内容:
./bin/hdfs.cmd namenode -format
必须为.cmd,否则在Windows上将无法使用。
之后,它运行完美。如果仍然遇到问题,请深入研究hdfs.cmd文件并添加一些echo调用以打印出它的运行状态,尤其是在java调用附近以查看其执行的内容。
答案 11 :(得分:0)
可能是类路径问题。
将以下内容添加到您的〜/ .bashrc
export HADOOP_CLASSPATH=$(cygpath -pw $(hadoop classpath)):$HADOOP_CLASSPATH
答案 12 :(得分:0)
我通过修改.bashrc中的路径解决了这个问题:
export PATH=$HADOOP_HOME/bin:$PATH
答案 13 :(得分:-1)
检查并将HADOOP_PREFIX
的值设置为$HADOOP