今天意识到总结错误很重要,提升自己的同时也能有效帮助他人。
今天学习了MapReduce,由于是在windows系统上使用Idea出现了很多问题。为了能顺利使用,要求两点:
1.安装hadooop并配置好环境变量
2.在hadoop的的安装目录下找到bin目录,贴入hadoop.dll文件和winutils.exe。在windows/system32下做同样的操作。
我做了以上两个操作,还是出现了如下错误:
.Exception in thread “main” ExitCodeException exitCode=-1073741701
试了网友虽说的 以管理员身份运行程序,行不通。
后找到解决方法:双击运行winutils. exe出现0xc000007b(应用程序无法正常启动)的错误。下载DirectX修复工具。成功解决。
:Exception in thread “main” java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
以上错误可能也是最上面某个操作没有做好。
————————————————————
在idea上运行程序时,出现AccesControlException,是由于用windows远程操作位于Linux主机HDFS服务,权限不足所致。在加入某些内容后,我对namenode做了二次格式化操作hdfs namenode-format,导致datanode进程无法启动。
原因:第一次格式hdfs后,启动并使用了hdfs,后来又格式化了一次,namenode的clusterid会重新生成,而datanode的clusterid却不会变化。
解决办法:查看从节点的日志,发现错误正是如此,找到hadoop下的current下的VERSION,修改clusterid与namenode一致,uuid不用管,再重新启动dfs(start-dfs.sh),再执行jps后,datanode就启动了。