1、org.apache.hadoop.security.AccessControlException: Permission denied: user=root…

解决方法:关闭Hadoop,在hdfs-site.xml文件中添加:

dfs.permissionsfalse

然后重新格式化:hdfs namenode -format,每次格式化时最好把datanode、namenode和tmp目录下的文件删掉,避免出现一些ClusterId之类的问题

最后重启Hadoop

2、org.apache.hadoop.ipc.RemoteException(java.io.IOException): File…

hadoop namenode -format格式化时格式化了多次造成ClusterId不一致等问题

解决方法:关闭Hadoop -> 把datanode、namenode和tmp目录下的文件删掉 -> 重新格式化 -> 重启Hadoop

3、Windows环境下Hadoop启动错误“系统找不到指定的批标签 – resourcemanager”

文件编码问题。

使用Notepad++, 对相关的*.cmd文件(这里是yarn.cmd)做如下操作 Edit(编辑) -> EOL Conversion(文档格式转换) -> Windows Format(转为Windows),保存并在hadoop的sbin目录下重新管理员运行start-all.cmd,可以看到resourcemanager成功运行。

4、java.net.BindException: Problem binding to [localhost:9000] java.net.BindException: Address already in use…

意思是端口被占用,解决方法:

  • 使用命令:netstat -ano |findstr “post_number”查看端口是否被占用

  • 如果被占用,使用tastkill /f /t /im 进程。以java.exe为例:tastkill /f /t /im java.exe

  • 如果未被占用,去查四个配置文件,看是否存在不同参数配置的端口一样。如果一样就将其改成不同端口。

5、org.apache.hadoop.io.nativeio.NativeIO$Windows…

bin文件是否已替代或hadoop.dll是否复杂到C:\Windows\System32下

请看解决方案的【3、替换和转移】