我想在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