Java Hadoop安装:错误:无法找到或加载主类

时间:2019-07-15 11:50:51

标签: java-8 windows-10 hadoop2

我想在Windows10上安装Java和Hadoop。到目前为止,我尝试使用Java jdk1.8.0_211

c:\>java -version

它返回: Java版本“ 1.8.0_211” Java(TM)SE运行时环境(内部版本1.8.0_211-b12) Java HotSpot(TM)64位服务器VM(内部版本25.211-b12,混合模式)

当我尝试

c:\>javac -version 

它返回: javac 1.8.0_211

在安装hadoop-2.8.0期间,我尝试:

C:\hadoop\hadoop-2.8.0>hdfs namenode -format

返回: 错误:找不到或加载主类

当我尝试时会出现同样的情况:

c:\>hadoop --version

再次返回: 错误:找不到或加载主类

当我尝试:

C:\hadoop\hadoop-2.8.0\sbin>start-all.cmd

它返回: 不推荐使用此脚本。而是使用start-dfs.cmd和start-yarn.cmd 启动纱线守护程序

如何实际解决这个主要问题? 感谢您的时间和精力。

我已经做了什么:

我不知道主要课程是什么。我用谷歌搜索,几乎到处阅读。我发现了很多有关主类和类路径的理论知识,这些思想虽然给出了一个主意,但从本质上来说我很难理解。因为我只是一个Hadoop用户,既没有数据工程师也不是Java程序员,所以我很欣赏一个实用的解决方案。

我仅尝试遵循安装指南。由于有很多指南并不完全符合我的需求(也许是出于商业利益?!),因此我制定了自己的安装计划: (我采取了正确的步骤吗?)

Hadoop安装计划

下载

下载Java
jdk-8u211-windows-x64.exe(jdk 64x版本!) 来自Oracle https://www.oracle.com/technetwork/pt/java/javase/downloads/jdk8-downloads-2133151.html?printOnly=1

下载 Hadoop 2.8.0(二进制版本!) hadoop-2.8.0.tar.gz 从Apache Hadoop https://hadoop.apache.org/releases.html

安装 双击

jdk-8u211-windows-x64.exe

提取 以WinRAR作为管理员

hadoop-2.8.0.tar.gz

到位置

C:\Java\                  (for jdk1.8.0_211)
>>> C:\Java\jdk1.8.0_211
C:\Java\jdk1.8.0_211\       (for jre1.8.0_211)
>>> C:\Java\jdk1.8.0_211\jre1.8.0_211
C:\hadoop\                  (for hadoop-2.8.0)
>>> C:\hadoop\hadoop-2.8.0

添加文件夹

C:\hadoop\hadoop-2.8.0\data\datanode
C:\hadoop\hadoop-2.8.0\data\namenode

管理员用户变量

1新增并添加

JAVA_HOME= C:\Java\jdk1.8.0_211
HADOOP_HOME=”C:\hadoop\hadoop-2.8.0\

2编辑路径,添加

C:\Java\jdk1.8.0_211\bin
C:\hadoop\hadoop-2.8.0\bin
C:\hadoop\hadoop-2.8.0\sbin
C:\hadoop\hadoop-2.8.0\share\hadoop\common\*
C:\hadoop\hadoop-2.8.0\share\hadoop\hdfs
C:\hadoop\hadoop-2.8.0\share\hadoop\hdfs\lib\*
C:\hadoop\hadoop-2.8.0\share\hadoop\hdfs\*
C:\hadoop\hadoop-2.8.0\share\hadoop\yarn\lib\*
C:\hadoop\hadoop-2.8.0\share\hadoop\yarn\*
C:\hadoop\hadoop-2.8.0\share\hadoop\mapreduce\lib\*
C:\hadoop\hadoop-2.8.0\share\hadoop\mapreduce\*
C:\hadoop\hadoop-2.8.0\share\hadoop\common\lib\*

系统变量

1新增并添加

JAVA_HOME=C:\Java\jdk1.8.0_211
HADOOP_HOME=C:\hadoop\hadoop-2.8.0

2编辑路径, 新, 添加

%JAVA_HOME%
%JAVA_HOME%\bin
%HADOOP_HOME%
%HADOOP_HOME%\bin
%HADOOP_HOME%\sbin
%HADOOP_HOME%\etc\hadoop,
%HADOOP_HOME%\share\hadoop\common\* ,
%HADOOP_HOME%\share\hadoop\common\lib\* ,
%HADOOP_HOME%\share\hadoop\hdfs\* ,
%HADOOP_HOME%\share\hadoop\hdfs\lib\* ,
%HADOOP_HOME%\share\hadoop\mapreduce\* ,
%HADOOP_HOME%\share\hadoop\mapreduce\lib\* ,
%HADOOP_HOME%\share\hadoop\yarn\* ,
%HADOOP_HOME%\share\hadoop\yarn\lib\ *

制作mapred-site.xml文件

复制

C:\hadoop\hadoop-2.8.0\etc\hadoop\mapred-site.xml.template

重命名为

C:\hadoop\hadoop-2.8.0\etc\hadoop\mapred-site.xml

通过在

之间输入代码来配置文件
<configuration> and </configuration> 

在所有这四个文件中:

C:\hadoop\hadoop-2.8.0\etc\hadoop\core-site.xml
C:\hadoop\hadoop-2.8.0\etc\hadoop\hdfs-site.xml
C:\hadoop\hadoop-2.8.0\etc\hadoop\mapred-site.xml 
C:\hadoop\hadoop-2.8.0\etc\hadoop\yarn-site.xml

要输入的代码:

1个core-site.xml代码

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

hdfs-site.xml的2个代码

<property> 
<name>dfs.replication</name> 
<value>1</value> 
</property> 
<property> 
<name>dfs.namenode.name.dir</name>
<value>C:\hadoop\hadoop-2.8.0\data\namenode</value> 
</property>
<property> 
<name>dfs.datanode.data.dir</name> 
<value>C:\hadoop\hadoop-2.8.0\data\datanode</value>
</property>

3个mapred-site.xml的代码

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

4个yarn-site.xml的代码

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> 
</property> 
<property> 
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> 
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

配置hadoop-env.cmd:

C:\hadoop\hadoop-2.8.0\etc\hadoop\hadoop-env.cmd

更改

set JAVA_HOME=%JAVA_HOME% 

收件人:

@rem set JAVA_HOME=%JAVA_HOME%
set JAVA_HOME= C:\Java\jdk1.8.0_211

hdfs namenode –格式Cmd行:

cd C:\hadoop\hadoop-2.8.0
hdfs namenode –format

返回: 错误:找不到或加载主类

在Cmd行中进行测试:

java -version
javac -version
echo %JAVA_HOME%
echo %HADOOP_HOME%

都可以,但是

hadoop --version

返回: 错误:找不到或加载主类

在cmd行中启动hadoop:

cd C:\hadoop\hadoop-2.8.0\sbin
start-all.cmd 

它返回: 不推荐使用此脚本。而是使用start-dfs.cmd和start-yarn.cmd 启动纱线守护程序

start-dfs.cmd

它返回: 弃用:不建议使用此脚本执行hdfs命令。 而是使用hdfs命令。

start-yarn.cmd

它返回: 启动纱线守护程序

浏览器

http://localhost:8088  appears
http://localhost:50070   not OK

在cmd行中停止hadoop:

cd C:\hadoop\hadoop-2.8.0\sbin
stop-all.cmd
stop-dfs.cmd 
stop-yarn.cmd

0 个答案:

没有答案