在windows上开发好的mr程序,执行时,会自动打成jar包提交到服务器上执行,但是windows对于hadoop支持不好,打jar包的这个过程可能都会出现问题。
1、如果双击winutils.exe出现缺失dll的错误,那么将预习资料中tar目录下的mscvr120.dll复制到C:\Windows\System32
2、如果运行MapReduce程序的时候,出现Could not locate executable null\bin\winutils.exe in the Hadoop binaries
- 先检查环境变量是否配置正确 (hadoop_home,path)
- 如果环境变量正确,那么在Driver添加System.setProperty(“hadoop.home.dir”, “Hadoop的安装路径”)
- 可以将hadoop解压目录下的bin目录下的hadoop.dll复制到C:\Windows\System32,重启IDEA,重新运行
- 如果上面三种方案,全部都没有解决,将NativeIO.java文件复制到IDEA中,根据要求建好包(package org.apache.hadoop.io.nativeio;)
3、如果运行MapReduce程序的时候,出现NativeIO$Windows
- 先检查环境变量是否配置正确 (hadoop_home,path)
- 如果环境变量配置正确,那么也是将NativeIO.java文件复制到IDEA中,根据要求建好包
4、如果出现Permission denied:检查环境变量HADOOP_USER_NAME,值是root
5、如果WebException: Inner Exception: 由于目标计算机积极拒绝,无法连接。 127.0.0.1:50075/50070
在Linux中jps查看一下进程是否齐全——SecondaryNameNode,NodeManager,NameNode,DataNode,ResourceManager,Jps - 如果不齐全,重新启动Hadoop
如果Hadoop重启之后,依然缺少进程:
rm -rf /home/software/hadoop-2.7.1/tmp
hadoop namenode -format
start-all.sh
如果Hadoop的进程齐全,那么检查云主机的hosts文件,只保留三行:127.0.0.1, ::1, 云主机IP;如果hosts文件没有问题,但是hdfs连接工具依然无法使用,那么请你换另一个工具
如果所有连接工具都不能使用,IDEA的版本至少是2019.2:
- IDEA中,File -> settings -> plugins -> 搜索Big Data Tools -> install
- 在IDEA的右侧栏出现Big Data Tools
- 添加HDFS连接
最后,在云主机上操作
cd /home/software/hadoop-2.7.1/etc/hadoop/
vim hdfs-site.xml
添加
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
例如
重启Hadoop 平台